@swf2es/runtime 0.0.0-stage → 0.1.1
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-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/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,391 @@
|
|
|
1
|
+
// Array: its natives, and its instances' element storage.
|
|
2
|
+
import { FloatValue } from "../float.js";
|
|
3
|
+
import { SEALED_ELEMENTS } from "../runtime.js";
|
|
4
|
+
import { AS3, eachElement, elements, getElement, isObject, LENGTH, lengthOf, plain, withStorage, } from "./define.js";
|
|
5
|
+
import { sort, sortOn } from "./sort.js";
|
|
6
|
+
/**
|
|
7
|
+
* Whether `o` is a sealed Array subclass's instance, which has no elements:
|
|
8
|
+
* one added fails as a sealed object's property does, ReferenceError 1056.
|
|
9
|
+
*/
|
|
10
|
+
function sealed(rt, o, adding) {
|
|
11
|
+
if (o.$a !== SEALED_ELEMENTS) {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
if (adding > 0) {
|
|
15
|
+
throw rt.error("ReferenceError", 1056, "0", o.$traits.name);
|
|
16
|
+
}
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
/** As ArrayClass::toArray: the elements of an Array or of a subclass's instance, else null. */
|
|
20
|
+
function arrayElements(rt, o) {
|
|
21
|
+
if (!isObject(o) || o.$a === undefined) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
return rt.traitsOf(o).isSubtypeOf(rt.builtinClass("Array").$it) ? o.$a : null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The elements of an Array whose length, as the natives that walk to
|
|
28
|
+
* getLengthProperty read it, is their count: else null, for the generic
|
|
29
|
+
* path, as for a subclass that overrides its length getter.
|
|
30
|
+
*/
|
|
31
|
+
function arrayElementsOf(rt, o, length) {
|
|
32
|
+
const a = arrayElements(rt, o);
|
|
33
|
+
return a !== null && a.length === length ? a : null;
|
|
34
|
+
}
|
|
35
|
+
/** As AvmCore::toInteger: a number, truncated, NaN as 0. */
|
|
36
|
+
function toInteger(rt, v) {
|
|
37
|
+
const n = rt.toNumber(v);
|
|
38
|
+
return Number.isNaN(n) ? 0 : Math.trunc(n);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* What Array's generic functions see of an object that is not an Array, a
|
|
42
|
+
* Vector or a ByteArray among them, or of an Array whose length getter is
|
|
43
|
+
* overridden: its length property, as a uint, and its elements.
|
|
44
|
+
*/
|
|
45
|
+
class Generic {
|
|
46
|
+
rt;
|
|
47
|
+
o;
|
|
48
|
+
constructor(rt, o) {
|
|
49
|
+
this.rt = rt;
|
|
50
|
+
this.o = o;
|
|
51
|
+
}
|
|
52
|
+
get length() {
|
|
53
|
+
return this.rt.toUint(this.rt.getProperty(this.o, LENGTH));
|
|
54
|
+
}
|
|
55
|
+
set length(n) {
|
|
56
|
+
this.rt.setProperty(this.o, LENGTH, n);
|
|
57
|
+
}
|
|
58
|
+
get(i) {
|
|
59
|
+
return getElement(this.rt, this.o, i);
|
|
60
|
+
}
|
|
61
|
+
set(i, v) {
|
|
62
|
+
this.rt.setProperty(this.o, this.rt.publicName(i), v);
|
|
63
|
+
}
|
|
64
|
+
delete(i) {
|
|
65
|
+
this.rt.deleteProperty(this.o, this.rt.publicName(i));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/** As NativeObjectHelpers::ClampIndex: a relative index, from the end if negative, within the length. */
|
|
69
|
+
function clampIndex(i, length) {
|
|
70
|
+
if (i < 0) {
|
|
71
|
+
return i + length < 0 ? 0 : Math.trunc(i + length);
|
|
72
|
+
}
|
|
73
|
+
if (i > length) {
|
|
74
|
+
return length;
|
|
75
|
+
}
|
|
76
|
+
return Number.isNaN(i) ? 0 : Math.trunc(i);
|
|
77
|
+
}
|
|
78
|
+
/** As ClampIndexInt, whose length is an int: one past 2^31 is negative. */
|
|
79
|
+
function clampIndexInt(i, length) {
|
|
80
|
+
const signed = length | 0;
|
|
81
|
+
if (i < 0) {
|
|
82
|
+
return i + signed < 0 ? 0 : (i + length) >>> 0;
|
|
83
|
+
}
|
|
84
|
+
return i > signed ? length : i;
|
|
85
|
+
}
|
|
86
|
+
/** As ArrayClass::generic_pop for what is not an Array. */
|
|
87
|
+
function genericPop(g) {
|
|
88
|
+
const length = g.length;
|
|
89
|
+
if (length === 0) {
|
|
90
|
+
g.length = 0;
|
|
91
|
+
return undefined;
|
|
92
|
+
}
|
|
93
|
+
const last = g.get(length - 1);
|
|
94
|
+
g.delete(length - 1);
|
|
95
|
+
g.length = length - 1;
|
|
96
|
+
return last;
|
|
97
|
+
}
|
|
98
|
+
/** As generic_shift: every element moved down one. */
|
|
99
|
+
function genericShift(g) {
|
|
100
|
+
const length = g.length;
|
|
101
|
+
if (length === 0) {
|
|
102
|
+
g.length = 0;
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
const first = g.get(0);
|
|
106
|
+
for (let i = 0; i < length - 1; i++) {
|
|
107
|
+
g.set(i, g.get(i + 1));
|
|
108
|
+
}
|
|
109
|
+
g.delete(length - 1);
|
|
110
|
+
g.length = length - 1;
|
|
111
|
+
return first;
|
|
112
|
+
}
|
|
113
|
+
/** As generic_reverse: from both ends inward. */
|
|
114
|
+
function genericReverse(g) {
|
|
115
|
+
let j = g.length;
|
|
116
|
+
let i = 0;
|
|
117
|
+
if (j) {
|
|
118
|
+
j--;
|
|
119
|
+
}
|
|
120
|
+
while (i < j) {
|
|
121
|
+
const front = g.get(i);
|
|
122
|
+
const back = g.get(j);
|
|
123
|
+
g.set(i++, back);
|
|
124
|
+
g.set(j--, front);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** As generic_splice: where to splice, and how many to delete, within the length. */
|
|
128
|
+
function spliceRange(rt, length, args) {
|
|
129
|
+
const at = clampIndex(toInteger(rt, args[0]), length);
|
|
130
|
+
const wanted = args.length > 1 ? toInteger(rt, args[1]) : length - at;
|
|
131
|
+
return [at, Math.min(wanted < 0 ? 0 : Math.trunc(wanted), length - at)];
|
|
132
|
+
}
|
|
133
|
+
/** As generic_splice: the deleted elements out, the rest moved, the inserted set, then the length. */
|
|
134
|
+
function genericSplice(rt, g, length, at, deleted, args) {
|
|
135
|
+
const end = at + deleted;
|
|
136
|
+
const inserted = args.length > 2 ? args.length - 2 : 0;
|
|
137
|
+
const shift = inserted - deleted;
|
|
138
|
+
const out = [];
|
|
139
|
+
for (let i = 0; i < deleted; i++) {
|
|
140
|
+
out.push(g.get(i + at));
|
|
141
|
+
}
|
|
142
|
+
if (shift < 0) {
|
|
143
|
+
for (let i = end; i < length; i++) {
|
|
144
|
+
g.set(i + shift, g.get(i));
|
|
145
|
+
}
|
|
146
|
+
for (let i = length + shift; i < length; i++) {
|
|
147
|
+
g.delete(i);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
for (let i = length; i > end;) {
|
|
152
|
+
i--;
|
|
153
|
+
g.set(i + shift, g.get(i));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
for (let i = 0; i < inserted; i++) {
|
|
157
|
+
g.set(at + i, args[i + 2]);
|
|
158
|
+
}
|
|
159
|
+
g.length = length + shift;
|
|
160
|
+
return rt.array(out);
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* As array_concat reads an Array: its elements up to its length as
|
|
164
|
+
* getLengthProperty reads it; its own storage, not to be changed, when
|
|
165
|
+
* that is their count.
|
|
166
|
+
*/
|
|
167
|
+
function concatElements(rt, o) {
|
|
168
|
+
const length = lengthOf(rt, o);
|
|
169
|
+
const a = arrayElementsOf(rt, o, length);
|
|
170
|
+
if (a) {
|
|
171
|
+
return a;
|
|
172
|
+
}
|
|
173
|
+
const out = [];
|
|
174
|
+
for (let i = 0; i < length; i++) {
|
|
175
|
+
out.push(getElement(rt, o, i));
|
|
176
|
+
}
|
|
177
|
+
return out;
|
|
178
|
+
}
|
|
179
|
+
export const arrayNatives = {
|
|
180
|
+
// Array
|
|
181
|
+
"Array#get:length": plain(function () {
|
|
182
|
+
return this.$a.length;
|
|
183
|
+
}),
|
|
184
|
+
"Array#set:length": (rt) => function (n) {
|
|
185
|
+
if (!sealed(rt, this, 0)) {
|
|
186
|
+
this.$a.length = rt.toUint(n);
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
[`Array#${AS3}::push`]: (rt) => function (...args) {
|
|
190
|
+
return sealed(rt, this, args.length) ? 0 : this.$a.push(...args);
|
|
191
|
+
},
|
|
192
|
+
[`Array#${AS3}::pop`]: (rt) => function () {
|
|
193
|
+
return sealed(rt, this, 0) ? undefined : this.$a.pop();
|
|
194
|
+
},
|
|
195
|
+
[`Array#${AS3}::unshift`]: (rt) => function (...args) {
|
|
196
|
+
return sealed(rt, this, args.length) ? 0 : this.$a.unshift(...args);
|
|
197
|
+
},
|
|
198
|
+
[`Array#${AS3}::insertAt`]: (rt) => function (i, v) {
|
|
199
|
+
if (!sealed(rt, this, 1)) {
|
|
200
|
+
this.$a.splice(rt.toInt(i), 0, v);
|
|
201
|
+
}
|
|
202
|
+
},
|
|
203
|
+
[`Array#${AS3}::removeAt`]: (rt) => function (i) {
|
|
204
|
+
return sealed(rt, this, 0) ? undefined : this.$a.splice(rt.toInt(i), 1)[0];
|
|
205
|
+
},
|
|
206
|
+
"Array.Array::_pop": (rt) => (o) => {
|
|
207
|
+
if (!arrayElements(rt, o)) {
|
|
208
|
+
return isObject(o) ? genericPop(new Generic(rt, o)) : undefined;
|
|
209
|
+
}
|
|
210
|
+
return sealed(rt, o, 0) ? undefined : o.$a.pop();
|
|
211
|
+
},
|
|
212
|
+
"Array.Array::_shift": (rt) => (o) => {
|
|
213
|
+
if (!arrayElements(rt, o)) {
|
|
214
|
+
return isObject(o) ? genericShift(new Generic(rt, o)) : undefined;
|
|
215
|
+
}
|
|
216
|
+
return sealed(rt, o, 0) ? undefined : o.$a.shift();
|
|
217
|
+
},
|
|
218
|
+
"Array.Array::_reverse": (rt) => (o) => {
|
|
219
|
+
const a = arrayElements(rt, o);
|
|
220
|
+
if (a) {
|
|
221
|
+
a.reverse();
|
|
222
|
+
}
|
|
223
|
+
else if (isObject(o)) {
|
|
224
|
+
genericReverse(new Generic(rt, o));
|
|
225
|
+
}
|
|
226
|
+
return o;
|
|
227
|
+
},
|
|
228
|
+
"Array.Array::_unshift": (rt) => (o, args) => {
|
|
229
|
+
// As generic_unshift: the length after is getLengthProperty's.
|
|
230
|
+
const a = elements(args);
|
|
231
|
+
if (sealed(rt, o, a.length)) {
|
|
232
|
+
return 0;
|
|
233
|
+
}
|
|
234
|
+
o.$a.unshift(...a);
|
|
235
|
+
return lengthOf(rt, o);
|
|
236
|
+
},
|
|
237
|
+
// As generic_concat: what is not an Array is left out as the receiver,
|
|
238
|
+
// and is one element as an argument.
|
|
239
|
+
"Array.Array::_concat": (rt) => (o, args) => {
|
|
240
|
+
const out = arrayElements(rt, o) ? concatElements(rt, o).slice() : [];
|
|
241
|
+
for (const a of elements(args)) {
|
|
242
|
+
if (arrayElements(rt, a)) {
|
|
243
|
+
out.push(...concatElements(rt, a));
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
out.push(a);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
return rt.array(out);
|
|
250
|
+
},
|
|
251
|
+
"Array.Array::_slice": (rt) => (o, start, end) => {
|
|
252
|
+
if (!isObject(o)) {
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
const length = lengthOf(rt, o);
|
|
256
|
+
const a = arrayElementsOf(rt, o, length);
|
|
257
|
+
if (a) {
|
|
258
|
+
return rt.array(a.slice(rt.toNumber(start), rt.toNumber(end)));
|
|
259
|
+
}
|
|
260
|
+
const g = new Generic(rt, o);
|
|
261
|
+
const from = clampIndex(rt.toNumber(start), length);
|
|
262
|
+
const to = Math.max(from, clampIndex(rt.toNumber(end), length));
|
|
263
|
+
const out = [];
|
|
264
|
+
for (let i = from; i < to; i++) {
|
|
265
|
+
out.push(g.get(i));
|
|
266
|
+
}
|
|
267
|
+
return rt.array(out);
|
|
268
|
+
},
|
|
269
|
+
"Array.Array::_splice": (rt) => (o, args) => {
|
|
270
|
+
const a = elements(args);
|
|
271
|
+
if (a.length === 0) {
|
|
272
|
+
return rt.array([]);
|
|
273
|
+
}
|
|
274
|
+
if (!isObject(o)) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
// As generic_splice: the range within the length getLengthProperty
|
|
278
|
+
// reads, spliced in an Array's storage where the storage holds it
|
|
279
|
+
// (ArrayObject::try_splice), else element by element.
|
|
280
|
+
const length = lengthOf(rt, o);
|
|
281
|
+
const storage = arrayElements(rt, o);
|
|
282
|
+
if (storage !== null && sealed(rt, o, a.length - 2)) {
|
|
283
|
+
return rt.array([]);
|
|
284
|
+
}
|
|
285
|
+
const [at, deleted] = spliceRange(rt, length, a);
|
|
286
|
+
if (storage !== null && at + deleted <= storage.length) {
|
|
287
|
+
return rt.array(storage.splice(at, deleted, ...a.slice(2)));
|
|
288
|
+
}
|
|
289
|
+
return genericSplice(rt, new Generic(rt, o), length, at, deleted, a);
|
|
290
|
+
},
|
|
291
|
+
"Array.Array::_indexOf": (rt) => (o, v, from) => {
|
|
292
|
+
if (!isObject(o)) {
|
|
293
|
+
return -1;
|
|
294
|
+
}
|
|
295
|
+
const length = lengthOf(rt, o);
|
|
296
|
+
const a = arrayElementsOf(rt, o, length);
|
|
297
|
+
if (a) {
|
|
298
|
+
const start = rt.toInt(from);
|
|
299
|
+
if (v instanceof FloatValue) {
|
|
300
|
+
for (let i = clampIndexInt(start, a.length); i < a.length; i++) {
|
|
301
|
+
if (rt.strictEquals(a[i], v)) {
|
|
302
|
+
return i;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return -1;
|
|
306
|
+
}
|
|
307
|
+
return a.indexOf(v, start);
|
|
308
|
+
}
|
|
309
|
+
// As generic_indexOf: by strict equality, from the start clamped.
|
|
310
|
+
const g = new Generic(rt, o);
|
|
311
|
+
for (let i = clampIndexInt(rt.toInt(from), length); i < length; i++) {
|
|
312
|
+
if (rt.strictEquals(g.get(i), v)) {
|
|
313
|
+
return i;
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
return -1;
|
|
317
|
+
},
|
|
318
|
+
"Array.Array::_lastIndexOf": (rt) => (o, v, from) => {
|
|
319
|
+
if (!isObject(o)) {
|
|
320
|
+
return -1;
|
|
321
|
+
}
|
|
322
|
+
const length = lengthOf(rt, o);
|
|
323
|
+
const a = arrayElementsOf(rt, o, length);
|
|
324
|
+
if (a) {
|
|
325
|
+
const start = rt.toInt(from);
|
|
326
|
+
if (v instanceof FloatValue) {
|
|
327
|
+
const at = start < 0 ? a.length + start : Math.min(start, a.length - 1);
|
|
328
|
+
for (let i = at; i >= 0; i--) {
|
|
329
|
+
if (rt.strictEquals(a[i], v)) {
|
|
330
|
+
return i;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
return -1;
|
|
334
|
+
}
|
|
335
|
+
return a.lastIndexOf(v, start);
|
|
336
|
+
}
|
|
337
|
+
const g = new Generic(rt, o);
|
|
338
|
+
let start = clampIndexInt(rt.toInt(from), length);
|
|
339
|
+
if (start === length) {
|
|
340
|
+
start--;
|
|
341
|
+
}
|
|
342
|
+
for (let i = start | 0; i >= 0; i--) {
|
|
343
|
+
if (rt.strictEquals(g.get(i), v)) {
|
|
344
|
+
return i;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
return -1;
|
|
348
|
+
},
|
|
349
|
+
"Array.Array::_sort": (rt) => (o, args) => sort(rt, o, elements(args)),
|
|
350
|
+
"Array.Array::_sortOn": (rt) => (o, names, options) => sortOn(rt, o, names, options),
|
|
351
|
+
"Array.Array::_every": (rt) => (o, f, receiver) => eachElement(rt, o, f, receiver, (result) => (result === true ? undefined : false)) ?? true,
|
|
352
|
+
"Array.Array::_some": (rt) => (o, f, receiver) => eachElement(rt, o, f, receiver, (result) => (result === true ? true : undefined)) ?? false,
|
|
353
|
+
"Array.Array::_forEach": (rt) => (o, f, receiver) => {
|
|
354
|
+
eachElement(rt, o, f, receiver, () => undefined);
|
|
355
|
+
},
|
|
356
|
+
"Array.Array::_filter": (rt) => (o, f, receiver) => {
|
|
357
|
+
const out = [];
|
|
358
|
+
eachElement(rt, o, f, receiver, (result, element) => {
|
|
359
|
+
if (result === true) {
|
|
360
|
+
out.push(element);
|
|
361
|
+
}
|
|
362
|
+
});
|
|
363
|
+
return rt.array(out);
|
|
364
|
+
},
|
|
365
|
+
// As generic_map, which alone of them lets a method closure have any receiver.
|
|
366
|
+
"Array.Array::_map": (rt) => (o, f, receiver) => {
|
|
367
|
+
const out = [];
|
|
368
|
+
eachElement(rt, o, f, receiver, (result) => {
|
|
369
|
+
out.push(result);
|
|
370
|
+
}, true);
|
|
371
|
+
return rt.array(out);
|
|
372
|
+
},
|
|
373
|
+
};
|
|
374
|
+
export const arrayHooks = {
|
|
375
|
+
Array: {
|
|
376
|
+
// A subclass that is not dynamic has no elements from SWF 13 (avmplus'
|
|
377
|
+
// bugzilla 654807); before, it keeps them, as here.
|
|
378
|
+
create: (traits, rt) => {
|
|
379
|
+
const o = withStorage(traits);
|
|
380
|
+
if (!traits.dynamic && rt.swfVersion >= 13) {
|
|
381
|
+
o.$a = SEALED_ELEMENTS;
|
|
382
|
+
}
|
|
383
|
+
return o;
|
|
384
|
+
},
|
|
385
|
+
// Array.prototype is an Array, empty.
|
|
386
|
+
prototype: (_rt, cls) => cls.$it.instance(),
|
|
387
|
+
call: (rt, cls, args) => rt.constructClass(cls, args),
|
|
388
|
+
created: (rt, cls) => rt.noteArrayClass(cls),
|
|
389
|
+
},
|
|
390
|
+
};
|
|
391
|
+
//# sourceMappingURL=array.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"array.js","sourceRoot":"","sources":["../../../src/avm2/natives/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
import type { AsObject, Value } from "../descriptors.js";
|
|
2
|
+
import type { IndexHook } from "../hooks.js";
|
|
3
|
+
import type { Runtime } from "../runtime.js";
|
|
4
|
+
import type { Traits } from "../traits.js";
|
|
5
|
+
import { type Natives } from "./define.js";
|
|
6
|
+
/** DomainEnv::GLOBAL_MEMORY_MIN_SIZE: domain memory's least length. */
|
|
7
|
+
export declare const GLOBAL_MEMORY_MIN_SIZE = 1024;
|
|
8
|
+
/**
|
|
9
|
+
* A shareable ByteArray's memory once it has crossed to another worker,
|
|
10
|
+
* which every worker's ByteArray for it uses, as avmplus' ByteArrays share
|
|
11
|
+
* one Buffer: its bytes grow in place, and its length is one for all.
|
|
12
|
+
* Plain data, which a structured clone carries to another thread.
|
|
13
|
+
*/
|
|
14
|
+
export interface SharedBytesMemory {
|
|
15
|
+
/** The same in every worker, by which each VM keeps one ByteArray for it, as avmplus interns it. */
|
|
16
|
+
id: number;
|
|
17
|
+
/** Its words: the length, as a uint32. */
|
|
18
|
+
meta: SharedArrayBuffer;
|
|
19
|
+
/** Its bytes, as long as its capacity: growable, up to the most a ByteArray holds where it can. */
|
|
20
|
+
data: SharedArrayBuffer;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether this thread can share memory with others: SharedArrayBuffer is
|
|
24
|
+
* there, as node always has it, and a browser only for a page that is
|
|
25
|
+
* cross-origin isolated.
|
|
26
|
+
*/
|
|
27
|
+
export declare function canShareMemory(): boolean;
|
|
28
|
+
/** What a page that is not cross-origin isolated gets for sharing `what` with another worker. */
|
|
29
|
+
export declare function notIsolated(what: string): Error;
|
|
30
|
+
/** The capacity of `rt`'s ByteArrays, which avmshell's System counts in its memory. */
|
|
31
|
+
export declare function byteArrayCapacity(rt: Runtime): number;
|
|
32
|
+
/**
|
|
33
|
+
* A ByteArray's state: its buffer, as long as its capacity, and its length
|
|
34
|
+
* and position. A read or write takes its offset first: growing replaces
|
|
35
|
+
* the buffer and its view.
|
|
36
|
+
*
|
|
37
|
+
* A length or position is stored through `>>> 0`, as a uint32: an int32
|
|
38
|
+
* while below 2^31, and a double only from there.
|
|
39
|
+
* JavaScriptCore keeps a number its JIT once made a double a double, and
|
|
40
|
+
* an addition that has seen one makes doubles from then on: a double
|
|
41
|
+
* offset fails the int32 check of a DataView or typed array access, and
|
|
42
|
+
* after enough failures JavaScriptCore calls DataView's methods instead
|
|
43
|
+
* of inlining them, a quarter slower on every read and write. V8 makes
|
|
44
|
+
* small integers of them itself.
|
|
45
|
+
*/
|
|
46
|
+
export declare class Bytes {
|
|
47
|
+
readonly rt: Runtime;
|
|
48
|
+
readonly owner: AsObject;
|
|
49
|
+
buffer: Uint8Array;
|
|
50
|
+
view: DataView<ArrayBufferLike>;
|
|
51
|
+
length: number;
|
|
52
|
+
position: number;
|
|
53
|
+
littleEndian: boolean;
|
|
54
|
+
/** As ByteArray's constructor: ByteArray.defaultObjectEncoding when it is made. */
|
|
55
|
+
objectEncoding: number;
|
|
56
|
+
/** Whether it is the domain memory, which it then tells when its buffer or length changes. */
|
|
57
|
+
subscribed: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Whether `shareable` was set true, which cannot be undone: the
|
|
60
|
+
* ByteArray then crosses to another worker as its memory, not a copy.
|
|
61
|
+
*/
|
|
62
|
+
shareable: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Its memory once it has crossed to another worker (share), which its
|
|
65
|
+
* buffer and view are then over, tracking its length as it grows; null
|
|
66
|
+
* until then, when it is a ByteArray like any other.
|
|
67
|
+
*/
|
|
68
|
+
shared: SharedBytesMemory | null;
|
|
69
|
+
/** The shared memory's words, the length first, and its bytes as words for the atomics. */
|
|
70
|
+
private sharedWords;
|
|
71
|
+
private sharedInts;
|
|
72
|
+
/** Its runtime's capacity count, and its own part of it. */
|
|
73
|
+
private readonly capacity;
|
|
74
|
+
constructor(rt: Runtime, owner: AsObject);
|
|
75
|
+
/** Its buffer replaced by `next`, its runtime's capacity count with it. */
|
|
76
|
+
setBuffer(next: Uint8Array<ArrayBuffer>): void;
|
|
77
|
+
get available(): number;
|
|
78
|
+
/** As Grower::ReallocBackingStore: a new buffer, the old length's bytes copied and the rest zero. */
|
|
79
|
+
private realloc;
|
|
80
|
+
/** As Grower::EnsureWritableCapacity: double, at least `minimum`, and 4096 unless the setter sizes an empty one. */
|
|
81
|
+
private ensure;
|
|
82
|
+
/** As ByteArray::SetLengthCommon. */
|
|
83
|
+
setLength(length: number, fromSetter?: boolean): void;
|
|
84
|
+
/**
|
|
85
|
+
* The length made at least `length`, as a write past the end makes it:
|
|
86
|
+
* shared, by a compare and swap that only ever raises it, so that
|
|
87
|
+
* workers appending at once never lower what another made it.
|
|
88
|
+
*/
|
|
89
|
+
extend(length: number): void;
|
|
90
|
+
/** A shared length raised to `length` unless another worker made it as long. */
|
|
91
|
+
private raise;
|
|
92
|
+
/** As Grower::SetLengthCommon, before the length is set: the capacity for `length`. */
|
|
93
|
+
private reserve;
|
|
94
|
+
/** Tell the domain memory, if this is it, where the bytes are now: a new view only if they moved or their length changed. */
|
|
95
|
+
notify(): void;
|
|
96
|
+
/** As ByteArray::Clear: no buffer at all; shared, every worker's ByteArray for it empty. */
|
|
97
|
+
clear(): void;
|
|
98
|
+
/**
|
|
99
|
+
* Its memory, shared from now on: a growable SharedArrayBuffer its bytes
|
|
100
|
+
* move to once, and that this ByteArray, and every worker's ByteArray for
|
|
101
|
+
* it, uses from then on. Where memory cannot be shared, the error that
|
|
102
|
+
* names cross-origin isolation.
|
|
103
|
+
*/
|
|
104
|
+
share(): SharedBytesMemory;
|
|
105
|
+
/**
|
|
106
|
+
* Use `memory`, shared, as its bytes and length from now on. Its length
|
|
107
|
+
* becomes an accessor of the memory's word on this object alone, so that
|
|
108
|
+
* every read sees another worker's change and every write is seen, and
|
|
109
|
+
* a ByteArray that shares nothing reads a plain field as before.
|
|
110
|
+
*/
|
|
111
|
+
adopt(memory: SharedBytesMemory): void;
|
|
112
|
+
/**
|
|
113
|
+
* A shared memory's capacity made at least `capacity`: it grows in place,
|
|
114
|
+
* which every worker sees, and never shrinks, as another worker may have
|
|
115
|
+
* grown it past what this one asks for since. Nor is what a smaller
|
|
116
|
+
* buffer would drop zeroed: without avmplus' safepoint, another worker
|
|
117
|
+
* may have grown the length again and written there meanwhile, so bytes
|
|
118
|
+
* past a lowered length may come back when it grows again.
|
|
119
|
+
*/
|
|
120
|
+
private reshare;
|
|
121
|
+
/** As ByteArray::CAS, once the index is checked: atomic where the memory is shared. */
|
|
122
|
+
compareAndSwapInt(at: number, expected: number, next: number): number;
|
|
123
|
+
/**
|
|
124
|
+
* As UnprotectedAtomicCompareAndSwapLength: the length set to `next`, as
|
|
125
|
+
* its setter sets it, if it is `expected`; the length before. Shared,
|
|
126
|
+
* the capacity is made first and the length swapped atomically, so that
|
|
127
|
+
* of workers growing it at once one wins.
|
|
128
|
+
*/
|
|
129
|
+
compareAndSwapLength(expected: number, next: number): number;
|
|
130
|
+
/** As requestBytesForShortRead: the offset of `n` bytes to read, or EOFError. */
|
|
131
|
+
shortRead(n: number): number;
|
|
132
|
+
/** As requestBytesForShortWrite: the offset of `n` bytes to write, the length grown to hold them. */
|
|
133
|
+
shortWrite(n: number): number;
|
|
134
|
+
/** As DataInput::CheckEOF. */
|
|
135
|
+
checkEOF(count: number): void;
|
|
136
|
+
/** As ByteArray::Read: `count` bytes from the position. */
|
|
137
|
+
read(count: number): Uint8Array;
|
|
138
|
+
/** As read, but the bytes themselves, not a copy: for a caller that only reads them, at once. */
|
|
139
|
+
readView(count: number): Uint8Array;
|
|
140
|
+
/**
|
|
141
|
+
* As ByteArray::Write: `count` bytes of `source` from `offset`, all of
|
|
142
|
+
* it by default, at the position; the length grows to the position after.
|
|
143
|
+
*/
|
|
144
|
+
write(source: Uint8Array, offset?: number, count?: number): void;
|
|
145
|
+
/** As ByteArray's operator[] for a write: the length grows to hold `index`. */
|
|
146
|
+
setByte(index: number, value: number): void;
|
|
147
|
+
}
|
|
148
|
+
/** How a ByteArray's elements are indexed: its bytes; past its length undefined, and a write grows it. */
|
|
149
|
+
export declare const byteArrayHook: IndexHook & {
|
|
150
|
+
create: (traits: Traits, rt: Runtime) => AsObject;
|
|
151
|
+
};
|
|
152
|
+
/** A ByteArray's state, made the first time a native needs it. */
|
|
153
|
+
export declare function bytesOf(rt: Runtime, o: AsObject): Bytes;
|
|
154
|
+
/**
|
|
155
|
+
* A shareable ByteArray's memory, shared from now on, as it crosses to
|
|
156
|
+
* another worker; where memory cannot be shared, the error that names
|
|
157
|
+
* cross-origin isolation.
|
|
158
|
+
*/
|
|
159
|
+
export declare function shareBytes(rt: Runtime, o: AsObject): SharedBytesMemory;
|
|
160
|
+
/** This VM's one ByteArray for a shared memory, as avmplus interns one for its Buffer: shareable, at position 0. */
|
|
161
|
+
export declare function sharedByteArray(rt: Runtime, memory: SharedBytesMemory): AsObject;
|
|
162
|
+
/** This VM's ByteArray for the shared memory `id`, if it has one. */
|
|
163
|
+
export declare function knownSharedByteArray(rt: Runtime, id: number): AsObject | undefined;
|
|
164
|
+
/**
|
|
165
|
+
* As UnicodeUtils::Utf16ToUtf8: a surrogate pair as four bytes, a lone
|
|
166
|
+
* surrogate as U+FFFD. avmshell's writeUTFBytes loses characters around a
|
|
167
|
+
* lone one instead; this keeps them, and the UTF-8 valid.
|
|
168
|
+
*/
|
|
169
|
+
export declare function utf8(s: string): Uint8Array;
|
|
170
|
+
export declare function fromUtf8(bytes: Uint8Array): string;
|
|
171
|
+
/** ByteArray's natives, by the names the compiler gives them. */
|
|
172
|
+
/** ByteArray's natives, for `rt`: written as a class, each running with the ByteArray object as `this`. */
|
|
173
|
+
export declare function byteArrayNatives(rt: Runtime): Natives;
|
|
174
|
+
/**
|
|
175
|
+
* As DomainEnv::set_globalMemory: the domain memory set to ByteArray `v`, or
|
|
176
|
+
* to the scratch memory for null; a ByteArray shorter than the least length
|
|
177
|
+
* fails. avmshell's Domain and the player's ApplicationDomain both set it.
|
|
178
|
+
*/
|
|
179
|
+
export declare function setDomainMemory(rt: Runtime, v: Value): void;
|
|
180
|
+
//# sourceMappingURL=bytearray.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bytearray.d.ts","sourceRoot":"","sources":["../../../src/avm2/natives/bytearray.ts"],"names":[],"mappings":"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"}
|