Недопустимые индексы пула строковых констант в ActionScript ByteCode
Похоже, не многие люди действительно знают о внутренностях AVM (виртуальной машины ActionScript), о чем свидетельствует отсутствие информации об этом в Интернете, а также полная чушь, которую Adobe называет своей документацией. Если кто-нибудь что-нибудь узнает, это будет здесь.
В настоящее время я разрабатываю синтаксический анализатор ActionScript ByteCode (ABC), и для некоторых файлов (обычно очень больших) он считывает некоторые хитрые индексы в пул строковых констант. Поскольку строки, как правило, не слишком важны для меня (ну, для имен параметров и т. Д.), Я просто заключаю их в обработчик исключений. Однако есть ли какая-то логика, которую я пропустил в документации AVM, и каково должно быть правильное поведение, когда это происходит? Моя программа написана абсолютно TO SPEC (вплоть до черты), и Adobe Flash Player может воспроизводить ее. Может быть, что-то потеряно в компиляции или я что-то не так делаю? В JizzJazz много статей о множественных записях в многопользовательских массивах, для постоянного пула которых я ничего не понял и пропустил. Есть ли у кого-нибудь опыт работы с форматом файлов AVM или ABC, который мог бы ответить на этот вопрос или какие-либо будущие?