Продолжим приводить в порядок наш новый метод.
Организуем типизированный доступ к данным:

Код AS3:
private function pushCubicBezierDrawCommands(сubicBezier:CubicBezierSVG):void {
const quadraticCurves:Array = [];
сubicBezier.toQuadraticBezierArray(1, quadraticCurves);
for (var i:int = 0;i < quadraticCurves.length; i++) {
var curve:QuadraticBezierSVG = quadraticCurves[i] as QuadraticBezierSVG;
if (curve!=null) {
drawCmds.push(['C', [curve.cx, curve.cy, curve.p2x, curve.p2y]]);
} else {
throw new Error("com.itechnica.svg.PathToArray.pushCubicBezierDrawCommands: incorrect curve type");
}
}
}
Тестируем.
Заменяем доступ к свойствам с непонятными именами на доступ через управляющие точки:

Код AS3:
drawCmds.push(['C', [curve.control.x, curve.control.y, curve.end.x, curve.end.y]]);
Возможно, свойства добавленные в класс QuadraticBezierSVG из ранее использовавшегося объекта, больше нигде не используются. Проверим.
Закомментируем все эти свойства. Редактор не видит ошибок. Протестируем. С тем же успехом. Отлично, эти свойства можем удалять.
Итогом нашей работы стало то, что удаляя один случай скрытого нетипизированного доступа мы обнаружили еще один.