@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,584 @@
|
|
|
1
|
+
// The layout model: an object's traits, its bindings and slots as the
|
|
2
|
+
// module's descriptor gives them, and the references by which a module
|
|
3
|
+
// names a class or a Vector type before it exists.
|
|
4
|
+
|
|
5
|
+
import type {
|
|
6
|
+
AsObject,
|
|
7
|
+
ClassDesc,
|
|
8
|
+
Metadata,
|
|
9
|
+
Signature,
|
|
10
|
+
SlotFill,
|
|
11
|
+
TraitsDesc,
|
|
12
|
+
TypeRef,
|
|
13
|
+
Value,
|
|
14
|
+
} from "./descriptors.js";
|
|
15
|
+
import type { Domain } from "./domain.js";
|
|
16
|
+
import { DynamicProperties } from "./dynamic-properties.js";
|
|
17
|
+
import type { ClassHook, IndexHook, PropertyHook } from "./hooks.js";
|
|
18
|
+
import type { Multiname, Namespace } from "./names.js";
|
|
19
|
+
import { invalidate } from "./property-cache.js";
|
|
20
|
+
|
|
21
|
+
// Binding kinds, as the compiler encodes them: kind | id << 3.
|
|
22
|
+
export const BIND_Method = 1;
|
|
23
|
+
export const BIND_Var = 2;
|
|
24
|
+
export const BIND_Const = 3;
|
|
25
|
+
export const BIND_Get = 5;
|
|
26
|
+
export const BIND_Set = 6;
|
|
27
|
+
export const BIND_GetSet = 7;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Set class `cls`'s own static variable `name`, in whatever namespace, to
|
|
31
|
+
* `value`: for a class hook setting what the VM keeps there, as a private
|
|
32
|
+
* static the class reads.
|
|
33
|
+
*/
|
|
34
|
+
export function setStaticVar(cls: AsObject, name: string, value: Value): void {
|
|
35
|
+
for (const [, , n, b] of (cls.$desc as ClassDesc).static.bindings) {
|
|
36
|
+
if (n === name && (b & 7) === BIND_Var) {
|
|
37
|
+
cls[`$${b >> 3}`] = value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* The field that holds class `cls`'s own instance variable `name`, in
|
|
44
|
+
* whatever namespace, or null if it declares none: for a player that reads
|
|
45
|
+
* or writes a private field its playerglobal's AS3 keeps.
|
|
46
|
+
*/
|
|
47
|
+
export function instanceVarField(cls: AsObject, name: string): string | null {
|
|
48
|
+
// A class no module describes, as a host's stand-in, declares none.
|
|
49
|
+
const desc = cls?.$desc as ClassDesc | undefined;
|
|
50
|
+
for (const [, , n, b] of desc?.instance.bindings ?? []) {
|
|
51
|
+
if (n === name && (b & 7) === BIND_Var) {
|
|
52
|
+
return `$${b >> 3}`;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** The builtins besides Object whose type tests isInstanceOf answers from the value, not its traits. */
|
|
60
|
+
export const VALUE_TESTS = new Set(["float", "Number", "int", "uint", "String", "Boolean"]);
|
|
61
|
+
|
|
62
|
+
/** Trait kinds as the ABC has them, which the descriptors' metadata is keyed by. */
|
|
63
|
+
const TRAIT_Slot = 0;
|
|
64
|
+
const TRAIT_Getter = 2;
|
|
65
|
+
const TRAIT_Setter = 3;
|
|
66
|
+
const TRAIT_Class = 4;
|
|
67
|
+
const TRAIT_Const = 6;
|
|
68
|
+
|
|
69
|
+
interface Binding {
|
|
70
|
+
ns: Namespace;
|
|
71
|
+
version: number;
|
|
72
|
+
value: number;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The traits of an object: its own bindings by local name, and its own
|
|
77
|
+
* slots' types and initial values; lookups continue in the base's, as
|
|
78
|
+
* avmplus' do, so a base described after its subclass was made (Object,
|
|
79
|
+
* Class and Function, during the bootstrap) is still seen.
|
|
80
|
+
*/
|
|
81
|
+
export class Traits {
|
|
82
|
+
bindings = new Map<string, Binding[]>();
|
|
83
|
+
slotTypes: TypeRef[] = [];
|
|
84
|
+
own: [string, Value][] = [];
|
|
85
|
+
/** Every slot field and its initial value, the base's first, once an instance is made. */
|
|
86
|
+
private allDefaults: [string, Value][] | null = null;
|
|
87
|
+
/** What the module compiled to set the slots by name, if it did (TraitsDesc.fill). */
|
|
88
|
+
private fill: SlotFill | null = null;
|
|
89
|
+
/** Once an instance is made: the fill these traits' objects use, if any, and its values by slot. */
|
|
90
|
+
private filler: SlotFill | null = null;
|
|
91
|
+
private slotValues: Value[] = [];
|
|
92
|
+
/** The JavaScript prototype of objects with these traits. */
|
|
93
|
+
proto: AsObject;
|
|
94
|
+
/** The object its methods go into now (methodHome): its prototype, or one chained below it. */
|
|
95
|
+
private home: AsObject | null = null;
|
|
96
|
+
/** How many properties `home` has taken, a few counted in advance for the prototype's own. */
|
|
97
|
+
private homeSize = HOME_SLACK;
|
|
98
|
+
/** Whether it declares a slot its objects keep in their array `$S` (SPILL_SLOTS). */
|
|
99
|
+
private spills = false;
|
|
100
|
+
/** The class whose instances these are the traits of, once it exists. */
|
|
101
|
+
cls: AsObject | null = null;
|
|
102
|
+
interfaces = new Set<Traits>();
|
|
103
|
+
dynamic = false;
|
|
104
|
+
/** Whether it is a script's global object's, as System.isGlobal asks. */
|
|
105
|
+
isGlobal = false;
|
|
106
|
+
/**
|
|
107
|
+
* Whether a dynamic class's instances refuse any name but their own and
|
|
108
|
+
* an index, getting it or setting it, as a Vector's do: they delete one,
|
|
109
|
+
* or have one in, as any dynamic object, which it never has.
|
|
110
|
+
*/
|
|
111
|
+
refusesNames = false;
|
|
112
|
+
/** How to allocate an instance, for classes whose instances hold native state. */
|
|
113
|
+
create: ((traits: Traits) => AsObject) | null;
|
|
114
|
+
/** The class's own hook, a builtin's or a player's; not inherited, but a specialized Vector has its base's. */
|
|
115
|
+
hooks: ClassHook | null = null;
|
|
116
|
+
/** How its instances resolve the names it does not bind, if not as dynamic properties. */
|
|
117
|
+
properties: PropertyHook | null = null;
|
|
118
|
+
/** Its own slots with [Transient] metadata, if any. */
|
|
119
|
+
transientSlots: Set<number> | null = null;
|
|
120
|
+
/** Its own accessors with metadata, if any, by dispatch id: whether any of it is [Transient]. */
|
|
121
|
+
accessorMetadata: Map<number, boolean> | null = null;
|
|
122
|
+
/** Its own methods' signatures, by dispatch id, for describeType. */
|
|
123
|
+
signatures = new Map<number, Signature>();
|
|
124
|
+
/** Its own slots' and methods' metadata, by slot id and by dispatch id, for describeType. */
|
|
125
|
+
slotMetadata: Map<number, Metadata[]> | null = null;
|
|
126
|
+
methodMetadata: Map<number, Metadata[]> | null = null;
|
|
127
|
+
/** The class's: whether it is final or an interface, its constructor's parameters, its own metadata. */
|
|
128
|
+
final = false;
|
|
129
|
+
isInterface = false;
|
|
130
|
+
/** The ABC that defines the class, whether it is restricted, and whether that makes it one nothing constructs. */
|
|
131
|
+
abc: object | null = null;
|
|
132
|
+
restricted = false;
|
|
133
|
+
uninstantiable = false;
|
|
134
|
+
ctor: [TypeRef[], number] | null = null;
|
|
135
|
+
metadata: Metadata[] | null = null;
|
|
136
|
+
getIndex?: IndexHook["getIndex"];
|
|
137
|
+
setIndex?: IndexHook["setIndex"];
|
|
138
|
+
hasIndex?: IndexHook["hasIndex"];
|
|
139
|
+
index?: IndexHook["index"];
|
|
140
|
+
/**
|
|
141
|
+
* Whether a type test against these traits looks at more than an object's
|
|
142
|
+
* traits, as one against Object, a number type, String or Boolean does,
|
|
143
|
+
* which takes primitives: those builtins' own, not a class named as one.
|
|
144
|
+
*/
|
|
145
|
+
testsValues = false;
|
|
146
|
+
/**
|
|
147
|
+
* Object.prototype.toString's "[object Name]" for its instances, once
|
|
148
|
+
* made: the same string each time, whose hash V8 keeps, so that looking
|
|
149
|
+
* it up, as `in` a Dictionary does for each object key it misses, does
|
|
150
|
+
* not hash it anew.
|
|
151
|
+
*/
|
|
152
|
+
objectString: string | null = null;
|
|
153
|
+
/**
|
|
154
|
+
* The keys of the methods its instances are called by through each
|
|
155
|
+
* interface, as Runtime.interfaceKey finds them: by the interface's
|
|
156
|
+
* traits, an array by the interface's dispatch ids. The last interface
|
|
157
|
+
* looked up, and its keys, are kept apart, as most receivers are called
|
|
158
|
+
* through one.
|
|
159
|
+
*/
|
|
160
|
+
interfaceKeys: Map<Traits, (string | undefined)[]> | null = null;
|
|
161
|
+
lastInterface: Traits | null = null;
|
|
162
|
+
lastInterfaceKeys: (string | undefined)[] = [];
|
|
163
|
+
|
|
164
|
+
constructor(
|
|
165
|
+
readonly name: string,
|
|
166
|
+
readonly base: Traits | null,
|
|
167
|
+
proto?: AsObject,
|
|
168
|
+
) {
|
|
169
|
+
this.proto = proto ?? Object.create(base ? base.proto : null);
|
|
170
|
+
this.proto.$traits = this;
|
|
171
|
+
this.create = base ? base.create : null;
|
|
172
|
+
this.properties = base ? base.properties : null;
|
|
173
|
+
this.getIndex = base?.getIndex;
|
|
174
|
+
this.setIndex = base?.setIndex;
|
|
175
|
+
this.hasIndex = base?.hasIndex;
|
|
176
|
+
this.index = base?.index;
|
|
177
|
+
if (base) {
|
|
178
|
+
for (const i of base.interfaces) {
|
|
179
|
+
this.interfaces.add(i);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* The object a method and its entries, `count` properties, go into:
|
|
186
|
+
* the prototype, till it holds HOME_PROPERTIES, then an object chained
|
|
187
|
+
* below it, above the base's, and so on. V8 keeps an object of more
|
|
188
|
+
* than 1020 properties as a dictionary, which hashes every name looked
|
|
189
|
+
* up in it: a script of thousands of functions, as Crossbridge compiles
|
|
190
|
+
* C, called each through such a prototype ran five times as slow as
|
|
191
|
+
* through one that is not. A prototype chain of objects V8 keeps fast
|
|
192
|
+
* looks a name up as fast as one object.
|
|
193
|
+
*/
|
|
194
|
+
methodHome(count: number): AsObject {
|
|
195
|
+
let home = this.home ?? this.proto;
|
|
196
|
+
if (this.homeSize + count > HOME_PROPERTIES) {
|
|
197
|
+
// Chained before it takes its methods: V8 keeps an object fast that is a prototype first.
|
|
198
|
+
const below = Object.create(Object.getPrototypeOf(home));
|
|
199
|
+
Object.setPrototypeOf(home, below);
|
|
200
|
+
home = below;
|
|
201
|
+
this.homeSize = 0;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
this.home = home;
|
|
205
|
+
this.homeSize += count;
|
|
206
|
+
return home;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
/** Add a traits' own bindings and slots from its descriptor. */
|
|
210
|
+
describe(desc: TraitsDesc): void {
|
|
211
|
+
invalidate();
|
|
212
|
+
for (const [ns, version, name, value] of desc.bindings) {
|
|
213
|
+
let list = this.bindings.get(name);
|
|
214
|
+
if (!list) {
|
|
215
|
+
list = [];
|
|
216
|
+
this.bindings.set(name, list);
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
list.push({ ns, version, value });
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
for (const [slot, value, type] of desc.defaults) {
|
|
223
|
+
this.slotTypes[slot] = type;
|
|
224
|
+
this.own.push([slotKey(slot), value]);
|
|
225
|
+
if (slot >= SPILL_SLOTS) {
|
|
226
|
+
this.spills = true;
|
|
227
|
+
spilledSlot(this.methodHome(1), slot);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
for (const [d, , , returnType, params, required] of desc.methods) {
|
|
232
|
+
this.signatures.set(d, [returnType, params, required]);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
if (desc.meta) {
|
|
236
|
+
this.annotate(desc.meta);
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
this.fill = desc.fill ?? null;
|
|
240
|
+
this.allDefaults = null;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* Keep the traits' metadata, and what AMF and JSON ask of it: the slots
|
|
245
|
+
* with [Transient], and for each accessor with metadata whether any of
|
|
246
|
+
* it is [Transient], since an accessor's metadata hides its base's, as
|
|
247
|
+
* avmplus' getMethodMetadataPos finds it.
|
|
248
|
+
*/
|
|
249
|
+
private annotate(meta: [number, number, Metadata[]][]): void {
|
|
250
|
+
const transient = (entries: Metadata[]) => entries.some(([name]) => name === "Transient");
|
|
251
|
+
for (const [kind, id, entries] of meta) {
|
|
252
|
+
if (kind === TRAIT_Slot || kind === TRAIT_Const || kind === TRAIT_Class) {
|
|
253
|
+
this.slotMetadata ??= new Map();
|
|
254
|
+
this.slotMetadata.set(id, entries);
|
|
255
|
+
if (transient(entries)) {
|
|
256
|
+
this.transientSlots ??= new Set();
|
|
257
|
+
this.transientSlots.add(id);
|
|
258
|
+
}
|
|
259
|
+
} else {
|
|
260
|
+
this.methodMetadata ??= new Map();
|
|
261
|
+
this.methodMetadata.set(id, entries);
|
|
262
|
+
if (kind === TRAIT_Getter || kind === TRAIT_Setter) {
|
|
263
|
+
this.accessorMetadata ??= new Map();
|
|
264
|
+
this.accessorMetadata.set(id, transient(entries));
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Whether the member binding `b` names is [Transient], which AMF and
|
|
272
|
+
* JSON leave out: a slot, or either accessor of a pair, whose metadata,
|
|
273
|
+
* found as avmplus' TraitsMetadata finds it, has it.
|
|
274
|
+
*/
|
|
275
|
+
isTransient(b: number): boolean {
|
|
276
|
+
const kind = b & 7;
|
|
277
|
+
const id = b >> 3;
|
|
278
|
+
if (kind === BIND_Var || kind === BIND_Const) {
|
|
279
|
+
for (let t: Traits | null = this; t; t = t.base) {
|
|
280
|
+
if (t.transientSlots?.has(id)) {
|
|
281
|
+
return true;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
return false;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
return (
|
|
289
|
+
((kind === BIND_Get || kind === BIND_GetSet) && this.transientAccessor(id)) ||
|
|
290
|
+
((kind === BIND_Set || kind === BIND_GetSet) && this.transientAccessor(id + 1))
|
|
291
|
+
);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/** Whether accessor `id`'s metadata, the nearest traits' that has any, is [Transient]. */
|
|
295
|
+
private transientAccessor(id: number): boolean {
|
|
296
|
+
for (let t: Traits | null = this; t; t = t.base) {
|
|
297
|
+
const transient = t.accessorMetadata?.get(id);
|
|
298
|
+
if (transient !== undefined) {
|
|
299
|
+
return transient;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/** Whether it or a base declares a slot kept in the array `$S`. */
|
|
307
|
+
private spillsAny(): boolean {
|
|
308
|
+
for (let t: Traits | null = this; t; t = t.base) {
|
|
309
|
+
if (t.spills) {
|
|
310
|
+
return true;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
return false;
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/** The type of slot `id`, declared here or by a base. */
|
|
318
|
+
slotType(id: number): TypeRef {
|
|
319
|
+
for (let t: Traits | null = this; t; t = t.base) {
|
|
320
|
+
if (id in t.slotTypes) {
|
|
321
|
+
return t.slotTypes[id];
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
return null;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
/** The binding `mn` names, or 0: the first of its namespaces that binds it at its version. */
|
|
329
|
+
find(mn: Multiname): number {
|
|
330
|
+
const name = mn.name;
|
|
331
|
+
if (name === null) {
|
|
332
|
+
return 0;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
const namespaces = mn.namespaces;
|
|
336
|
+
for (let t: Traits | null = this; t; t = t.base) {
|
|
337
|
+
const list = t.bindings.get(name);
|
|
338
|
+
if (!list) {
|
|
339
|
+
continue;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
// Indexes, not for-of: compiled code looks its names up here.
|
|
343
|
+
for (let i = 0; i < namespaces.length; i++) {
|
|
344
|
+
const ns = namespaces[i];
|
|
345
|
+
for (let k = 0; k < list.length; k++) {
|
|
346
|
+
const b = list[k];
|
|
347
|
+
if (b.ns === ns && b.version <= mn.versions[i]) {
|
|
348
|
+
return b.value;
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
return 0;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/** A new object with these traits, its slots at their initial values. */
|
|
358
|
+
instance(): AsObject {
|
|
359
|
+
const o = this.create ? this.create(this) : Object.create(this.proto);
|
|
360
|
+
o.$d = this.dynamic ? new DynamicProperties() : null;
|
|
361
|
+
if (!this.allDefaults) {
|
|
362
|
+
this.allDefaults = this.base ? [...this.base.defaultsOf(), ...this.own] : this.own.slice();
|
|
363
|
+
this.filler = this.fillOf();
|
|
364
|
+
this.slotValues = this.filler ? valuesBySlot(this.allDefaults) : [];
|
|
365
|
+
}
|
|
366
|
+
|
|
367
|
+
if (this.filler) {
|
|
368
|
+
this.filler(o, this.slotValues);
|
|
369
|
+
} else {
|
|
370
|
+
// Those past SPILL_SLOTS through their accessors, into the array.
|
|
371
|
+
if (this.spillsAny()) {
|
|
372
|
+
o.$S = [];
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
// Traits no module compiled a fill for: a catch scope's, or past
|
|
376
|
+
// FILL_SLOTS, where V8 keeps no object fast anyway.
|
|
377
|
+
const defaults = this.allDefaults;
|
|
378
|
+
for (let i = 0; i < defaults.length; i++) {
|
|
379
|
+
o[defaults[i][0]] = defaults[i][1];
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
return o;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
/** The fill for these traits' objects: their module's, or a base's that has all their slots, as a Vector.<T>'s. */
|
|
387
|
+
private fillOf(): SlotFill | null {
|
|
388
|
+
if (this.fill || this.own.length) {
|
|
389
|
+
return this.fill;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
return this.base ? this.base.fillOf() : null;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
defaultsOf(): [string, Value][] {
|
|
396
|
+
return this.allDefaults ?? (this.base ? [...this.base.defaultsOf(), ...this.own] : this.own);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Interfaces named by a class made before them, as a script may define a
|
|
401
|
+
* class before an interface it implements: each gives the interface's
|
|
402
|
+
* traits once its class exists, or null before. avmplus takes interfaces
|
|
403
|
+
* from traits, which exist from loading; these are settled when a type
|
|
404
|
+
* test first needs them.
|
|
405
|
+
*/
|
|
406
|
+
pendingInterfaces: (() => Traits | null)[] | null = null;
|
|
407
|
+
|
|
408
|
+
/** Add the interfaces now made that were pending, here and in the bases. */
|
|
409
|
+
settleInterfaces(): void {
|
|
410
|
+
for (let c: Traits | null = this; c; c = c.base) {
|
|
411
|
+
const pending = c.pendingInterfaces;
|
|
412
|
+
if (!pending) {
|
|
413
|
+
continue;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
c.pendingInterfaces = pending.filter((get) => {
|
|
417
|
+
const iface = get();
|
|
418
|
+
if (!iface) {
|
|
419
|
+
return true;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
iface.settleInterfaces();
|
|
423
|
+
c.interfaces.add(iface);
|
|
424
|
+
for (const i of iface.interfaces) {
|
|
425
|
+
c.interfaces.add(i);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
return false;
|
|
429
|
+
});
|
|
430
|
+
if (!c.pendingInterfaces.length) {
|
|
431
|
+
c.pendingInterfaces = null;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
/**
|
|
437
|
+
* The interfaces of this class and its bases, once none of them has one
|
|
438
|
+
* pending: from then on what isSubtypeOf answers no more changes, and
|
|
439
|
+
* a class that is not t answers by this alone, as `is` on a 3D
|
|
440
|
+
* engine's scene nodes asks every frame.
|
|
441
|
+
*/
|
|
442
|
+
private allInterfaces: Set<Traits> | null = null;
|
|
443
|
+
|
|
444
|
+
isSubtypeOf(t: Traits): boolean {
|
|
445
|
+
for (let c: Traits | null = this; c; c = c.base) {
|
|
446
|
+
if (c === t) {
|
|
447
|
+
return true;
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
// A class is a supertype only as a base; only interfaces are in the sets below.
|
|
452
|
+
if (!t.isInterface) {
|
|
453
|
+
return false;
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
if (this.allInterfaces !== null) {
|
|
457
|
+
return this.allInterfaces.has(t);
|
|
458
|
+
}
|
|
459
|
+
|
|
460
|
+
if (this.interfaces.has(t)) {
|
|
461
|
+
return true;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
// An interface a base settled after this class copied its interfaces.
|
|
465
|
+
this.settleInterfaces();
|
|
466
|
+
let settled = true;
|
|
467
|
+
const all = new Set<Traits>();
|
|
468
|
+
for (let c: Traits | null = this; c; c = c.base) {
|
|
469
|
+
if (c.pendingInterfaces) {
|
|
470
|
+
settled = false;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
for (const i of c.interfaces) {
|
|
474
|
+
all.add(i);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
|
|
478
|
+
if (settled) {
|
|
479
|
+
this.allInterfaces = all;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
return all.has(t);
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
/** A class named in a module, resolved the first time it is needed. */
|
|
487
|
+
export class ClassRef {
|
|
488
|
+
cls: AsObject | null = null;
|
|
489
|
+
/**
|
|
490
|
+
* Its instances' traits, once coerceTo has found them; a compiled
|
|
491
|
+
* method's parameter of the type reads them by name on entry.
|
|
492
|
+
*/
|
|
493
|
+
traits: Traits | null = null;
|
|
494
|
+
|
|
495
|
+
constructor(
|
|
496
|
+
readonly ns: Namespace,
|
|
497
|
+
readonly name: string,
|
|
498
|
+
/** The domain its module was loaded into, which it is resolved in. */
|
|
499
|
+
readonly domain: Domain,
|
|
500
|
+
) {}
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
/** Vector.<T>, resolved the first time it is needed. */
|
|
504
|
+
export class VectorRef {
|
|
505
|
+
cls: AsObject | null = null;
|
|
506
|
+
/**
|
|
507
|
+
* Its instances' traits, once coerceTo has found them; a compiled
|
|
508
|
+
* method's parameter of the type reads them by name on entry.
|
|
509
|
+
*/
|
|
510
|
+
traits: Traits | null = null;
|
|
511
|
+
|
|
512
|
+
constructor(readonly param: TypeRef) {}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
/** The initial values of `defaults` by slot id, the last of a slot listed twice, as they are set. */
|
|
516
|
+
function valuesBySlot(defaults: [string, Value][]): Value[] {
|
|
517
|
+
let count = 0;
|
|
518
|
+
for (const [key] of defaults) {
|
|
519
|
+
count = Math.max(count, Number(key.slice(1)) + 1);
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
const values: Value[] = new Array(count).fill(undefined);
|
|
523
|
+
for (const [key, value] of defaults) {
|
|
524
|
+
values[Number(key.slice(1))] = value;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
return values;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
/**
|
|
531
|
+
* The properties a prototype object takes before its traits' methods go
|
|
532
|
+
* on in another below it (Traits.methodHome), well short of V8's 1020; a
|
|
533
|
+
* few counted in advance for the prototype's own ($traits, $p, $init).
|
|
534
|
+
*/
|
|
535
|
+
const HOME_PROPERTIES = 768;
|
|
536
|
+
const HOME_SLACK = 16;
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* The first slot an object keeps in its array `$S` rather than in a
|
|
540
|
+
* property of its own, as the codegen's SPILL_SLOTS (emit/refs.ts), which
|
|
541
|
+
* compiled code reads and writes there (`o.$S[n - SPILL_SLOTS]`): V8
|
|
542
|
+
* keeps an object of more than 1020 properties as a dictionary, which
|
|
543
|
+
* hashes every name looked up in it. A Crossbridge program's global, of
|
|
544
|
+
* thousands of slots, its stack pointer and registers among the first,
|
|
545
|
+
* ran five times as slow as one that is not. The slot's name reaches the
|
|
546
|
+
* array through an accessor on the prototype (spilledSlot), so that what
|
|
547
|
+
* looks slots up by name finds them as any other.
|
|
548
|
+
*/
|
|
549
|
+
export const SPILL_SLOTS = 900;
|
|
550
|
+
|
|
551
|
+
/** Slot `slot`'s accessor in `home`, a prototype of its objects: the object's `$S` at its place. */
|
|
552
|
+
function spilledSlot(home: AsObject, slot: number): void {
|
|
553
|
+
const at = slot - SPILL_SLOTS;
|
|
554
|
+
Object.defineProperty(home, slotKey(slot), {
|
|
555
|
+
get(this: AsObject) {
|
|
556
|
+
return this.$S[at];
|
|
557
|
+
},
|
|
558
|
+
set(this: AsObject, v: Value) {
|
|
559
|
+
this.$S[at] = v;
|
|
560
|
+
},
|
|
561
|
+
configurable: true,
|
|
562
|
+
});
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
// The names of slot and method properties by id, made once each, for the
|
|
566
|
+
// runtime's dynamic paths; generated code names them itself.
|
|
567
|
+
const slotKeys: string[] = [];
|
|
568
|
+
const methodKeys: string[] = [];
|
|
569
|
+
export const slotKey = (id: number): string => (slotKeys[id] ??= `$${id}`);
|
|
570
|
+
export const methodKey = (id: number): string => (methodKeys[id] ??= `$m${id}`);
|
|
571
|
+
const untypedSetKeys: string[] = [];
|
|
572
|
+
/**
|
|
573
|
+
* Where a native's setter, dispatch id `id`, is kept as an untyped set
|
|
574
|
+
* calls it, its value coerced (installMethod); a setter with none is
|
|
575
|
+
* called as it is.
|
|
576
|
+
*/
|
|
577
|
+
export const untypedSetKey = (id: number): string => (untypedSetKeys[id] ??= `$u${id}`);
|
|
578
|
+
const boundKeys: string[] = [];
|
|
579
|
+
/**
|
|
580
|
+
* Where a method, dispatch id `id`, is kept as calls the compiler bound
|
|
581
|
+
* call it, their arguments coerced and counted already: its entry for
|
|
582
|
+
* them if it has one (a compiled method's `$bound`), else itself.
|
|
583
|
+
*/
|
|
584
|
+
export const boundKey = (id: number): string => (boundKeys[id] ??= `$b${id}`);
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Language runtime that generated code calls into. Only AS2/AS3 semantics
|
|
3
|
+
* live here; playerglobal belongs to @swf2es/player, so this package runs in
|
|
4
|
+
* node next to avmshell for conformance tests.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export * as avm1 from "./avm1/index.js";
|
|
8
|
+
export * as avm2 from "./avm2/index.js";
|