@swf2es/runtime 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/LICENSE.third-party +422 -0
- package/README.md +29 -2
- package/dist/avm1/activation.d.ts +108 -0
- package/dist/avm1/activation.d.ts.map +1 -0
- package/dist/avm1/activation.js +90 -0
- package/dist/avm1/activation.js.map +1 -0
- package/dist/avm1/case.d.ts +3 -0
- package/dist/avm1/case.d.ts.map +1 -0
- package/dist/avm1/case.js +250 -0
- package/dist/avm1/case.js.map +1 -0
- package/dist/avm1/clips.d.ts +68 -0
- package/dist/avm1/clips.d.ts.map +1 -0
- package/dist/avm1/clips.js +335 -0
- package/dist/avm1/clips.js.map +1 -0
- package/dist/avm1/control.d.ts +54 -0
- package/dist/avm1/control.d.ts.map +1 -0
- package/dist/avm1/control.js +281 -0
- package/dist/avm1/control.js.map +1 -0
- package/dist/avm1/errors.d.ts +49 -0
- package/dist/avm1/errors.d.ts.map +1 -0
- package/dist/avm1/errors.js +51 -0
- package/dist/avm1/errors.js.map +1 -0
- package/dist/avm1/functions.d.ts +94 -0
- package/dist/avm1/functions.d.ts.map +1 -0
- package/dist/avm1/functions.js +250 -0
- package/dist/avm1/functions.js.map +1 -0
- package/dist/avm1/globals/array.d.ts +8 -0
- package/dist/avm1/globals/array.d.ts.map +1 -0
- package/dist/avm1/globals/array.js +550 -0
- package/dist/avm1/globals/array.js.map +1 -0
- package/dist/avm1/globals/broadcaster.d.ts +22 -0
- package/dist/avm1/globals/broadcaster.d.ts.map +1 -0
- package/dist/avm1/globals/broadcaster.js +132 -0
- package/dist/avm1/globals/broadcaster.js.map +1 -0
- package/dist/avm1/globals/date.d.ts +10 -0
- package/dist/avm1/globals/date.d.ts.map +1 -0
- package/dist/avm1/globals/date.js +437 -0
- package/dist/avm1/globals/date.js.map +1 -0
- package/dist/avm1/globals/global.d.ts +23 -0
- package/dist/avm1/globals/global.d.ts.map +1 -0
- package/dist/avm1/globals/global.js +345 -0
- package/dist/avm1/globals/global.js.map +1 -0
- package/dist/avm1/globals/math.d.ts +7 -0
- package/dist/avm1/globals/math.d.ts.map +1 -0
- package/dist/avm1/globals/math.js +140 -0
- package/dist/avm1/globals/math.js.map +1 -0
- package/dist/avm1/globals/number.d.ts +11 -0
- package/dist/avm1/globals/number.d.ts.map +1 -0
- package/dist/avm1/globals/number.js +94 -0
- package/dist/avm1/globals/number.js.map +1 -0
- package/dist/avm1/globals/string.d.ts +8 -0
- package/dist/avm1/globals/string.d.ts.map +1 -0
- package/dist/avm1/globals/string.js +202 -0
- package/dist/avm1/globals/string.js.map +1 -0
- package/dist/avm1/globals/timers.d.ts +49 -0
- package/dist/avm1/globals/timers.d.ts.map +1 -0
- package/dist/avm1/globals/timers.js +130 -0
- package/dist/avm1/globals/timers.js.map +1 -0
- package/dist/avm1/host.d.ts +146 -0
- package/dist/avm1/host.d.ts.map +1 -0
- package/dist/avm1/host.js +6 -0
- package/dist/avm1/host.js.map +1 -0
- package/dist/avm1/index.d.ts +15 -0
- package/dist/avm1/index.d.ts.map +1 -0
- package/dist/avm1/index.js +15 -0
- package/dist/avm1/index.js.map +1 -0
- package/dist/avm1/inheritance.d.ts +25 -0
- package/dist/avm1/inheritance.d.ts.map +1 -0
- package/dist/avm1/inheritance.js +133 -0
- package/dist/avm1/inheritance.js.map +1 -0
- package/dist/avm1/numbers.d.ts +21 -0
- package/dist/avm1/numbers.d.ts.map +1 -0
- package/dist/avm1/numbers.js +299 -0
- package/dist/avm1/numbers.js.map +1 -0
- package/dist/avm1/objects.d.ts +245 -0
- package/dist/avm1/objects.d.ts.map +1 -0
- package/dist/avm1/objects.js +897 -0
- package/dist/avm1/objects.js.map +1 -0
- package/dist/avm1/operators.d.ts +45 -0
- package/dist/avm1/operators.d.ts.map +1 -0
- package/dist/avm1/operators.js +171 -0
- package/dist/avm1/operators.js.map +1 -0
- package/dist/avm1/realm.d.ts +126 -0
- package/dist/avm1/realm.d.ts.map +1 -0
- package/dist/avm1/realm.js +530 -0
- package/dist/avm1/realm.js.map +1 -0
- package/dist/avm1/runtime.d.ts +294 -0
- package/dist/avm1/runtime.d.ts.map +1 -0
- package/dist/avm1/runtime.js +883 -0
- package/dist/avm1/runtime.js.map +1 -0
- package/dist/avm1/scope.d.ts +77 -0
- package/dist/avm1/scope.d.ts.map +1 -0
- package/dist/avm1/scope.js +386 -0
- package/dist/avm1/scope.js.map +1 -0
- package/dist/avm1/urls.d.ts +25 -0
- package/dist/avm1/urls.d.ts.map +1 -0
- package/dist/avm1/urls.js +181 -0
- package/dist/avm1/urls.js.map +1 -0
- package/dist/avm1/values.d.ts +52 -0
- package/dist/avm1/values.d.ts.map +1 -0
- package/dist/avm1/values.js +98 -0
- package/dist/avm1/values.js.map +1 -0
- package/dist/avm2/amf-classes.d.ts +28 -0
- package/dist/avm2/amf-classes.d.ts.map +1 -0
- package/dist/avm2/amf-classes.js +67 -0
- package/dist/avm2/amf-classes.js.map +1 -0
- package/dist/avm2/amf.d.ts +96 -0
- package/dist/avm2/amf.d.ts.map +1 -0
- package/dist/avm2/amf.js +802 -0
- package/dist/avm2/amf.js.map +1 -0
- package/dist/avm2/array-conversion.d.ts +31 -0
- package/dist/avm2/array-conversion.d.ts.map +1 -0
- package/dist/avm2/array-conversion.js +101 -0
- package/dist/avm2/array-conversion.js.map +1 -0
- package/dist/avm2/builtin/ArgumentError.decl.d.ts +18 -0
- package/dist/avm2/builtin/ArgumentError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/ArgumentError.decl.js +15 -0
- package/dist/avm2/builtin/ArgumentError.decl.js.map +1 -0
- package/dist/avm2/builtin/Array.d.ts +2 -0
- package/dist/avm2/builtin/Array.d.ts.map +1 -0
- package/dist/avm2/builtin/Array.decl.d.ts +241 -0
- package/dist/avm2/builtin/Array.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Array.decl.js +167 -0
- package/dist/avm2/builtin/Array.decl.js.map +1 -0
- package/dist/avm2/builtin/Array.js +497 -0
- package/dist/avm2/builtin/Array.js.map +1 -0
- package/dist/avm2/builtin/Boolean.d.ts +2 -0
- package/dist/avm2/builtin/Boolean.d.ts.map +1 -0
- package/dist/avm2/builtin/Boolean.decl.d.ts +28 -0
- package/dist/avm2/builtin/Boolean.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Boolean.decl.js +14 -0
- package/dist/avm2/builtin/Boolean.decl.js.map +1 -0
- package/dist/avm2/builtin/Boolean.js +17 -0
- package/dist/avm2/builtin/Boolean.js.map +1 -0
- package/dist/avm2/builtin/Class.d.ts +2 -0
- package/dist/avm2/builtin/Class.d.ts.map +1 -0
- package/dist/avm2/builtin/Class.decl.d.ts +21 -0
- package/dist/avm2/builtin/Class.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Class.decl.js +9 -0
- package/dist/avm2/builtin/Class.decl.js.map +1 -0
- package/dist/avm2/builtin/Class.js +11 -0
- package/dist/avm2/builtin/Class.js.map +1 -0
- package/dist/avm2/builtin/Date.d.ts +2 -0
- package/dist/avm2/builtin/Date.d.ts.map +1 -0
- package/dist/avm2/builtin/Date.decl.d.ts +441 -0
- package/dist/avm2/builtin/Date.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Date.decl.js +258 -0
- package/dist/avm2/builtin/Date.decl.js.map +1 -0
- package/dist/avm2/builtin/Date.js +808 -0
- package/dist/avm2/builtin/Date.js.map +1 -0
- package/dist/avm2/builtin/DefinitionError.decl.d.ts +18 -0
- package/dist/avm2/builtin/DefinitionError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/DefinitionError.decl.js +15 -0
- package/dist/avm2/builtin/DefinitionError.decl.js.map +1 -0
- package/dist/avm2/builtin/Error.d.ts +4 -0
- package/dist/avm2/builtin/Error.d.ts.map +1 -0
- package/dist/avm2/builtin/Error.decl.d.ts +45 -0
- package/dist/avm2/builtin/Error.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Error.decl.js +25 -0
- package/dist/avm2/builtin/Error.decl.js.map +1 -0
- package/dist/avm2/builtin/Error.js +193 -0
- package/dist/avm2/builtin/Error.js.map +1 -0
- package/dist/avm2/builtin/EvalError.decl.d.ts +18 -0
- package/dist/avm2/builtin/EvalError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/EvalError.decl.js +15 -0
- package/dist/avm2/builtin/EvalError.decl.js.map +1 -0
- package/dist/avm2/builtin/Function.d.ts +2 -0
- package/dist/avm2/builtin/Function.d.ts.map +1 -0
- package/dist/avm2/builtin/Function.decl.d.ts +44 -0
- package/dist/avm2/builtin/Function.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Function.decl.js +35 -0
- package/dist/avm2/builtin/Function.decl.js.map +1 -0
- package/dist/avm2/builtin/Function.js +73 -0
- package/dist/avm2/builtin/Function.js.map +1 -0
- package/dist/avm2/builtin/JSON.decl.d.ts +50 -0
- package/dist/avm2/builtin/JSON.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/JSON.decl.js +53 -0
- package/dist/avm2/builtin/JSON.decl.js.map +1 -0
- package/dist/avm2/builtin/Math.d.ts +28 -0
- package/dist/avm2/builtin/Math.d.ts.map +1 -0
- package/dist/avm2/builtin/Math.decl.d.ts +172 -0
- package/dist/avm2/builtin/Math.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Math.decl.js +73 -0
- package/dist/avm2/builtin/Math.decl.js.map +1 -0
- package/dist/avm2/builtin/Math.js +89 -0
- package/dist/avm2/builtin/Math.js.map +1 -0
- package/dist/avm2/builtin/MethodClosure.decl.d.ts +25 -0
- package/dist/avm2/builtin/MethodClosure.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/MethodClosure.decl.js +15 -0
- package/dist/avm2/builtin/MethodClosure.decl.js.map +1 -0
- package/dist/avm2/builtin/Namespace.d.ts +2 -0
- package/dist/avm2/builtin/Namespace.d.ts.map +1 -0
- package/dist/avm2/builtin/Namespace.decl.d.ts +34 -0
- package/dist/avm2/builtin/Namespace.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Namespace.decl.js +22 -0
- package/dist/avm2/builtin/Namespace.decl.js.map +1 -0
- package/dist/avm2/builtin/Namespace.js +29 -0
- package/dist/avm2/builtin/Namespace.js.map +1 -0
- package/dist/avm2/builtin/Number.d.ts +19 -0
- package/dist/avm2/builtin/Number.d.ts.map +1 -0
- package/dist/avm2/builtin/Number.decl.d.ts +285 -0
- package/dist/avm2/builtin/Number.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Number.decl.js +267 -0
- package/dist/avm2/builtin/Number.decl.js.map +1 -0
- package/dist/avm2/builtin/Number.js +178 -0
- package/dist/avm2/builtin/Number.js.map +1 -0
- package/dist/avm2/builtin/Object.d.ts +5 -0
- package/dist/avm2/builtin/Object.d.ts.map +1 -0
- package/dist/avm2/builtin/Object.decl.d.ts +77 -0
- package/dist/avm2/builtin/Object.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Object.decl.js +67 -0
- package/dist/avm2/builtin/Object.decl.js.map +1 -0
- package/dist/avm2/builtin/Object.js +120 -0
- package/dist/avm2/builtin/Object.js.map +1 -0
- package/dist/avm2/builtin/QName.d.ts +2 -0
- package/dist/avm2/builtin/QName.d.ts.map +1 -0
- package/dist/avm2/builtin/QName.decl.d.ts +34 -0
- package/dist/avm2/builtin/QName.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/QName.decl.js +22 -0
- package/dist/avm2/builtin/QName.decl.js.map +1 -0
- package/dist/avm2/builtin/QName.js +72 -0
- package/dist/avm2/builtin/QName.js.map +1 -0
- package/dist/avm2/builtin/RangeError.decl.d.ts +18 -0
- package/dist/avm2/builtin/RangeError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/RangeError.decl.js +15 -0
- package/dist/avm2/builtin/RangeError.decl.js.map +1 -0
- package/dist/avm2/builtin/ReferenceError.decl.d.ts +18 -0
- package/dist/avm2/builtin/ReferenceError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/ReferenceError.decl.js +15 -0
- package/dist/avm2/builtin/ReferenceError.decl.js.map +1 -0
- package/dist/avm2/builtin/RegExp.d.ts +2 -0
- package/dist/avm2/builtin/RegExp.d.ts.map +1 -0
- package/dist/avm2/builtin/RegExp.decl.d.ts +59 -0
- package/dist/avm2/builtin/RegExp.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/RegExp.decl.js +31 -0
- package/dist/avm2/builtin/RegExp.decl.js.map +1 -0
- package/dist/avm2/builtin/RegExp.js +57 -0
- package/dist/avm2/builtin/RegExp.js.map +1 -0
- package/dist/avm2/builtin/SecurityError.decl.d.ts +18 -0
- package/dist/avm2/builtin/SecurityError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/SecurityError.decl.js +15 -0
- package/dist/avm2/builtin/SecurityError.decl.js.map +1 -0
- package/dist/avm2/builtin/String.d.ts +2 -0
- package/dist/avm2/builtin/String.d.ts.map +1 -0
- package/dist/avm2/builtin/String.decl.d.ts +168 -0
- package/dist/avm2/builtin/String.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/String.decl.js +168 -0
- package/dist/avm2/builtin/String.decl.js.map +1 -0
- package/dist/avm2/builtin/String.js +176 -0
- package/dist/avm2/builtin/String.js.map +1 -0
- package/dist/avm2/builtin/SyntaxError.decl.d.ts +18 -0
- package/dist/avm2/builtin/SyntaxError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/SyntaxError.decl.js +15 -0
- package/dist/avm2/builtin/SyntaxError.decl.js.map +1 -0
- package/dist/avm2/builtin/TypeError.decl.d.ts +18 -0
- package/dist/avm2/builtin/TypeError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/TypeError.decl.js +15 -0
- package/dist/avm2/builtin/TypeError.decl.js.map +1 -0
- package/dist/avm2/builtin/URIError.decl.d.ts +18 -0
- package/dist/avm2/builtin/URIError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/URIError.decl.js +15 -0
- package/dist/avm2/builtin/URIError.decl.js.map +1 -0
- package/dist/avm2/builtin/UninitializedError.decl.d.ts +18 -0
- package/dist/avm2/builtin/UninitializedError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/UninitializedError.decl.js +15 -0
- package/dist/avm2/builtin/UninitializedError.decl.js.map +1 -0
- package/dist/avm2/builtin/VerifyError.decl.d.ts +18 -0
- package/dist/avm2/builtin/VerifyError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/VerifyError.decl.js +15 -0
- package/dist/avm2/builtin/VerifyError.decl.js.map +1 -0
- package/dist/avm2/builtin/Walker.decl.d.ts +23 -0
- package/dist/avm2/builtin/Walker.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/Walker.decl.js +14 -0
- package/dist/avm2/builtin/Walker.decl.js.map +1 -0
- package/dist/avm2/builtin/XML.d.ts +2 -0
- package/dist/avm2/builtin/XML.d.ts.map +1 -0
- package/dist/avm2/builtin/XML.decl.d.ts +275 -0
- package/dist/avm2/builtin/XML.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/XML.decl.js +97 -0
- package/dist/avm2/builtin/XML.decl.js.map +1 -0
- package/dist/avm2/builtin/XML.js +283 -0
- package/dist/avm2/builtin/XML.js.map +1 -0
- package/dist/avm2/builtin/XMLList.d.ts +2 -0
- package/dist/avm2/builtin/XMLList.d.ts.map +1 -0
- package/dist/avm2/builtin/XMLList.decl.d.ts +201 -0
- package/dist/avm2/builtin/XMLList.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/XMLList.decl.js +74 -0
- package/dist/avm2/builtin/XMLList.decl.js.map +1 -0
- package/dist/avm2/builtin/XMLList.js +253 -0
- package/dist/avm2/builtin/XMLList.js.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$double.decl.d.ts +200 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$double.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$double.decl.js +168 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$double.decl.js.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$int.decl.d.ts +200 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$int.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$int.decl.js +164 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$int.decl.js.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$object.decl.d.ts +198 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$object.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$object.decl.js +168 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$object.decl.js.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$uint.decl.d.ts +200 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$uint.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$uint.decl.js +168 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector$uint.decl.js.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector.decl.d.ts +14 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector.decl.js +10 -0
- package/dist/avm2/builtin/__AS3__/vec/Vector.decl.js.map +1 -0
- package/dist/avm2/builtin/bind.d.ts +44 -0
- package/dist/avm2/builtin/bind.d.ts.map +1 -0
- package/dist/avm2/builtin/bind.js +173 -0
- package/dist/avm2/builtin/bind.js.map +1 -0
- package/dist/avm2/builtin/declare.d.ts +137 -0
- package/dist/avm2/builtin/declare.d.ts.map +1 -0
- package/dist/avm2/builtin/declare.js +14 -0
- package/dist/avm2/builtin/declare.js.map +1 -0
- package/dist/avm2/builtin/flash/concurrent/Condition.decl.d.ts +44 -0
- package/dist/avm2/builtin/flash/concurrent/Condition.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/concurrent/Condition.decl.js +18 -0
- package/dist/avm2/builtin/flash/concurrent/Condition.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/concurrent/Mutex.decl.d.ts +37 -0
- package/dist/avm2/builtin/flash/concurrent/Mutex.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/concurrent/Mutex.decl.js +17 -0
- package/dist/avm2/builtin/flash/concurrent/Mutex.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/errors/EOFError.decl.d.ts +14 -0
- package/dist/avm2/builtin/flash/errors/EOFError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/errors/EOFError.decl.js +15 -0
- package/dist/avm2/builtin/flash/errors/EOFError.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/errors/IOError.decl.d.ts +14 -0
- package/dist/avm2/builtin/flash/errors/IOError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/errors/IOError.decl.js +15 -0
- package/dist/avm2/builtin/flash/errors/IOError.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/errors/IllegalOperationError.decl.d.ts +14 -0
- package/dist/avm2/builtin/flash/errors/IllegalOperationError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/errors/IllegalOperationError.decl.js +15 -0
- package/dist/avm2/builtin/flash/errors/IllegalOperationError.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/errors/MemoryError.decl.d.ts +14 -0
- package/dist/avm2/builtin/flash/errors/MemoryError.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/errors/MemoryError.decl.js +15 -0
- package/dist/avm2/builtin/flash/errors/MemoryError.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/net/DynamicPropertyOutput.decl.d.ts +20 -0
- package/dist/avm2/builtin/flash/net/DynamicPropertyOutput.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/net/DynamicPropertyOutput.decl.js +13 -0
- package/dist/avm2/builtin/flash/net/DynamicPropertyOutput.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/net/IDynamicPropertyOutput.decl.d.ts +16 -0
- package/dist/avm2/builtin/flash/net/IDynamicPropertyOutput.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/net/IDynamicPropertyOutput.decl.js +16 -0
- package/dist/avm2/builtin/flash/net/IDynamicPropertyOutput.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/net/IDynamicPropertyWriter.decl.d.ts +16 -0
- package/dist/avm2/builtin/flash/net/IDynamicPropertyWriter.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/net/IDynamicPropertyWriter.decl.js +16 -0
- package/dist/avm2/builtin/flash/net/IDynamicPropertyWriter.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/net/ObjectEncoding.decl.d.ts +38 -0
- package/dist/avm2/builtin/flash/net/ObjectEncoding.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/net/ObjectEncoding.decl.js +28 -0
- package/dist/avm2/builtin/flash/net/ObjectEncoding.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/ByteArray.d.ts +151 -0
- package/dist/avm2/builtin/flash/utils/ByteArray.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/ByteArray.decl.d.ts +260 -0
- package/dist/avm2/builtin/flash/utils/ByteArray.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/ByteArray.decl.js +105 -0
- package/dist/avm2/builtin/flash/utils/ByteArray.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/ByteArray.js +1009 -0
- package/dist/avm2/builtin/flash/utils/ByteArray.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/CompressionAlgorithm.decl.d.ts +27 -0
- package/dist/avm2/builtin/flash/utils/CompressionAlgorithm.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/CompressionAlgorithm.decl.js +15 -0
- package/dist/avm2/builtin/flash/utils/CompressionAlgorithm.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/Dictionary.d.ts +2 -0
- package/dist/avm2/builtin/flash/utils/Dictionary.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/Dictionary.decl.d.ts +19 -0
- package/dist/avm2/builtin/flash/utils/Dictionary.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/Dictionary.decl.js +9 -0
- package/dist/avm2/builtin/flash/utils/Dictionary.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/Dictionary.js +21 -0
- package/dist/avm2/builtin/flash/utils/Dictionary.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/IDataInput.decl.d.ts +92 -0
- package/dist/avm2/builtin/flash/utils/IDataInput.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/IDataInput.decl.js +71 -0
- package/dist/avm2/builtin/flash/utils/IDataInput.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/IDataInput2.decl.d.ts +13 -0
- package/dist/avm2/builtin/flash/utils/IDataInput2.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/IDataInput2.decl.js +11 -0
- package/dist/avm2/builtin/flash/utils/IDataInput2.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/IDataOutput.decl.d.ts +74 -0
- package/dist/avm2/builtin/flash/utils/IDataOutput.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/IDataOutput.decl.js +35 -0
- package/dist/avm2/builtin/flash/utils/IDataOutput.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/IDataOutput2.decl.d.ts +13 -0
- package/dist/avm2/builtin/flash/utils/IDataOutput2.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/IDataOutput2.decl.js +11 -0
- package/dist/avm2/builtin/flash/utils/IDataOutput2.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/IExternalizable.decl.d.ts +20 -0
- package/dist/avm2/builtin/flash/utils/IExternalizable.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/IExternalizable.decl.js +21 -0
- package/dist/avm2/builtin/flash/utils/IExternalizable.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/ObjectInput.decl.d.ts +95 -0
- package/dist/avm2/builtin/flash/utils/ObjectInput.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/ObjectInput.decl.js +36 -0
- package/dist/avm2/builtin/flash/utils/ObjectInput.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/ObjectOutput.decl.d.ts +93 -0
- package/dist/avm2/builtin/flash/utils/ObjectOutput.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/ObjectOutput.decl.js +33 -0
- package/dist/avm2/builtin/flash/utils/ObjectOutput.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/Proxy.d.ts +2 -0
- package/dist/avm2/builtin/flash/utils/Proxy.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/Proxy.decl.d.ts +61 -0
- package/dist/avm2/builtin/flash/utils/Proxy.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/flash/utils/Proxy.decl.js +21 -0
- package/dist/avm2/builtin/flash/utils/Proxy.decl.js.map +1 -0
- package/dist/avm2/builtin/flash/utils/Proxy.js +112 -0
- package/dist/avm2/builtin/flash/utils/Proxy.js.map +1 -0
- package/dist/avm2/builtin/index.d.ts +5 -0
- package/dist/avm2/builtin/index.d.ts.map +1 -0
- package/dist/avm2/builtin/index.js +48 -0
- package/dist/avm2/builtin/index.js.map +1 -0
- package/dist/avm2/builtin/int.d.ts +2 -0
- package/dist/avm2/builtin/int.d.ts.map +1 -0
- package/dist/avm2/builtin/int.decl.d.ts +52 -0
- package/dist/avm2/builtin/int.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/int.decl.js +21 -0
- package/dist/avm2/builtin/int.decl.js.map +1 -0
- package/dist/avm2/builtin/int.js +27 -0
- package/dist/avm2/builtin/int.js.map +1 -0
- package/dist/avm2/builtin/regexp/compile.d.ts +22 -0
- package/dist/avm2/builtin/regexp/compile.d.ts.map +1 -0
- package/dist/avm2/builtin/regexp/compile.js +435 -0
- package/dist/avm2/builtin/regexp/compile.js.map +1 -0
- package/dist/avm2/builtin/scripts.d.ts +3 -0
- package/dist/avm2/builtin/scripts.d.ts.map +1 -0
- package/dist/avm2/builtin/scripts.js +1001 -0
- package/dist/avm2/builtin/scripts.js.map +1 -0
- package/dist/avm2/builtin/thunks.d.ts +4 -0
- package/dist/avm2/builtin/thunks.d.ts.map +1 -0
- package/dist/avm2/builtin/thunks.js +1322 -0
- package/dist/avm2/builtin/thunks.js.map +1 -0
- package/dist/avm2/builtin/uint.d.ts +2 -0
- package/dist/avm2/builtin/uint.d.ts.map +1 -0
- package/dist/avm2/builtin/uint.decl.d.ts +52 -0
- package/dist/avm2/builtin/uint.decl.d.ts.map +1 -0
- package/dist/avm2/builtin/uint.decl.js +21 -0
- package/dist/avm2/builtin/uint.decl.js.map +1 -0
- package/dist/avm2/builtin/uint.js +27 -0
- package/dist/avm2/builtin/uint.js.map +1 -0
- package/dist/avm2/builtin/xml/chars.d.ts +9 -0
- package/dist/avm2/builtin/xml/chars.d.ts.map +1 -0
- package/dist/avm2/builtin/xml/chars.js +113 -0
- package/dist/avm2/builtin/xml/chars.js.map +1 -0
- package/dist/avm2/builtin/xml/escape.d.ts +5 -0
- package/dist/avm2/builtin/xml/escape.d.ts.map +1 -0
- package/dist/avm2/builtin/xml/escape.js +39 -0
- package/dist/avm2/builtin/xml/escape.js.map +1 -0
- package/dist/avm2/builtin/xml/node.d.ts +94 -0
- package/dist/avm2/builtin/xml/node.d.ts.map +1 -0
- package/dist/avm2/builtin/xml/node.js +273 -0
- package/dist/avm2/builtin/xml/node.js.map +1 -0
- package/dist/avm2/builtin/xml/parser.d.ts +51 -0
- package/dist/avm2/builtin/xml/parser.d.ts.map +1 -0
- package/dist/avm2/builtin/xml/parser.js +357 -0
- package/dist/avm2/builtin/xml/parser.js.map +1 -0
- package/dist/avm2/builtin/xml/xml.d.ts +106 -0
- package/dist/avm2/builtin/xml/xml.d.ts.map +1 -0
- package/dist/avm2/builtin/xml/xml.js +1856 -0
- package/dist/avm2/builtin/xml/xml.js.map +1 -0
- package/dist/avm2/builtin-library.d.ts +2 -0
- package/dist/avm2/builtin-library.d.ts.map +1 -0
- package/dist/avm2/builtin-library.js +22 -0
- package/dist/avm2/builtin-library.js.map +1 -0
- package/dist/avm2/cache-fill.d.ts +14 -0
- package/dist/avm2/cache-fill.d.ts.map +1 -0
- package/dist/avm2/cache-fill.js +87 -0
- package/dist/avm2/cache-fill.js.map +1 -0
- package/dist/avm2/classes.d.ts +17 -0
- package/dist/avm2/classes.d.ts.map +1 -0
- package/dist/avm2/classes.js +212 -0
- package/dist/avm2/classes.js.map +1 -0
- package/dist/avm2/definitions.d.ts +28 -0
- package/dist/avm2/definitions.d.ts.map +1 -0
- package/dist/avm2/definitions.js +70 -0
- package/dist/avm2/definitions.js.map +1 -0
- package/dist/avm2/descriptors.d.ts +118 -0
- package/dist/avm2/descriptors.d.ts.map +1 -0
- package/dist/avm2/descriptors.js +6 -0
- package/dist/avm2/descriptors.js.map +1 -0
- package/dist/avm2/dictionary-keys.d.ts +73 -0
- package/dist/avm2/dictionary-keys.d.ts.map +1 -0
- package/dist/avm2/dictionary-keys.js +296 -0
- package/dist/avm2/dictionary-keys.js.map +1 -0
- package/dist/avm2/domain-memory.d.ts +23 -0
- package/dist/avm2/domain-memory.d.ts.map +1 -0
- package/dist/avm2/domain-memory.js +76 -0
- package/dist/avm2/domain-memory.js.map +1 -0
- package/dist/avm2/domain.d.ts +108 -0
- package/dist/avm2/domain.d.ts.map +1 -0
- package/dist/avm2/domain.js +281 -0
- package/dist/avm2/domain.js.map +1 -0
- package/dist/avm2/dynamic-properties.d.ts +62 -0
- package/dist/avm2/dynamic-properties.d.ts.map +1 -0
- package/dist/avm2/dynamic-properties.js +183 -0
- package/dist/avm2/dynamic-properties.js.map +1 -0
- package/dist/avm2/enumeration.d.ts +75 -0
- package/dist/avm2/enumeration.d.ts.map +1 -0
- package/dist/avm2/enumeration.js +394 -0
- package/dist/avm2/enumeration.js.map +1 -0
- package/dist/avm2/errors.d.ts +20 -0
- package/dist/avm2/errors.d.ts.map +1 -0
- package/dist/avm2/errors.js +46 -0
- package/dist/avm2/errors.js.map +1 -0
- package/dist/avm2/float-library.d.ts +2 -0
- package/dist/avm2/float-library.d.ts.map +1 -0
- package/dist/avm2/float-library.js +67 -0
- package/dist/avm2/float-library.js.map +1 -0
- package/dist/avm2/float.d.ts +9 -0
- package/dist/avm2/float.d.ts.map +1 -0
- package/dist/avm2/float.js +27 -0
- package/dist/avm2/float.js.map +1 -0
- package/dist/avm2/hooks.d.ts +77 -0
- package/dist/avm2/hooks.d.ts.map +1 -0
- package/dist/avm2/hooks.js +20 -0
- package/dist/avm2/hooks.js.map +1 -0
- package/dist/avm2/index.d.ts +32 -0
- package/dist/avm2/index.d.ts.map +1 -0
- package/dist/avm2/index.js +39 -0
- package/dist/avm2/index.js.map +1 -0
- package/dist/avm2/messages.d.ts +2 -0
- package/dist/avm2/messages.d.ts.map +1 -0
- package/dist/avm2/messages.js +178 -0
- package/dist/avm2/messages.js.map +1 -0
- package/dist/avm2/method-factories.d.ts +35 -0
- package/dist/avm2/method-factories.d.ts.map +1 -0
- package/dist/avm2/method-factories.js +96 -0
- package/dist/avm2/method-factories.js.map +1 -0
- package/dist/avm2/modules.d.ts +40 -0
- package/dist/avm2/modules.d.ts.map +1 -0
- package/dist/avm2/modules.js +106 -0
- package/dist/avm2/modules.js.map +1 -0
- package/dist/avm2/names.d.ts +143 -0
- package/dist/avm2/names.d.ts.map +1 -0
- package/dist/avm2/names.js +249 -0
- package/dist/avm2/names.js.map +1 -0
- package/dist/avm2/natives/aliases.d.ts +3 -0
- package/dist/avm2/natives/aliases.d.ts.map +1 -0
- package/dist/avm2/natives/aliases.js +48 -0
- package/dist/avm2/natives/aliases.js.map +1 -0
- package/dist/avm2/natives/array.d.ts +5 -0
- package/dist/avm2/natives/array.d.ts.map +1 -0
- package/dist/avm2/natives/array.js +391 -0
- package/dist/avm2/natives/array.js.map +1 -0
- package/dist/avm2/natives/bytearray.d.ts +180 -0
- package/dist/avm2/natives/bytearray.d.ts.map +1 -0
- package/dist/avm2/natives/bytearray.js +1228 -0
- package/dist/avm2/natives/bytearray.js.map +1 -0
- package/dist/avm2/natives/case.d.ts +5 -0
- package/dist/avm2/natives/case.d.ts.map +1 -0
- package/dist/avm2/natives/case.js +89 -0
- package/dist/avm2/natives/case.js.map +1 -0
- package/dist/avm2/natives/concurrent.d.ts +24 -0
- package/dist/avm2/natives/concurrent.d.ts.map +1 -0
- package/dist/avm2/natives/concurrent.js +200 -0
- package/dist/avm2/natives/concurrent.js.map +1 -0
- package/dist/avm2/natives/date.d.ts +5 -0
- package/dist/avm2/natives/date.d.ts.map +1 -0
- package/dist/avm2/natives/date.js +582 -0
- package/dist/avm2/natives/date.js.map +1 -0
- package/dist/avm2/natives/define.d.ts +58 -0
- package/dist/avm2/natives/define.d.ts.map +1 -0
- package/dist/avm2/natives/define.js +131 -0
- package/dist/avm2/natives/define.js.map +1 -0
- package/dist/avm2/natives/describe.d.ts +3 -0
- package/dist/avm2/natives/describe.d.ts.map +1 -0
- package/dist/avm2/natives/describe.js +352 -0
- package/dist/avm2/natives/describe.js.map +1 -0
- package/dist/avm2/natives/dictionary.d.ts +3 -0
- package/dist/avm2/natives/dictionary.d.ts.map +1 -0
- package/dist/avm2/natives/dictionary.js +13 -0
- package/dist/avm2/natives/dictionary.js.map +1 -0
- package/dist/avm2/natives/float-vector.d.ts +20 -0
- package/dist/avm2/natives/float-vector.d.ts.map +1 -0
- package/dist/avm2/natives/float-vector.js +82 -0
- package/dist/avm2/natives/float-vector.js.map +1 -0
- package/dist/avm2/natives/float.d.ts +5 -0
- package/dist/avm2/natives/float.d.ts.map +1 -0
- package/dist/avm2/natives/float.js +97 -0
- package/dist/avm2/natives/float.js.map +1 -0
- package/dist/avm2/natives/index.d.ts +7 -0
- package/dist/avm2/natives/index.d.ts.map +1 -0
- package/dist/avm2/natives/index.js +65 -0
- package/dist/avm2/natives/index.js.map +1 -0
- package/dist/avm2/natives/json.d.ts +3 -0
- package/dist/avm2/natives/json.d.ts.map +1 -0
- package/dist/avm2/natives/json.js +515 -0
- package/dist/avm2/natives/json.js.map +1 -0
- package/dist/avm2/natives/number.d.ts +15 -0
- package/dist/avm2/natives/number.d.ts.map +1 -0
- package/dist/avm2/natives/number.js +163 -0
- package/dist/avm2/natives/number.js.map +1 -0
- package/dist/avm2/natives/object.d.ts +8 -0
- package/dist/avm2/natives/object.d.ts.map +1 -0
- package/dist/avm2/natives/object.js +238 -0
- package/dist/avm2/natives/object.js.map +1 -0
- package/dist/avm2/natives/proxy.d.ts +5 -0
- package/dist/avm2/natives/proxy.d.ts.map +1 -0
- package/dist/avm2/natives/proxy.js +76 -0
- package/dist/avm2/natives/proxy.js.map +1 -0
- package/dist/avm2/natives/regexp.d.ts +21 -0
- package/dist/avm2/natives/regexp.d.ts.map +1 -0
- package/dist/avm2/natives/regexp.js +486 -0
- package/dist/avm2/natives/regexp.js.map +1 -0
- package/dist/avm2/natives/shell-workers.d.ts +140 -0
- package/dist/avm2/natives/shell-workers.d.ts.map +1 -0
- package/dist/avm2/natives/shell-workers.js +405 -0
- package/dist/avm2/natives/shell-workers.js.map +1 -0
- package/dist/avm2/natives/shell.d.ts +12 -0
- package/dist/avm2/natives/shell.d.ts.map +1 -0
- package/dist/avm2/natives/shell.js +558 -0
- package/dist/avm2/natives/shell.js.map +1 -0
- package/dist/avm2/natives/sort.d.ts +7 -0
- package/dist/avm2/natives/sort.d.ts.map +1 -0
- package/dist/avm2/natives/sort.js +378 -0
- package/dist/avm2/natives/sort.js.map +1 -0
- package/dist/avm2/natives/string.d.ts +5 -0
- package/dist/avm2/natives/string.d.ts.map +1 -0
- package/dist/avm2/natives/string.js +133 -0
- package/dist/avm2/natives/string.js.map +1 -0
- package/dist/avm2/natives/sync.d.ts +215 -0
- package/dist/avm2/natives/sync.d.ts.map +1 -0
- package/dist/avm2/natives/sync.js +822 -0
- package/dist/avm2/natives/sync.js.map +1 -0
- package/dist/avm2/natives/toplevel.d.ts +5 -0
- package/dist/avm2/natives/toplevel.d.ts.map +1 -0
- package/dist/avm2/natives/toplevel.js +140 -0
- package/dist/avm2/natives/toplevel.js.map +1 -0
- package/dist/avm2/natives/vector-elements.d.ts +10 -0
- package/dist/avm2/natives/vector-elements.d.ts.map +1 -0
- package/dist/avm2/natives/vector-elements.js +47 -0
- package/dist/avm2/natives/vector-elements.js.map +1 -0
- package/dist/avm2/natives/vector.d.ts +5 -0
- package/dist/avm2/natives/vector.d.ts.map +1 -0
- package/dist/avm2/natives/vector.js +407 -0
- package/dist/avm2/natives/vector.js.map +1 -0
- package/dist/avm2/natives/xml/access.d.ts +34 -0
- package/dist/avm2/natives/xml/access.d.ts.map +1 -0
- package/dist/avm2/natives/xml/access.js +634 -0
- package/dist/avm2/natives/xml/access.js.map +1 -0
- package/dist/avm2/natives/xml/build.d.ts +11 -0
- package/dist/avm2/natives/xml/build.d.ts.map +1 -0
- package/dist/avm2/natives/xml/build.js +292 -0
- package/dist/avm2/natives/xml/build.js.map +1 -0
- package/dist/avm2/natives/xml/chars.d.ts +9 -0
- package/dist/avm2/natives/xml/chars.d.ts.map +1 -0
- package/dist/avm2/natives/xml/chars.js +113 -0
- package/dist/avm2/natives/xml/chars.js.map +1 -0
- package/dist/avm2/natives/xml/escape.d.ts +5 -0
- package/dist/avm2/natives/xml/escape.d.ts.map +1 -0
- package/dist/avm2/natives/xml/escape.js +39 -0
- package/dist/avm2/natives/xml/escape.js.map +1 -0
- package/dist/avm2/natives/xml/names.d.ts +46 -0
- package/dist/avm2/natives/xml/names.d.ts.map +1 -0
- package/dist/avm2/natives/xml/names.js +205 -0
- package/dist/avm2/natives/xml/names.js.map +1 -0
- package/dist/avm2/natives/xml/node.d.ts +94 -0
- package/dist/avm2/natives/xml/node.d.ts.map +1 -0
- package/dist/avm2/natives/xml/node.js +273 -0
- package/dist/avm2/natives/xml/node.js.map +1 -0
- package/dist/avm2/natives/xml/operators.d.ts +7 -0
- package/dist/avm2/natives/xml/operators.d.ts.map +1 -0
- package/dist/avm2/natives/xml/operators.js +70 -0
- package/dist/avm2/natives/xml/operators.js.map +1 -0
- package/dist/avm2/natives/xml/parser.d.ts +51 -0
- package/dist/avm2/natives/xml/parser.d.ts.map +1 -0
- package/dist/avm2/natives/xml/parser.js +357 -0
- package/dist/avm2/natives/xml/parser.js.map +1 -0
- package/dist/avm2/natives/xml/strings.d.ts +10 -0
- package/dist/avm2/natives/xml/strings.d.ts.map +1 -0
- package/dist/avm2/natives/xml/strings.js +192 -0
- package/dist/avm2/natives/xml/strings.js.map +1 -0
- package/dist/avm2/natives/xml/values.d.ts +48 -0
- package/dist/avm2/natives/xml/values.d.ts.map +1 -0
- package/dist/avm2/natives/xml/values.js +123 -0
- package/dist/avm2/natives/xml/values.js.map +1 -0
- package/dist/avm2/natives/xml/xml.d.ts +5 -0
- package/dist/avm2/natives/xml/xml.d.ts.map +1 -0
- package/dist/avm2/natives/xml/xml.js +646 -0
- package/dist/avm2/natives/xml/xml.js.map +1 -0
- package/dist/avm2/number-strings.d.ts +28 -0
- package/dist/avm2/number-strings.d.ts.map +1 -0
- package/dist/avm2/number-strings.js +111 -0
- package/dist/avm2/number-strings.js.map +1 -0
- package/dist/avm2/numbers.d.ts +12 -0
- package/dist/avm2/numbers.d.ts.map +1 -0
- package/dist/avm2/numbers.js +559 -0
- package/dist/avm2/numbers.js.map +1 -0
- package/dist/avm2/options.d.ts +105 -0
- package/dist/avm2/options.d.ts.map +1 -0
- package/dist/avm2/options.js +17 -0
- package/dist/avm2/options.js.map +1 -0
- package/dist/avm2/player-messages.d.ts +3 -0
- package/dist/avm2/player-messages.d.ts.map +1 -0
- package/dist/avm2/player-messages.js +551 -0
- package/dist/avm2/player-messages.js.map +1 -0
- package/dist/avm2/property-cache.d.ts +61 -0
- package/dist/avm2/property-cache.d.ts.map +1 -0
- package/dist/avm2/property-cache.js +136 -0
- package/dist/avm2/property-cache.js.map +1 -0
- package/dist/avm2/runtime.d.ts +588 -0
- package/dist/avm2/runtime.d.ts.map +1 -0
- package/dist/avm2/runtime.js +2645 -0
- package/dist/avm2/runtime.js.map +1 -0
- package/dist/avm2/traits.d.ts +233 -0
- package/dist/avm2/traits.d.ts.map +1 -0
- package/dist/avm2/traits.js +510 -0
- package/dist/avm2/traits.js.map +1 -0
- package/dist/avm2/weak-keys.d.ts +25 -0
- package/dist/avm2/weak-keys.d.ts.map +1 -0
- package/dist/avm2/weak-keys.js +81 -0
- package/dist/avm2/weak-keys.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/package.json +43 -3
- package/src/avm1/activation.ts +114 -0
- package/src/avm1/case.ts +257 -0
- package/src/avm1/clips.ts +440 -0
- package/src/avm1/control.ts +339 -0
- package/src/avm1/errors.ts +60 -0
- package/src/avm1/functions.ts +271 -0
- package/src/avm1/globals/array.ts +676 -0
- package/src/avm1/globals/broadcaster.ts +185 -0
- package/src/avm1/globals/date.ts +548 -0
- package/src/avm1/globals/global.ts +420 -0
- package/src/avm1/globals/math.ts +152 -0
- package/src/avm1/globals/number.ts +122 -0
- package/src/avm1/globals/string.ts +254 -0
- package/src/avm1/globals/timers.ts +144 -0
- package/src/avm1/host.ts +155 -0
- package/src/avm1/index.ts +69 -0
- package/src/avm1/inheritance.ts +159 -0
- package/src/avm1/numbers.ts +348 -0
- package/src/avm1/objects.ts +1080 -0
- package/src/avm1/operators.ts +229 -0
- package/src/avm1/realm.ts +704 -0
- package/src/avm1/runtime.ts +1291 -0
- package/src/avm1/scope.ts +482 -0
- package/src/avm1/urls.ts +226 -0
- package/src/avm1/values.ts +145 -0
- package/src/avm2/amf-classes.ts +80 -0
- package/src/avm2/amf.ts +913 -0
- package/src/avm2/array-conversion.ts +117 -0
- package/src/avm2/builtin-library.ts +28 -0
- package/src/avm2/cache-fill.ts +124 -0
- package/src/avm2/classes.ts +235 -0
- package/src/avm2/definitions.ts +93 -0
- package/src/avm2/descriptors.ts +137 -0
- package/src/avm2/dictionary-keys.ts +345 -0
- package/src/avm2/domain-memory.ts +95 -0
- package/src/avm2/domain.ts +335 -0
- package/src/avm2/dynamic-properties.ts +209 -0
- package/src/avm2/enumeration.ts +506 -0
- package/src/avm2/errors.ts +54 -0
- package/src/avm2/float-library.ts +66 -0
- package/src/avm2/float.ts +31 -0
- package/src/avm2/hooks.ts +97 -0
- package/src/avm2/index.ts +84 -0
- package/src/avm2/messages.ts +178 -0
- package/src/avm2/method-factories.ts +130 -0
- package/src/avm2/modules.ts +120 -0
- package/src/avm2/names.ts +292 -0
- package/src/avm2/natives/aliases.ts +59 -0
- package/src/avm2/natives/array.ts +482 -0
- package/src/avm2/natives/bytearray.ts +1474 -0
- package/src/avm2/natives/case.ts +98 -0
- package/src/avm2/natives/concurrent.ts +268 -0
- package/src/avm2/natives/date.ts +678 -0
- package/src/avm2/natives/define.ts +176 -0
- package/src/avm2/natives/describe.ts +426 -0
- package/src/avm2/natives/dictionary.ts +18 -0
- package/src/avm2/natives/float-vector.ts +99 -0
- package/src/avm2/natives/float.ts +116 -0
- package/src/avm2/natives/index.ts +70 -0
- package/src/avm2/natives/json.ts +600 -0
- package/src/avm2/natives/number.ts +194 -0
- package/src/avm2/natives/object.ts +272 -0
- package/src/avm2/natives/proxy.ts +98 -0
- package/src/avm2/natives/regexp.ts +580 -0
- package/src/avm2/natives/shell-workers.ts +474 -0
- package/src/avm2/natives/shell.ts +707 -0
- package/src/avm2/natives/sort.ts +438 -0
- package/src/avm2/natives/string.ts +158 -0
- package/src/avm2/natives/sync.ts +964 -0
- package/src/avm2/natives/toplevel.ts +163 -0
- package/src/avm2/natives/vector-elements.ts +61 -0
- package/src/avm2/natives/vector.ts +511 -0
- package/src/avm2/natives/xml/access.ts +767 -0
- package/src/avm2/natives/xml/build.ts +381 -0
- package/src/avm2/natives/xml/chars.ts +127 -0
- package/src/avm2/natives/xml/escape.ts +46 -0
- package/src/avm2/natives/xml/names.ts +256 -0
- package/src/avm2/natives/xml/node.ts +339 -0
- package/src/avm2/natives/xml/operators.ts +90 -0
- package/src/avm2/natives/xml/parser.ts +414 -0
- package/src/avm2/natives/xml/strings.ts +241 -0
- package/src/avm2/natives/xml/values.ts +162 -0
- package/src/avm2/natives/xml/xml.ts +829 -0
- package/src/avm2/number-strings.ts +127 -0
- package/src/avm2/numbers.ts +605 -0
- package/src/avm2/options.ts +125 -0
- package/src/avm2/player-messages.ts +552 -0
- package/src/avm2/property-cache.ts +160 -0
- package/src/avm2/runtime.ts +3274 -0
- package/src/avm2/traits.ts +584 -0
- package/src/index.ts +8 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
// What With and Try hold while control stays in their bytes, as adl runs
|
|
2
|
+
// them (docs/avm1.md, "With and Try"): not activations of their own, as
|
|
3
|
+
// Ruffle has them, but entries on the activation that come off as control
|
|
4
|
+
// leaves the blocks they hold over, however it leaves them.
|
|
5
|
+
//
|
|
6
|
+
// The compiler writes a region's blocks in order of their offsets, so a
|
|
7
|
+
// body's bytes are a range of its blocks, and every entry is a range: a
|
|
8
|
+
// With's object or a catch's variable on the scope chain while control is
|
|
9
|
+
// in the body; a Try's handlers while it is in the try or catch body; and a
|
|
10
|
+
// finally reached by a throw or a Return, which throws again or returns as
|
|
11
|
+
// control leaves it. Where control goes is a block of the region, -1 for
|
|
12
|
+
// its exit, whose value is `cx.ret`.
|
|
13
|
+
//
|
|
14
|
+
// What adl shows of when they come off: a scope holds over its body's
|
|
15
|
+
// bytes and the first action past them, where control runs off the body's
|
|
16
|
+
// end or jumps, and comes off as control goes anywhere else (V.leave), or
|
|
17
|
+
// after that action (V.scopes); only the scope on top is looked at, so one
|
|
18
|
+
// a With pushes as that action keeps the one under it until both come off.
|
|
19
|
+
// A Try's handlers and a finally's throw or Return come off at once
|
|
20
|
+
// (V.leave, as control goes). A throw caught by a catch keeps every scope
|
|
21
|
+
// over the catch body; a finally reached by a throw or a Return keeps them
|
|
22
|
+
// only as control's going there keeps them.
|
|
23
|
+
import type { Activation } from "./activation.js";
|
|
24
|
+
import { Avm1Throw } from "./errors.js";
|
|
25
|
+
import { Avm1Object } from "./objects.js";
|
|
26
|
+
import { MAX_SCOPES, SCOPE_With, Scope } from "./scope.js";
|
|
27
|
+
import type { Value } from "./values.js";
|
|
28
|
+
|
|
29
|
+
/** A With's object, or a catch's variable, on the scope chain. */
|
|
30
|
+
const HELD_Scope = 0;
|
|
31
|
+
const HELD_Try = 1;
|
|
32
|
+
/** A finally reached by a throw: `value` is thrown again as control leaves it. */
|
|
33
|
+
const HELD_Thrown = 2;
|
|
34
|
+
/** A finally reached by a Return, whose value is on the stack: it returns as control leaves it. */
|
|
35
|
+
const HELD_Returned = 3;
|
|
36
|
+
|
|
37
|
+
/** A Try's catch that a throw does not land in. */
|
|
38
|
+
const NO_CATCH = -2;
|
|
39
|
+
|
|
40
|
+
export class Held {
|
|
41
|
+
constructor(
|
|
42
|
+
readonly kind: number,
|
|
43
|
+
/** The blocks it holds over, from `from` to `to`, excluded. */
|
|
44
|
+
public from: number,
|
|
45
|
+
public to: number,
|
|
46
|
+
/** A finally's thrown value. */
|
|
47
|
+
readonly value: Value = undefined,
|
|
48
|
+
) {}
|
|
49
|
+
|
|
50
|
+
holds(block: number): boolean {
|
|
51
|
+
return this.from <= block && block < this.to;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/** Whether a scope holds as control goes to `block`: one of its body's, or the first past it. */
|
|
55
|
+
admits(block: number): boolean {
|
|
56
|
+
return this.from <= block && block <= this.to;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const isScope = (h: Held): boolean => h.kind === HELD_Scope;
|
|
61
|
+
|
|
62
|
+
/** A scope: the chain it made, and the chain under it, which it gives back as it comes off. */
|
|
63
|
+
class ScopeHeld extends Held {
|
|
64
|
+
constructor(
|
|
65
|
+
from: number,
|
|
66
|
+
to: number,
|
|
67
|
+
readonly chain: Scope,
|
|
68
|
+
readonly below: Scope,
|
|
69
|
+
) {
|
|
70
|
+
super(HELD_Scope, from, to);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** A Try's handlers, held over its try and catch bodies. */
|
|
75
|
+
class TryHeld extends Held {
|
|
76
|
+
constructor(
|
|
77
|
+
from: number,
|
|
78
|
+
/** Where the catch body starts: before it, a throw is the catch's. */
|
|
79
|
+
readonly catchFrom: number,
|
|
80
|
+
/** The finally body's blocks, none where it has none. */
|
|
81
|
+
readonly finallyFrom: number,
|
|
82
|
+
readonly finallyTo: number,
|
|
83
|
+
/** Where a throw lands for the catch, -1 for the region's exit, NO_CATCH for none. */
|
|
84
|
+
readonly catchAt: number,
|
|
85
|
+
/** The catch's variable, or its register. */
|
|
86
|
+
readonly into: string | number,
|
|
87
|
+
/** The operand stack's height as the Try ran, which a throw cuts it back to. */
|
|
88
|
+
readonly height: number,
|
|
89
|
+
) {
|
|
90
|
+
super(HELD_Try, from, finallyFrom);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
function heldOf(cx: Activation): Held[] {
|
|
95
|
+
let held = cx.held;
|
|
96
|
+
if (held === null) {
|
|
97
|
+
held = [];
|
|
98
|
+
cx.held = held;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return held;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/** `object` on top of the scope chain, held over the blocks from `from` to `to`. */
|
|
105
|
+
function pushScope(cx: Activation, object: Avm1Object, from: number, to: number): void {
|
|
106
|
+
const below = cx.scope;
|
|
107
|
+
cx.scope = new Scope(below, SCOPE_With, object);
|
|
108
|
+
heldOf(cx).push(new ScopeHeld(from, to, cx.scope, below));
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Keeps of `held`, from index `from` up, the entries `keep` says, and the
|
|
113
|
+
* scope chain as the scopes kept make it: the top one's, or with none
|
|
114
|
+
* kept, the chain under the first one taken off.
|
|
115
|
+
*/
|
|
116
|
+
function keepFrom(cx: Activation, held: Held[], from: number, keep: (h: Held) => boolean): void {
|
|
117
|
+
let n = from;
|
|
118
|
+
let top: Scope | null = null;
|
|
119
|
+
let base: Scope | null = null;
|
|
120
|
+
for (let i = from; i < held.length; i++) {
|
|
121
|
+
const h = held[i];
|
|
122
|
+
if (keep(h)) {
|
|
123
|
+
held[n++] = h;
|
|
124
|
+
if (h instanceof ScopeHeld) {
|
|
125
|
+
top = h.chain;
|
|
126
|
+
}
|
|
127
|
+
} else if (h instanceof ScopeHeld && base === null) {
|
|
128
|
+
base = h.below;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
held.length = n;
|
|
133
|
+
if (top !== null) {
|
|
134
|
+
cx.scope = top;
|
|
135
|
+
} else if (base !== null) {
|
|
136
|
+
cx.scope = base;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Control going to the start of block `at`: the scopes on top that do not
|
|
142
|
+
* hold there come off at once, as adl looks only at the top one.
|
|
143
|
+
*/
|
|
144
|
+
function reach(cx: Activation, held: Held[], at: number): void {
|
|
145
|
+
let n = held.length;
|
|
146
|
+
while (n > 0 && held[n - 1].kind === HELD_Scope && !held[n - 1].admits(at)) {
|
|
147
|
+
n--;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
if (n < held.length) {
|
|
151
|
+
keepFrom(cx, held, n, () => false);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function cut(st: Value[], height: number): void {
|
|
156
|
+
if (st.length > height) {
|
|
157
|
+
st.length = height;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* With: `value`, a primitive boxed, on the scope chain over the body's
|
|
163
|
+
* blocks; false, the body skipped, for undefined and null, and where the
|
|
164
|
+
* chain holds MAX_SCOPES already (adl).
|
|
165
|
+
*/
|
|
166
|
+
export function enterWith(
|
|
167
|
+
cx: Activation,
|
|
168
|
+
value: Value,
|
|
169
|
+
from: number,
|
|
170
|
+
to: number,
|
|
171
|
+
version: number,
|
|
172
|
+
): boolean {
|
|
173
|
+
if (value === undefined || value === null || cx.scope.depth >= MAX_SCOPES) {
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
pushScope(cx, cx.realm.box(value, version), from, to);
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/** Try: its handlers, held over its try and catch bodies. */
|
|
182
|
+
export function enterTry(
|
|
183
|
+
cx: Activation,
|
|
184
|
+
from: number,
|
|
185
|
+
catchFrom: number,
|
|
186
|
+
finallyFrom: number,
|
|
187
|
+
finallyTo: number,
|
|
188
|
+
catchAt: number,
|
|
189
|
+
into: string | number,
|
|
190
|
+
): void {
|
|
191
|
+
heldOf(cx).push(
|
|
192
|
+
new TryHeld(from, catchFrom, finallyFrom, finallyTo, catchAt, into, cx.st.length),
|
|
193
|
+
);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Where control goes from the block `at`, where `error` was thrown: the
|
|
198
|
+
* catch of the first Try whose try body holds it, its variable set, or the
|
|
199
|
+
* finally of the first whose try or catch body does, which throws the
|
|
200
|
+
* value again as control leaves it. The stack is cut back to its height
|
|
201
|
+
* as that Try ran. Another error, a bug's or the host's, a recursion
|
|
202
|
+
* limit's, passes through, as does a value no Try catches.
|
|
203
|
+
*/
|
|
204
|
+
export function caught(cx: Activation, error: unknown, at: number): number {
|
|
205
|
+
const held = cx.held;
|
|
206
|
+
if (!(error instanceof Avm1Throw) || held === null) {
|
|
207
|
+
throw error;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
cx.into = -1;
|
|
211
|
+
for (let i = held.length - 1; i >= 0; i--) {
|
|
212
|
+
const h = held[i];
|
|
213
|
+
if (!(h instanceof TryHeld) || !h.holds(at)) {
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
if (at < h.catchFrom && h.catchAt !== NO_CATCH) {
|
|
218
|
+
// The scopes where it was thrown hold over the catch body too, under
|
|
219
|
+
// its variable's (adl).
|
|
220
|
+
const from = h.catchFrom;
|
|
221
|
+
const to = h.finallyFrom;
|
|
222
|
+
keepFrom(cx, held, i + 1, isScope);
|
|
223
|
+
for (let j = i + 1; j < held.length; j++) {
|
|
224
|
+
held[j].from = from;
|
|
225
|
+
held[j].to = to;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
cut(cx.st, h.height);
|
|
229
|
+
const into = h.into;
|
|
230
|
+
if (typeof into === "number") {
|
|
231
|
+
cx.into = into;
|
|
232
|
+
cx.thrown = error.value;
|
|
233
|
+
} else {
|
|
234
|
+
const scope = new Avm1Object();
|
|
235
|
+
scope.add(into, error.value, 0);
|
|
236
|
+
pushScope(cx, scope, from, to);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
return h.catchAt;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
if (h.finallyFrom < h.finallyTo) {
|
|
243
|
+
// The finally's mark goes under the scopes, which come off as control goes there.
|
|
244
|
+
held[i] = new Held(HELD_Thrown, h.finallyFrom, h.finallyTo, error.value);
|
|
245
|
+
keepFrom(cx, held, i + 1, isScope);
|
|
246
|
+
cut(cx.st, h.height);
|
|
247
|
+
reach(cx, held, h.finallyFrom);
|
|
248
|
+
return h.finallyFrom;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
throw error;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Control going to block `to` (-1: the exit) across the bounds of a body:
|
|
257
|
+
* the Trys that do not hold over it come off, and a finally that a throw
|
|
258
|
+
* or a Return reached throws or returns as control leaves it, even by a
|
|
259
|
+
* jump. The scopes on top that do not hold there come off; those whose
|
|
260
|
+
* body it is the first block past, after its first action (V.scopes).
|
|
261
|
+
*/
|
|
262
|
+
export function leave(cx: Activation, to: number): number {
|
|
263
|
+
const held = cx.held;
|
|
264
|
+
if (held !== null) {
|
|
265
|
+
for (let i = held.length - 1; i >= 0; i--) {
|
|
266
|
+
const h = held[i];
|
|
267
|
+
if (h.holds(to)) {
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
if (h.kind === HELD_Scope) {
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
held.splice(i, 1);
|
|
276
|
+
if (h.kind === HELD_Thrown) {
|
|
277
|
+
throw new Avm1Throw(h.value);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
if (h.kind === HELD_Returned) {
|
|
281
|
+
return returned(cx);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
if (to < 0) {
|
|
287
|
+
cx.ret = undefined;
|
|
288
|
+
} else if (held !== null) {
|
|
289
|
+
reach(cx, held, to);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
return to;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
/** The scopes that do not hold over block `at`, where control is, come off. */
|
|
296
|
+
export function scopes(cx: Activation, at: number): void {
|
|
297
|
+
const held = cx.held;
|
|
298
|
+
if (held === null) {
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
let n = held.length;
|
|
303
|
+
while (n > 0 && held[n - 1].kind === HELD_Scope && !held[n - 1].holds(at)) {
|
|
304
|
+
n--;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
if (n < held.length) {
|
|
308
|
+
keepFrom(cx, held, n, () => false);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
/**
|
|
313
|
+
* Return, its value on top of the stack: the finally of the first Try
|
|
314
|
+
* whose try or catch body holds control runs first, the stack cut back to
|
|
315
|
+
* its height as that Try ran with the value left on top, and the value is
|
|
316
|
+
* popped as control leaves it, the stack's top then (adl); a finally's own
|
|
317
|
+
* throw or Return gives way to this one.
|
|
318
|
+
*/
|
|
319
|
+
export function returned(cx: Activation): number {
|
|
320
|
+
const held = cx.held;
|
|
321
|
+
if (held !== null) {
|
|
322
|
+
for (let i = held.length - 1; i >= 0; i--) {
|
|
323
|
+
const h = held[i];
|
|
324
|
+
if (h instanceof TryHeld && h.finallyFrom < h.finallyTo) {
|
|
325
|
+
const st = cx.st;
|
|
326
|
+
const value = st.pop();
|
|
327
|
+
cut(st, h.height);
|
|
328
|
+
st.push(value);
|
|
329
|
+
held[i] = new Held(HELD_Returned, h.finallyFrom, h.finallyTo);
|
|
330
|
+
keepFrom(cx, held, i + 1, isScope);
|
|
331
|
+
reach(cx, held, h.finallyFrom);
|
|
332
|
+
return h.finallyFrom;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
cx.ret = cx.st.pop();
|
|
338
|
+
return -1;
|
|
339
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
// What ends an AVM1 block other than its code: an action not done yet, the
|
|
2
|
+
// SWF stopped at one Flash cannot read, or its actions disabled; and a value
|
|
3
|
+
// the code throws.
|
|
4
|
+
import type { Value } from "./values.js";
|
|
5
|
+
|
|
6
|
+
/** An action the runtime does not do yet: it ends the block it is in. */
|
|
7
|
+
export class NotYet extends Error {
|
|
8
|
+
override name = "Avm1NotYet";
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Thrown once the host has stopped the SWF at an action Flash cannot read,
|
|
13
|
+
* to end whatever runs; the player takes it for no error.
|
|
14
|
+
*/
|
|
15
|
+
export class Halt extends Error {
|
|
16
|
+
override name = "Avm1Halt";
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Thrown after a call, a `new` or a CallFrame that took the clip whose
|
|
21
|
+
* code runs off the display list: that code's activation returns there,
|
|
22
|
+
* a function's with undefined, and the code that called it goes on to its
|
|
23
|
+
* own check (adl; Ruffle's continue_if_base_clip_exists). One instance,
|
|
24
|
+
* thrown as a signal and never shown.
|
|
25
|
+
*/
|
|
26
|
+
export class BaseRemoved extends Error {
|
|
27
|
+
override name = "Avm1BaseRemoved";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export const BASE_REMOVED = new BaseRemoved("the clip whose code runs was removed");
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Thrown past Flash's recursion limit: Flash disables every action of the
|
|
34
|
+
* movie from there, and its timelines play on.
|
|
35
|
+
*/
|
|
36
|
+
export class Disabled extends Error {
|
|
37
|
+
override name = "Avm1Disabled";
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Thrown as scripts run past the script timeout, Flash's 15 seconds or a
|
|
42
|
+
* ScriptLimits tag's: Flash asks whether to stop them, and stopped, the
|
|
43
|
+
* movie's actions are disabled as past the recursion limit (Ruffle halts
|
|
44
|
+
* its AVM1 so too).
|
|
45
|
+
*/
|
|
46
|
+
export class TimedOut extends Disabled {
|
|
47
|
+
override name = "Avm1TimedOut";
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* A value AVM1 code throws (Throw), which a Try's catch or finally takes
|
|
52
|
+
* and which, caught by none, ends the block as Flash ends it, silently.
|
|
53
|
+
*/
|
|
54
|
+
export class Avm1Throw extends Error {
|
|
55
|
+
override name = "Avm1Throw";
|
|
56
|
+
|
|
57
|
+
constructor(readonly value: Value) {
|
|
58
|
+
super("an AVM1 value thrown and not caught");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
// AVM1's own functions, those DefineFunction and DefineFunction2 make, and
|
|
2
|
+
// what calling them takes, as Ruffle's (https://github.com/ruffle-rs/ruffle)
|
|
3
|
+
// core/src/avm1/function.rs and object/super_object.rs have them: MIT OR
|
|
4
|
+
// Apache-2.0, Copyright (c) 2018-2022 Ruffle LLC and Ruffle contributors.
|
|
5
|
+
// Where adl parts from Ruffle, adl decides (docs/avm1.md, "Functions and
|
|
6
|
+
// registers").
|
|
7
|
+
//
|
|
8
|
+
// A function's code is a region of its block's compiled entry, which
|
|
9
|
+
// takes the activation, `this` and the arguments; a DefineFunction2's
|
|
10
|
+
// registers are the region's own `let`s, which it loads itself. What
|
|
11
|
+
// the call needs of the runtime is here: an activation object for its
|
|
12
|
+
// local variables, its parameters without a register among them, and
|
|
13
|
+
// `arguments` and `super`, made only if the code asks for them.
|
|
14
|
+
import { Activation, PENDING_Arguments, PENDING_Super, type Region } from "./activation.js";
|
|
15
|
+
import { targetOrRoot } from "./clips.js";
|
|
16
|
+
import { BASE_REMOVED, Disabled } from "./errors.js";
|
|
17
|
+
import type { Target } from "./host.js";
|
|
18
|
+
import { Avm1Function, Avm1Object, DONT_ENUM, fold, type Property } from "./objects.js";
|
|
19
|
+
import type { Realm } from "./realm.js";
|
|
20
|
+
import { SCOPE_Local, SCOPE_Target, Scope } from "./scope.js";
|
|
21
|
+
import { isPrimitive, type Value } from "./values.js";
|
|
22
|
+
|
|
23
|
+
// DefineFunction2's flags (the SWF's FunctionFlags).
|
|
24
|
+
const FUNCTION_PreloadThis = 0x001;
|
|
25
|
+
const FUNCTION_SuppressThis = 0x002;
|
|
26
|
+
const FUNCTION_PreloadArguments = 0x004;
|
|
27
|
+
const FUNCTION_SuppressArguments = 0x008;
|
|
28
|
+
const FUNCTION_PreloadSuper = 0x010;
|
|
29
|
+
const FUNCTION_SuppressSuper = 0x020;
|
|
30
|
+
|
|
31
|
+
/** A DefineFunction or DefineFunction2's function. */
|
|
32
|
+
export class ScriptFunction extends Avm1Function {
|
|
33
|
+
constructor(
|
|
34
|
+
proto: Value,
|
|
35
|
+
readonly world: Realm,
|
|
36
|
+
/** The region of its body. */
|
|
37
|
+
readonly region: Region,
|
|
38
|
+
/** Its block's regions, which DefineFunction in its body makes functions of. */
|
|
39
|
+
readonly code: Region[],
|
|
40
|
+
/** Its parameters' names, null for those in a register. */
|
|
41
|
+
readonly params: (string | null)[],
|
|
42
|
+
/** DefineFunction2's flags, 0 for a DefineFunction. */
|
|
43
|
+
readonly flags: number,
|
|
44
|
+
/** The version of the SWF that defined it. */
|
|
45
|
+
readonly version: number,
|
|
46
|
+
/** The scope chain it was defined in, which it closes over from SWF 6. */
|
|
47
|
+
readonly scope: Scope,
|
|
48
|
+
/** The constant pool of the activation that defined it, as it was then. */
|
|
49
|
+
readonly pool: Value[],
|
|
50
|
+
/** The clip whose code defined it, its activation's base clip, its target from SWF 6. */
|
|
51
|
+
readonly target: Target,
|
|
52
|
+
readonly clip: Avm1Object,
|
|
53
|
+
/**
|
|
54
|
+
* The `this` of the activation that defined it, which is its own where
|
|
55
|
+
* DefineFunction2 preloads or suppresses `this`; undefined from SWF 5,
|
|
56
|
+
* whose functions close over nothing (adl; Ruffle takes the caller's).
|
|
57
|
+
*/
|
|
58
|
+
readonly definer: Value,
|
|
59
|
+
) {
|
|
60
|
+
super(proto, world, notNative);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Run its body with `self` as `this`, `depth` how far up `this`'s
|
|
65
|
+
* prototypes it was found (which `super` starts from), in an activation
|
|
66
|
+
* of its own above the scope it closes over, or from SWF 5 above the
|
|
67
|
+
* clip of `this` or of the caller's target, as Flash 5 ran functions.
|
|
68
|
+
*/
|
|
69
|
+
override call(self: Value, args: Value[], version: number, depth = 0): Value {
|
|
70
|
+
const realm = this.world;
|
|
71
|
+
const caller = realm.current;
|
|
72
|
+
if (caller === null) {
|
|
73
|
+
throw new Error("an AVM1 function called outside of AVM1 code");
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (realm.calls + 1 >= realm.maxCalls) {
|
|
77
|
+
throw new Disabled(`${realm.maxCalls} levels of recursion were exceeded`);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Calls count down to the script timeout's check, as jumps back do.
|
|
81
|
+
if (--realm.budget < 0) {
|
|
82
|
+
realm.timeout();
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
if (self !== undefined && self !== null && isPrimitive(self)) {
|
|
86
|
+
self = realm.box(self, version);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
let scope = this.scope;
|
|
90
|
+
let target = this.target;
|
|
91
|
+
let clip = this.clip;
|
|
92
|
+
if (this.version < 6) {
|
|
93
|
+
const own = self instanceof Avm1Object ? caller.host.clipOf?.(self) : undefined;
|
|
94
|
+
if (own !== undefined) {
|
|
95
|
+
target = own;
|
|
96
|
+
clip = self as Avm1Object;
|
|
97
|
+
} else {
|
|
98
|
+
target = targetOrRoot(caller);
|
|
99
|
+
clip = caller.clip;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
scope = new Scope(realm.globalScope, SCOPE_Target, clip);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
const flags = this.flags;
|
|
106
|
+
const local = new Avm1Object();
|
|
107
|
+
const inherited = (flags & (FUNCTION_PreloadThis | FUNCTION_SuppressThis)) !== 0;
|
|
108
|
+
const cx = new Activation(
|
|
109
|
+
caller.st,
|
|
110
|
+
this.pool,
|
|
111
|
+
target,
|
|
112
|
+
caller.host,
|
|
113
|
+
realm,
|
|
114
|
+
// adl counts a SWF 5 function's chain as a timeline's, for the With's limit.
|
|
115
|
+
new Scope(scope, SCOPE_Local, local, this.version < 6 ? scope.depth : scope.depth + 1),
|
|
116
|
+
inherited ? this.definer : self,
|
|
117
|
+
clip,
|
|
118
|
+
);
|
|
119
|
+
cx.code = this.code;
|
|
120
|
+
cx.callee = this;
|
|
121
|
+
cx.caller = caller.callee;
|
|
122
|
+
cx.args = args;
|
|
123
|
+
cx.depth = depth;
|
|
124
|
+
cx.receiver = self;
|
|
125
|
+
|
|
126
|
+
const params = this.params;
|
|
127
|
+
for (let i = 0; i < params.length; i++) {
|
|
128
|
+
const name = params[i];
|
|
129
|
+
if (name !== null) {
|
|
130
|
+
defineParam(local, name, i < args.length ? args[i] : undefined, this.version);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
let pending = 0;
|
|
135
|
+
if ((flags & (FUNCTION_PreloadArguments | FUNCTION_SuppressArguments)) === 0) {
|
|
136
|
+
pending |= PENDING_Arguments;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
if (
|
|
140
|
+
(flags & (FUNCTION_PreloadSuper | FUNCTION_SuppressSuper)) === 0 &&
|
|
141
|
+
depth > 0 &&
|
|
142
|
+
this.version >= 6 &&
|
|
143
|
+
self instanceof Avm1Object
|
|
144
|
+
) {
|
|
145
|
+
pending |= PENDING_Super;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (pending !== 0) {
|
|
149
|
+
cx.pending = pending;
|
|
150
|
+
local.lazy = cx;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
realm.calls++;
|
|
154
|
+
realm.current = cx;
|
|
155
|
+
try {
|
|
156
|
+
return this.region(cx, self, args);
|
|
157
|
+
} catch (error) {
|
|
158
|
+
// Its clip was removed under it: it returns undefined there.
|
|
159
|
+
if (error === BASE_REMOVED) {
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
throw error;
|
|
164
|
+
} finally {
|
|
165
|
+
realm.calls--;
|
|
166
|
+
realm.current = caller;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/** As a constructor: its result is the object `new` made, whatever the body returns. */
|
|
171
|
+
override initialize(self: Avm1Object, args: Value[], version: number): void {
|
|
172
|
+
this.call(self, args, version, 1);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
override callConstructor(self: Avm1Object, args: Value[], version: number, depth: number): Value {
|
|
176
|
+
return this.call(self, args, version, depth);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
function notNative(): Value {
|
|
181
|
+
return undefined;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/** A parameter as a local variable; of two of the same name, the later. */
|
|
185
|
+
function defineParam(local: Avm1Object, name: string, value: Value, version: number): void {
|
|
186
|
+
const p = local.own(name, version);
|
|
187
|
+
if (p === undefined) {
|
|
188
|
+
local.add(name, value, 0);
|
|
189
|
+
} else {
|
|
190
|
+
p.value = value;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* `super` in a method: an object whose prototype is the one above where
|
|
196
|
+
* the method was found, whose methods run with the method's `this`.
|
|
197
|
+
*/
|
|
198
|
+
export class Avm1Super extends Avm1Object {
|
|
199
|
+
constructor(
|
|
200
|
+
/** The `this` of the method that made it. */
|
|
201
|
+
readonly self: Avm1Object,
|
|
202
|
+
/** How far up `self`'s prototypes the method was found. */
|
|
203
|
+
readonly depth: number,
|
|
204
|
+
version: number,
|
|
205
|
+
) {
|
|
206
|
+
super(superProto(self, depth, version));
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/** The prototype `depth` steps up from `self`, then its own: where `super` looks. */
|
|
211
|
+
function superProto(self: Avm1Object, depth: number, version: number): Value {
|
|
212
|
+
let base: Value = self;
|
|
213
|
+
for (let i = 0; i < depth; i++) {
|
|
214
|
+
if (!(base instanceof Avm1Object)) {
|
|
215
|
+
return undefined;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
base = base.protoFor(version);
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return base instanceof Avm1Object ? base.protoFor(version) : undefined;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* `super` for an activation, undefined where it has none: a plain call has
|
|
226
|
+
* none, nor does a SWF 5 (adl).
|
|
227
|
+
*/
|
|
228
|
+
export function superOf(cx: Activation, self: Value, version: number): Value {
|
|
229
|
+
return cx.depth > 0 && version >= 6 && self instanceof Avm1Object
|
|
230
|
+
? new Avm1Super(self, cx.depth, version)
|
|
231
|
+
: undefined;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/** A function's `arguments`: an array of them, with `callee` and `caller`. */
|
|
235
|
+
export function argumentsOf(cx: Activation, args: Value[], version: number): Avm1Object {
|
|
236
|
+
const array = cx.realm.newArray(args, version);
|
|
237
|
+
array.define("callee", cx.callee, DONT_ENUM);
|
|
238
|
+
array.define("caller", cx.caller, DONT_ENUM);
|
|
239
|
+
return array;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/** Whether `name` is `local` for a SWF of `version`. */
|
|
243
|
+
const named = (name: string, local: string, version: number) =>
|
|
244
|
+
name === local || (version < 7 && fold(name) === local);
|
|
245
|
+
|
|
246
|
+
/**
|
|
247
|
+
* `arguments` or `super` on a function's activation object `o`, as a
|
|
248
|
+
* lookup first misses it; any other name stays missing.
|
|
249
|
+
*/
|
|
250
|
+
export function pendingLocal(
|
|
251
|
+
cx: Activation,
|
|
252
|
+
o: Avm1Object,
|
|
253
|
+
name: string,
|
|
254
|
+
version: number,
|
|
255
|
+
): Property | undefined {
|
|
256
|
+
let p: Property | undefined;
|
|
257
|
+
if (cx.pending & PENDING_Arguments && named(name, "arguments", version)) {
|
|
258
|
+
cx.pending &= ~PENDING_Arguments;
|
|
259
|
+
p = o.add("arguments", argumentsOf(cx, cx.args, version), 0);
|
|
260
|
+
} else if (cx.pending & PENDING_Super && named(name, "super", version)) {
|
|
261
|
+
cx.pending &= ~PENDING_Super;
|
|
262
|
+
// Not listed by for..in, as `arguments` is (adl).
|
|
263
|
+
p = o.add("super", superOf(cx, cx.receiver, version), DONT_ENUM);
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
if (cx.pending === 0) {
|
|
267
|
+
o.lazy = null;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
return p;
|
|
271
|
+
}
|