@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,420 @@
|
|
|
1
|
+
// The global functions and ASnative, as Ruffle's
|
|
2
|
+
// (https://github.com/ruffle-rs/ruffle) core/src/avm1/globals.rs and
|
|
3
|
+
// globals/asnative.rs have them: MIT OR Apache-2.0, Copyright (c)
|
|
4
|
+
// 2018-2022 Ruffle LLC and Ruffle contributors. Where adl parts from
|
|
5
|
+
// Ruffle, adl decides (docs/avm1.md, "The global functions").
|
|
6
|
+
//
|
|
7
|
+
// ASnative(category, index) gives a new function of Flash's table of
|
|
8
|
+
// natives each call; ASSetNative and ASSetNativeAccessor set an object's
|
|
9
|
+
// methods and properties from it, a version prefixed to a name hiding it
|
|
10
|
+
// from earlier SWFs.
|
|
11
|
+
|
|
12
|
+
import { parseFloatAvm1 } from "../numbers.js";
|
|
13
|
+
import {
|
|
14
|
+
Avm1Function,
|
|
15
|
+
type Native,
|
|
16
|
+
set,
|
|
17
|
+
VERSION_6,
|
|
18
|
+
VERSION_7,
|
|
19
|
+
VERSION_8,
|
|
20
|
+
VERSION_9,
|
|
21
|
+
VERSION_10,
|
|
22
|
+
} from "../objects.js";
|
|
23
|
+
import type { Realm } from "../realm.js";
|
|
24
|
+
import { stringOf, toNumber, type Value } from "../values.js";
|
|
25
|
+
import { timerFunctions } from "./timers.js";
|
|
26
|
+
|
|
27
|
+
const HEX = "0123456789ABCDEF";
|
|
28
|
+
|
|
29
|
+
// The web's and node's alike, though not ECMAScript's.
|
|
30
|
+
declare const TextEncoder: new () => { encode(s: string): Uint8Array };
|
|
31
|
+
const encoder = new TextEncoder();
|
|
32
|
+
|
|
33
|
+
/** A string's bytes: up to SWF 5 its characters, each a byte; from 6 its UTF-8. */
|
|
34
|
+
function bytesOf(s: string, version: number): ArrayLike<number> {
|
|
35
|
+
if (version >= 6) {
|
|
36
|
+
return encoder.encode(s);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const bytes: number[] = [];
|
|
40
|
+
for (let i = 0; i < s.length; i++) {
|
|
41
|
+
const c = s.charCodeAt(i);
|
|
42
|
+
if (c <= 0xff) {
|
|
43
|
+
bytes.push(c);
|
|
44
|
+
} else {
|
|
45
|
+
bytes.push(...encoder.encode(s[i]));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return bytes;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** escape: every byte but a letter or a digit as %XX. */
|
|
53
|
+
export function escapeAvm1(s: string, version: number): string {
|
|
54
|
+
const bytes = bytesOf(s, version);
|
|
55
|
+
let out = "";
|
|
56
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
57
|
+
const b = bytes[i];
|
|
58
|
+
if ((b >= 0x30 && b <= 0x39) || (b >= 0x41 && b <= 0x5a) || (b >= 0x61 && b <= 0x7a)) {
|
|
59
|
+
out += String.fromCharCode(b);
|
|
60
|
+
} else {
|
|
61
|
+
out += `%${HEX[b >> 4]}${HEX[b & 15]}`;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return out;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const hexValue = (c: number): number =>
|
|
69
|
+
c >= 0x30 && c <= 0x39
|
|
70
|
+
? c - 0x30
|
|
71
|
+
: c >= 0x41 && c <= 0x46
|
|
72
|
+
? c - 0x37
|
|
73
|
+
: c >= 0x61 && c <= 0x66
|
|
74
|
+
? c - 0x57
|
|
75
|
+
: -1;
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* unescape: %XX the byte XX, + a space; a % before what is no hex digit
|
|
79
|
+
* drops that character. The bytes are a SWF 5's string, and from SWF 6
|
|
80
|
+
* read as its strings' UTF-8 is (decodeLenient).
|
|
81
|
+
*/
|
|
82
|
+
export function unescapeAvm1(s: string, version: number): string {
|
|
83
|
+
const bytes = bytesOf(s, version);
|
|
84
|
+
const out: number[] = [];
|
|
85
|
+
let remain = 0;
|
|
86
|
+
let digits = 0;
|
|
87
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
88
|
+
const b = bytes[i];
|
|
89
|
+
if (b === 0x25) {
|
|
90
|
+
remain = 2;
|
|
91
|
+
digits = 0;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (remain > 0) {
|
|
96
|
+
const v = hexValue(b);
|
|
97
|
+
if (v < 0) {
|
|
98
|
+
remain = 0;
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
digits = (digits << 4) | v;
|
|
103
|
+
remain--;
|
|
104
|
+
if (remain === 0) {
|
|
105
|
+
out.push(digits);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
out.push(b === 0x2b ? 0x20 : b);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
if (version < 6) {
|
|
115
|
+
let text = "";
|
|
116
|
+
for (const b of out) {
|
|
117
|
+
text += String.fromCharCode(b);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return text;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
return decodeLenient(out);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/** What ConvertUTF.c subtracts from the sum of a sequence of 1 to 6 bytes. */
|
|
127
|
+
const OFFSETS = [0, 0x3080, 0xe2080, 0x3c82080, 0xfa082080, 0x82082080];
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Bytes read as UTF-8 leniently, as adl reads a SWF 6's strings
|
|
131
|
+
* (codegen's avm1/emit/strings.ts): a lead byte takes as many bytes as its
|
|
132
|
+
* high bits say, continuation bytes or not, summed as Unicode's old
|
|
133
|
+
* ConvertUTF.c sums them; a surrogate or a code point past U+10FFFF is
|
|
134
|
+
* U+FFFD, and a code point of 0, or a sequence cut short, ends the string.
|
|
135
|
+
*/
|
|
136
|
+
function decodeLenient(bytes: ArrayLike<number>): string {
|
|
137
|
+
let out = "";
|
|
138
|
+
let i = 0;
|
|
139
|
+
while (i < bytes.length) {
|
|
140
|
+
const b = bytes[i];
|
|
141
|
+
if (b === 0) {
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
if (b < 0x80) {
|
|
146
|
+
out += String.fromCharCode(b);
|
|
147
|
+
i++;
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
const more = b < 0xc0 ? 0 : b < 0xe0 ? 1 : b < 0xf0 ? 2 : b < 0xf8 ? 3 : b < 0xfc ? 4 : 5;
|
|
152
|
+
if (more >= bytes.length - i) {
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
let c = 0;
|
|
157
|
+
for (let k = 0; k <= more; k++) {
|
|
158
|
+
c = ((c << 6) + bytes[i + k]) >>> 0;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
c = (c - OFFSETS[more]) >>> 0;
|
|
162
|
+
i += more + 1;
|
|
163
|
+
if (c === 0) {
|
|
164
|
+
break;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
out += c > 0x10ffff || (c >= 0xd800 && c <= 0xdfff) ? "�" : String.fromCodePoint(c);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
return out;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const isSign = (c: number) => c === 0x2b || c === 0x2d;
|
|
174
|
+
|
|
175
|
+
/**
|
|
176
|
+
* parseInt, as Ruffle has it and adl agrees: "0x" after a sign is NaN
|
|
177
|
+
* unless the radix reads it, a leading "0x" is hex whatever the radix, a
|
|
178
|
+
* leading 0 octal where every digit after it is, spaces and a sign after
|
|
179
|
+
* the prefix, NaN without a digit.
|
|
180
|
+
*/
|
|
181
|
+
export function parseIntAvm1(
|
|
182
|
+
s: string,
|
|
183
|
+
radixValue: Value,
|
|
184
|
+
hasRadix: boolean,
|
|
185
|
+
version: number,
|
|
186
|
+
): number {
|
|
187
|
+
let radix = 0;
|
|
188
|
+
if (hasRadix) {
|
|
189
|
+
radix = toNumber(radixValue, version) | 0;
|
|
190
|
+
if (radix < 2 || radix > 36) {
|
|
191
|
+
return Number.NaN;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
const signed = s.length > 0 && isSign(s.charCodeAt(0));
|
|
196
|
+
const off = signed ? 1 : 0;
|
|
197
|
+
const zero = s.charCodeAt(off) === 0x30;
|
|
198
|
+
const x = s.charCodeAt(off + 1);
|
|
199
|
+
const hex = zero && (x === 0x78 || x === 0x58);
|
|
200
|
+
let ignoreSign = false;
|
|
201
|
+
let rest = s;
|
|
202
|
+
if (hex) {
|
|
203
|
+
if (signed) {
|
|
204
|
+
if (radix <= 33) {
|
|
205
|
+
return Number.NaN;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
ignoreSign = true;
|
|
209
|
+
} else {
|
|
210
|
+
radix ||= 16;
|
|
211
|
+
rest = s.slice(2);
|
|
212
|
+
}
|
|
213
|
+
} else if (zero && radix === 0 && /^[0-7]*$/.test(s.slice(1))) {
|
|
214
|
+
radix = 8;
|
|
215
|
+
} else {
|
|
216
|
+
radix ||= 10;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
let i = 0;
|
|
220
|
+
while (i < rest.length) {
|
|
221
|
+
const c = rest.charCodeAt(i);
|
|
222
|
+
if (c !== 0x20 && c !== 0x09 && c !== 0x0a && c !== 0x0d) {
|
|
223
|
+
break;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
i++;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
let sign = 1;
|
|
230
|
+
if (i < rest.length && isSign(rest.charCodeAt(i))) {
|
|
231
|
+
if (!ignoreSign && rest.charCodeAt(i) === 0x2d) {
|
|
232
|
+
sign = -1;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
i++;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
let result = 0;
|
|
239
|
+
let empty = true;
|
|
240
|
+
for (; i < rest.length; i++) {
|
|
241
|
+
const c = rest.charCodeAt(i);
|
|
242
|
+
const d =
|
|
243
|
+
c >= 0x30 && c <= 0x39
|
|
244
|
+
? c - 0x30
|
|
245
|
+
: c >= 0x61 && c <= 0x7a
|
|
246
|
+
? c - 0x57
|
|
247
|
+
: c >= 0x41 && c <= 0x5a
|
|
248
|
+
? c - 0x37
|
|
249
|
+
: 99;
|
|
250
|
+
if (d >= radix) {
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
result = result * radix + d;
|
|
255
|
+
empty = false;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
return empty ? Number.NaN : sign * result;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/** The version a name's prefix says, and the name without it: `8max` is max from SWF 8. */
|
|
262
|
+
function versioned(name: string): [string, number] {
|
|
263
|
+
switch (name.charCodeAt(0)) {
|
|
264
|
+
case 0x36:
|
|
265
|
+
return [name.slice(1), VERSION_6];
|
|
266
|
+
case 0x37:
|
|
267
|
+
return [name.slice(1), VERSION_7];
|
|
268
|
+
case 0x38:
|
|
269
|
+
return [name.slice(1), VERSION_8];
|
|
270
|
+
case 0x39:
|
|
271
|
+
return [name.slice(1), VERSION_9];
|
|
272
|
+
case 0x31:
|
|
273
|
+
return name.charCodeAt(1) === 0x30 ? [name.slice(2), VERSION_10] : [name.slice(1), 0];
|
|
274
|
+
default:
|
|
275
|
+
return [name, 0];
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* The categories Flash Player has a table of natives for, as ranges: adl
|
|
281
|
+
* gives a function for any index of these, and undefined for any other.
|
|
282
|
+
* Those of the classes swf2es has no natives of yet give functions of none.
|
|
283
|
+
*/
|
|
284
|
+
const CATEGORIES = [
|
|
285
|
+
[1, 5],
|
|
286
|
+
[9, 9],
|
|
287
|
+
[11, 15],
|
|
288
|
+
[100, 107],
|
|
289
|
+
[110, 113],
|
|
290
|
+
[200, 200],
|
|
291
|
+
[250, 253],
|
|
292
|
+
[300, 301],
|
|
293
|
+
[400, 400],
|
|
294
|
+
[500, 500],
|
|
295
|
+
[600, 600],
|
|
296
|
+
[666, 667],
|
|
297
|
+
[700, 700],
|
|
298
|
+
[800, 800],
|
|
299
|
+
[900, 901],
|
|
300
|
+
[1021, 1021],
|
|
301
|
+
[1066, 1067],
|
|
302
|
+
[1100, 1103],
|
|
303
|
+
[1105, 1112],
|
|
304
|
+
[1999, 1999],
|
|
305
|
+
[2100, 2102],
|
|
306
|
+
[2104, 2104],
|
|
307
|
+
[2106, 2108],
|
|
308
|
+
[2150, 2151],
|
|
309
|
+
[2198, 2198],
|
|
310
|
+
[2200, 2201],
|
|
311
|
+
[2204, 2205],
|
|
312
|
+
[2341, 2341],
|
|
313
|
+
[2401, 2401],
|
|
314
|
+
];
|
|
315
|
+
|
|
316
|
+
const isCategory = (category: number) =>
|
|
317
|
+
CATEGORIES.some(([first, last]) => category >= first && category <= last);
|
|
318
|
+
|
|
319
|
+
/** ASnative(category, index): a new function of the table's native, undefined for no table. */
|
|
320
|
+
export function asnative(realm: Realm, category: number, index: number): Value {
|
|
321
|
+
const table = realm.natives.get(category);
|
|
322
|
+
if (table === undefined) {
|
|
323
|
+
return isCategory(category) ? realm.method(none) : undefined;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
// An index past a u16 is no native's.
|
|
327
|
+
// Any index of a table is a function, one of none giving undefined.
|
|
328
|
+
return realm.method(table(index > 0xffff ? 0xffff : index) ?? none);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/** ASSetNative (`accessor` false) and ASSetNativeAccessor. */
|
|
332
|
+
function setNative(realm: Realm, args: Value[], version: number, accessor: boolean): Value {
|
|
333
|
+
if (args.length < 3) {
|
|
334
|
+
return undefined;
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
const object = realm.box(args[0], version);
|
|
338
|
+
const major = toNumber(args[1], version) | 0;
|
|
339
|
+
const names = stringOf(args[2], version);
|
|
340
|
+
let minor = args.length > 3 ? toNumber(args[3], version) | 0 : 0;
|
|
341
|
+
for (const prefixed of names.split(",")) {
|
|
342
|
+
const [name, flags] = versioned(prefixed);
|
|
343
|
+
if (!accessor) {
|
|
344
|
+
const f = asnative(realm, major, minor >>> 0);
|
|
345
|
+
minor++;
|
|
346
|
+
if (name !== "") {
|
|
347
|
+
const had = object.own(name, version) !== undefined;
|
|
348
|
+
set(object, name, f, version);
|
|
349
|
+
const p = object.own(name, version);
|
|
350
|
+
if (!had && p !== undefined) {
|
|
351
|
+
p.flags |= flags;
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
const getter = asnative(realm, major, minor >>> 0);
|
|
359
|
+
const setter = asnative(realm, major, (minor + 1) >>> 0);
|
|
360
|
+
minor += 2;
|
|
361
|
+
if (name !== "" && getter instanceof Avm1Function) {
|
|
362
|
+
const p = object.own(name, version) ?? object.add(name, undefined, 0);
|
|
363
|
+
p.get = getter;
|
|
364
|
+
p.set = setter instanceof Avm1Function ? setter : null;
|
|
365
|
+
p.flags |= flags;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
return undefined;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/** The global functions, defined on `_global` in Flash's order by `define`. */
|
|
373
|
+
export function globalFunctions(realm: Realm, define: (name: string, native: Native) => void) {
|
|
374
|
+
const escapeFn: Native = (_, args, version) =>
|
|
375
|
+
args.length > 0 ? escapeAvm1(stringOf(args[0], version), version) : undefined;
|
|
376
|
+
const unescapeFn: Native = (_, args, version) =>
|
|
377
|
+
args.length > 0 ? unescapeAvm1(stringOf(args[0], version), version) : undefined;
|
|
378
|
+
const parseIntFn: Native = (_, args, version) =>
|
|
379
|
+
args.length > 0
|
|
380
|
+
? parseIntAvm1(stringOf(args[0], version), args[1], args.length > 1, version)
|
|
381
|
+
: undefined;
|
|
382
|
+
const parseFloatFn: Native = (_, args, version) =>
|
|
383
|
+
args.length > 0 ? parseFloatAvm1(stringOf(args[0], version), false) : undefined;
|
|
384
|
+
// _global.trace: undefined is "" up to SWF 6, as any string conversion has it.
|
|
385
|
+
// Flash's authoring tool shows it, where Flash Player's log and adl's do
|
|
386
|
+
// not; the log is for debugging, so it writes, as Ruffle's does.
|
|
387
|
+
const traceFn: Native = (_, args, version) => {
|
|
388
|
+
realm.current?.host.trace(stringOf(args.length > 0 ? args[0] : undefined, version));
|
|
389
|
+
return undefined;
|
|
390
|
+
};
|
|
391
|
+
const setNativeFn: Native = (_, args, version) => setNative(realm, args, version, false);
|
|
392
|
+
const setAccessorFn: Native = (_, args, version) => setNative(realm, args, version, true);
|
|
393
|
+
|
|
394
|
+
realm.natives.set(
|
|
395
|
+
100,
|
|
396
|
+
(i) => [escapeFn, unescapeFn, parseIntFn, parseFloatFn, traceFn][i] ?? none,
|
|
397
|
+
);
|
|
398
|
+
realm.natives.set(4, (i) => [setNativeFn, setAccessorFn][i] ?? none);
|
|
399
|
+
|
|
400
|
+
define("ASSetNative", setNativeFn);
|
|
401
|
+
define("ASSetNativeAccessor", setAccessorFn);
|
|
402
|
+
define("escape", escapeFn);
|
|
403
|
+
define("unescape", unescapeFn);
|
|
404
|
+
define("parseInt", parseIntFn);
|
|
405
|
+
define("parseFloat", parseFloatFn);
|
|
406
|
+
define("trace", traceFn);
|
|
407
|
+
define("updateAfterEvent", () => undefined);
|
|
408
|
+
define("isNaN", (_, args, version) =>
|
|
409
|
+
args.length > 0 ? Number.isNaN(toNumber(args[0], version)) : true,
|
|
410
|
+
);
|
|
411
|
+
define("isFinite", (_, args, version) =>
|
|
412
|
+
args.length > 0 ? Number.isFinite(toNumber(args[0], version)) : false,
|
|
413
|
+
);
|
|
414
|
+
for (const [name, native] of timerFunctions(realm)) {
|
|
415
|
+
define(name, native);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/** A table's native for an index it has none at: undefined. */
|
|
420
|
+
const none: Native = () => undefined;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
// Math, as Ruffle's (https://github.com/ruffle-rs/ruffle)
|
|
2
|
+
// core/src/avm1/globals/math.rs has it: MIT OR Apache-2.0, Copyright (c)
|
|
3
|
+
// 2018-2022 Ruffle LLC and Ruffle contributors. Where adl parts from
|
|
4
|
+
// Ruffle, adl decides (docs/avm1.md, "Number, Boolean and Math").
|
|
5
|
+
//
|
|
6
|
+
// Each method is ASnative(200, i), which converts its first two arguments
|
|
7
|
+
// whether it uses them or not, as their valueOf can tell; a SWF up to 6
|
|
8
|
+
// gets NaN from a method given fewer arguments than it takes.
|
|
9
|
+
|
|
10
|
+
import { Avm1Object, DONT_DELETE, DONT_ENUM, type Native, READ_ONLY } from "../objects.js";
|
|
11
|
+
import type { Realm } from "../realm.js";
|
|
12
|
+
import { toNumber } from "../values.js";
|
|
13
|
+
|
|
14
|
+
/** The methods, in the order of their ASnative indices. */
|
|
15
|
+
const MATH_METHODS = [
|
|
16
|
+
"abs",
|
|
17
|
+
"min",
|
|
18
|
+
"max",
|
|
19
|
+
"sin",
|
|
20
|
+
"cos",
|
|
21
|
+
"atan2",
|
|
22
|
+
"tan",
|
|
23
|
+
"exp",
|
|
24
|
+
"log",
|
|
25
|
+
"sqrt",
|
|
26
|
+
"round",
|
|
27
|
+
"random",
|
|
28
|
+
"floor",
|
|
29
|
+
"ceil",
|
|
30
|
+
"atan",
|
|
31
|
+
"asin",
|
|
32
|
+
"acos",
|
|
33
|
+
"pow",
|
|
34
|
+
] as const;
|
|
35
|
+
|
|
36
|
+
const MIN = 1;
|
|
37
|
+
const MAX = 2;
|
|
38
|
+
const ATAN2 = 5;
|
|
39
|
+
const RANDOM = 11;
|
|
40
|
+
const POW = 17;
|
|
41
|
+
|
|
42
|
+
/** A random number from 0 to 1, of the 2^31 Flash's generator gives. */
|
|
43
|
+
const random = () => Math.floor(Math.random() * 0x80000000) / 0x80000000;
|
|
44
|
+
|
|
45
|
+
/** Whether a SWF up to 6 runs method `index` with `count` arguments, `x` the first. */
|
|
46
|
+
function enough(index: number, count: number, x: number): boolean {
|
|
47
|
+
switch (index) {
|
|
48
|
+
case RANDOM:
|
|
49
|
+
return true;
|
|
50
|
+
case MIN:
|
|
51
|
+
case MAX:
|
|
52
|
+
return count !== 1;
|
|
53
|
+
case POW:
|
|
54
|
+
return count > 1 || (count === 1 && x === 1);
|
|
55
|
+
case ATAN2:
|
|
56
|
+
return count > 1;
|
|
57
|
+
default:
|
|
58
|
+
return count > 0;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* C's pow, as Flash Player's is (the corpus's math tests): 1 to any power
|
|
64
|
+
* and -1 to an infinite one are 1, where JavaScript's are NaN. adl's, AIR's
|
|
65
|
+
* under Wine, is JavaScript's there, and off it elsewhere (2^0.5's last
|
|
66
|
+
* bit, 1.0000001^1e9 from the ninth digit): JavaScript's precision stays.
|
|
67
|
+
*/
|
|
68
|
+
function pow(x: number, y: number): number {
|
|
69
|
+
if (x === 1 || (x === -1 && (y === Number.POSITIVE_INFINITY || y === Number.NEGATIVE_INFINITY))) {
|
|
70
|
+
return 1;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return x ** y;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function compute(index: number, x: number, y: number, count: number): number {
|
|
77
|
+
switch (index) {
|
|
78
|
+
case 0:
|
|
79
|
+
return Math.abs(x);
|
|
80
|
+
case MIN:
|
|
81
|
+
return count === 0 ? Number.POSITIVE_INFINITY : Math.min(x, y);
|
|
82
|
+
case MAX:
|
|
83
|
+
return count === 0 ? Number.NEGATIVE_INFINITY : Math.max(x, y);
|
|
84
|
+
case 3:
|
|
85
|
+
return Math.sin(x);
|
|
86
|
+
case 4:
|
|
87
|
+
return Math.cos(x);
|
|
88
|
+
case ATAN2:
|
|
89
|
+
return Math.atan2(x, y);
|
|
90
|
+
case 6:
|
|
91
|
+
return Math.tan(x);
|
|
92
|
+
case 7:
|
|
93
|
+
return Math.exp(x);
|
|
94
|
+
case 8:
|
|
95
|
+
return Math.log(x);
|
|
96
|
+
case 9:
|
|
97
|
+
return Math.sqrt(x);
|
|
98
|
+
// Flash rounds a half up, towards infinity.
|
|
99
|
+
case 10:
|
|
100
|
+
return Math.floor(x + 0.5);
|
|
101
|
+
case RANDOM:
|
|
102
|
+
return random();
|
|
103
|
+
case 12:
|
|
104
|
+
return Math.floor(x);
|
|
105
|
+
case 13:
|
|
106
|
+
return Math.ceil(x);
|
|
107
|
+
case 14:
|
|
108
|
+
return Math.atan(x);
|
|
109
|
+
case 15:
|
|
110
|
+
return Math.asin(x);
|
|
111
|
+
case 16:
|
|
112
|
+
return Math.acos(x);
|
|
113
|
+
case POW:
|
|
114
|
+
return pow(x, y);
|
|
115
|
+
default:
|
|
116
|
+
return Number.NaN;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/** ASnative(200, index): a Math method, NaN for an index of none. */
|
|
121
|
+
export function mathNative(index: number): Native {
|
|
122
|
+
return (_, args, version) => {
|
|
123
|
+
const x = toNumber(args.length > 0 ? args[0] : undefined, version);
|
|
124
|
+
const y = toNumber(args.length > 1 ? args[1] : undefined, version);
|
|
125
|
+
if (version <= 6 && !enough(index, args.length, x)) {
|
|
126
|
+
return Number.NaN;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
return compute(index, x, y, args.length);
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/** The Math object: `constructor` and `__proto__` as an object's, its constants, then its methods. */
|
|
134
|
+
export function mathObject(realm: Realm): Avm1Object {
|
|
135
|
+
const math = new Avm1Object();
|
|
136
|
+
math.define("constructor", realm.Object, DONT_ENUM | DONT_DELETE);
|
|
137
|
+
math.define("__proto__", realm.objectProto, DONT_ENUM | DONT_DELETE);
|
|
138
|
+
const flags = DONT_ENUM | DONT_DELETE | READ_ONLY;
|
|
139
|
+
math.define("SQRT2", Math.SQRT2, flags);
|
|
140
|
+
math.define("SQRT1_2", Math.SQRT1_2, flags);
|
|
141
|
+
math.define("PI", Math.PI, flags);
|
|
142
|
+
math.define("LOG2E", Math.LOG2E, flags);
|
|
143
|
+
math.define("LOG10E", Math.LOG10E, flags);
|
|
144
|
+
math.define("LN2", Math.LN2, flags);
|
|
145
|
+
math.define("LN10", Math.LN10, flags);
|
|
146
|
+
math.define("E", Math.E, flags);
|
|
147
|
+
for (let i = 0; i < MATH_METHODS.length; i++) {
|
|
148
|
+
math.define(MATH_METHODS[i], realm.method(mathNative(i)), flags);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return math;
|
|
152
|
+
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
// Number and Boolean, as Ruffle's (https://github.com/ruffle-rs/ruffle)
|
|
2
|
+
// core/src/avm1/globals/number.rs and boolean.rs have them: MIT OR
|
|
3
|
+
// Apache-2.0, Copyright (c) 2018-2022 Ruffle LLC and Ruffle contributors.
|
|
4
|
+
// Where adl parts from Ruffle, adl decides (docs/avm1.md, "Number, Boolean
|
|
5
|
+
// and Math").
|
|
6
|
+
//
|
|
7
|
+
// Their methods take `this` unboxed, and give undefined for anything but
|
|
8
|
+
// their own kind of value, a primitive or its object.
|
|
9
|
+
|
|
10
|
+
import { numberToString } from "../numbers.js";
|
|
11
|
+
import { Avm1Object, DONT_DELETE, DONT_ENUM, type RawNative, READ_ONLY } from "../objects.js";
|
|
12
|
+
import { clampInt } from "../operators.js";
|
|
13
|
+
import type { Class, Realm } from "../realm.js";
|
|
14
|
+
import { toBoolean, toNumber, type Value } from "../values.js";
|
|
15
|
+
|
|
16
|
+
/** `this` as a Number's number, undefined for anything else. */
|
|
17
|
+
const numberOf = (self: Value): number | undefined =>
|
|
18
|
+
typeof self === "number"
|
|
19
|
+
? self
|
|
20
|
+
: self instanceof Avm1Object && typeof self.primitive === "number"
|
|
21
|
+
? self.primitive
|
|
22
|
+
: undefined;
|
|
23
|
+
|
|
24
|
+
/** `this` as a Boolean's boolean, undefined for anything else. */
|
|
25
|
+
const booleanOf = (self: Value): boolean | undefined =>
|
|
26
|
+
typeof self === "boolean"
|
|
27
|
+
? self
|
|
28
|
+
: self instanceof Avm1Object && typeof self.primitive === "boolean"
|
|
29
|
+
? self.primitive
|
|
30
|
+
: undefined;
|
|
31
|
+
|
|
32
|
+
/** A double cast to an int as Rust's `as` casts it: saturated, NaN 0. */
|
|
33
|
+
const saturated = (n: number): number =>
|
|
34
|
+
Number.isNaN(n) ? 0 : Math.trunc(Math.max(-2147483648, Math.min(2147483647, n)));
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* `n` in base `radix`, as Flash writes it: the number cast to an int, so
|
|
38
|
+
* that a fraction is cut, and NaN, the infinities and anything out of range
|
|
39
|
+
* are -2^31, whose digits Flash writes as the remainders it takes, each
|
|
40
|
+
* negative: `(1e20).toString(16)` is "-(0000000".
|
|
41
|
+
*/
|
|
42
|
+
export function toRadix(n: number, radix: number): string {
|
|
43
|
+
let v = clampInt(n);
|
|
44
|
+
if (v === 0) {
|
|
45
|
+
return "0";
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const negative = v < 0;
|
|
49
|
+
if (negative) {
|
|
50
|
+
v = -v | 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
let digits = "";
|
|
54
|
+
while (v !== 0) {
|
|
55
|
+
const d = v % radix;
|
|
56
|
+
v = Math.trunc(v / radix);
|
|
57
|
+
digits = String.fromCharCode(d < 10 ? 0x30 + d : 0x61 + d - 10) + digits;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return negative ? `-${digits}` : digits;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export function numberClass(realm: Realm): Class {
|
|
64
|
+
const proto = new Avm1Object();
|
|
65
|
+
const constr = realm.classOf(
|
|
66
|
+
proto,
|
|
67
|
+
(self, args, version) => {
|
|
68
|
+
self.primitive = args.length > 0 ? toNumber(args[0], version) : 0;
|
|
69
|
+
return self;
|
|
70
|
+
},
|
|
71
|
+
(_, args, version) => (args.length > 0 ? toNumber(args[0], version) : 0),
|
|
72
|
+
// Read-only, as Object's is (adl), unlike Boolean's and String's.
|
|
73
|
+
READ_ONLY,
|
|
74
|
+
);
|
|
75
|
+
proto.define("__proto__", realm.objectProto, DONT_ENUM | DONT_DELETE);
|
|
76
|
+
|
|
77
|
+
const constant = DONT_ENUM | DONT_DELETE | READ_ONLY;
|
|
78
|
+
constr.define("NaN", Number.NaN, constant);
|
|
79
|
+
constr.define("POSITIVE_INFINITY", Number.POSITIVE_INFINITY, constant);
|
|
80
|
+
constr.define("NEGATIVE_INFINITY", Number.NEGATIVE_INFINITY, constant);
|
|
81
|
+
constr.define("MIN_VALUE", Number.MIN_VALUE, constant);
|
|
82
|
+
constr.define("MAX_VALUE", Number.MAX_VALUE, constant);
|
|
83
|
+
|
|
84
|
+
const define = (name: string, native: RawNative) =>
|
|
85
|
+
proto.define(name, realm.rawMethod(native), DONT_ENUM | DONT_DELETE);
|
|
86
|
+
define("valueOf", (self) => numberOf(self));
|
|
87
|
+
define("toString", (self, args, version) => {
|
|
88
|
+
const n = numberOf(self);
|
|
89
|
+
if (n === undefined) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const radix = args.length > 0 ? saturated(toNumber(args[0], version)) : 10;
|
|
94
|
+
return radix < 2 || radix > 36 || radix === 10 ? numberToString(n) : toRadix(n, radix);
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
return { constr, proto };
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export function booleanClass(realm: Realm): Class {
|
|
101
|
+
const proto = new Avm1Object();
|
|
102
|
+
const constr = realm.classOf(
|
|
103
|
+
proto,
|
|
104
|
+
(self, args, version) => {
|
|
105
|
+
self.primitive = args.length > 0 && toBoolean(args[0], version);
|
|
106
|
+
return self;
|
|
107
|
+
},
|
|
108
|
+
// Boolean() of nothing is undefined.
|
|
109
|
+
(_, args, version) => (args.length > 0 ? toBoolean(args[0], version) : undefined),
|
|
110
|
+
);
|
|
111
|
+
proto.define("__proto__", realm.objectProto, DONT_ENUM | DONT_DELETE);
|
|
112
|
+
|
|
113
|
+
const define = (name: string, native: RawNative) =>
|
|
114
|
+
proto.define(name, realm.rawMethod(native), DONT_ENUM | DONT_DELETE);
|
|
115
|
+
define("valueOf", (self) => booleanOf(self));
|
|
116
|
+
define("toString", (self) => {
|
|
117
|
+
const b = booleanOf(self);
|
|
118
|
+
return b === undefined ? undefined : String(b);
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
return { constr, proto };
|
|
122
|
+
}
|