@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,335 @@
|
|
|
1
|
+
import { PRIMITIVE } from "./inheritance.js";
|
|
2
|
+
import { Avm1Object } from "./objects.js";
|
|
3
|
+
import { toInt32 } from "./operators.js";
|
|
4
|
+
import { SCOPE_Target, Scope, stoppedAtPrimitive, targetPath } from "./scope.js";
|
|
5
|
+
import { stringOf, toBoolean, toNumber } from "./values.js";
|
|
6
|
+
/** The target, or where SetTarget found none, the root: where GotoFrame2 and a function's `this` go. */
|
|
7
|
+
export function targetOrRoot(cx) {
|
|
8
|
+
if (cx.target !== null) {
|
|
9
|
+
return cx.target;
|
|
10
|
+
}
|
|
11
|
+
const root = cx.host.root?.(cx.base);
|
|
12
|
+
return (root instanceof Avm1Object ? cx.host.clipOf?.(root) : undefined) ?? cx.base;
|
|
13
|
+
}
|
|
14
|
+
/** The target's timeline, where it is a clip. */
|
|
15
|
+
const timelineOf = (cx, target) => target === null ? null : (cx.host.timeline?.(target) ?? null);
|
|
16
|
+
/** `scope` with its timeline's scope, a clip's, now `object`'s, as tellTarget makes it. */
|
|
17
|
+
function retarget(scope, object) {
|
|
18
|
+
if (scope.kind === SCOPE_Target) {
|
|
19
|
+
return new Scope(scope.parent, SCOPE_Target, object, scope.depth);
|
|
20
|
+
}
|
|
21
|
+
return scope.parent === null
|
|
22
|
+
? scope
|
|
23
|
+
: new Scope(retarget(scope.parent, object), scope.kind, scope.object, scope.depth);
|
|
24
|
+
}
|
|
25
|
+
/** The target `target` from here on: names resolve on its clip, or the root's where there is none. */
|
|
26
|
+
function setTargetClip(cx, target) {
|
|
27
|
+
cx.target = target !== null && cx.host.removed?.(target) ? null : target;
|
|
28
|
+
const clip = cx.host.objectOf?.(targetOrRoot(cx));
|
|
29
|
+
if (clip !== undefined) {
|
|
30
|
+
cx.clip = clip;
|
|
31
|
+
cx.scope = retarget(cx.scope, clip);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** The display object a path from `start`'s AVM1 object names, null for none or no display object. */
|
|
35
|
+
export function pathTarget(cx, start, path, version) {
|
|
36
|
+
const from = cx.host.objectOf?.(start);
|
|
37
|
+
if (from === undefined) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const object = targetPath(cx, from, path, true, false, version);
|
|
41
|
+
if (object === null && stoppedAtPrimitive && version >= 5) {
|
|
42
|
+
cx.host.trace(PRIMITIVE);
|
|
43
|
+
}
|
|
44
|
+
return object === null ? null : (cx.host.clipOf?.(object) ?? null);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* SetTarget: the clip `path` names from the code's own clip, that clip
|
|
48
|
+
* for "", none where it names none or the code's clip is gone.
|
|
49
|
+
*/
|
|
50
|
+
export function setTarget(cx, path, version) {
|
|
51
|
+
if (path === "") {
|
|
52
|
+
setTargetClip(cx, cx.base);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const removed = cx.host.removed?.(cx.base) ?? false;
|
|
56
|
+
setTargetClip(cx, removed ? null : pathTarget(cx, cx.base, path, version));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* SetTarget2: as SetTarget of the value as a string, but undefined is the
|
|
60
|
+
* code's own clip up to SWF 6 and none from 7; nothing where that clip is
|
|
61
|
+
* gone.
|
|
62
|
+
*/
|
|
63
|
+
export function setTarget2(cx, value, version) {
|
|
64
|
+
if (cx.host.removed?.(cx.base)) {
|
|
65
|
+
cx.target = null;
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
if (value === undefined) {
|
|
69
|
+
if (version > 6) {
|
|
70
|
+
cx.target = null;
|
|
71
|
+
const clip = cx.host.objectOf?.(cx.base);
|
|
72
|
+
if (clip !== undefined) {
|
|
73
|
+
cx.clip = cx.host.objectOf?.(targetOrRoot(cx)) ?? clip;
|
|
74
|
+
cx.scope = retarget(cx.scope, clip);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
setTargetClip(cx, cx.base);
|
|
79
|
+
}
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
setTarget(cx, stringOf(value, version), version);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* The display object a GetProperty or SetProperty names: a clip's AVM1
|
|
86
|
+
* object itself, else the path it converts to, from `start`; the empty
|
|
87
|
+
* path is `start` where `empty`, else none.
|
|
88
|
+
*/
|
|
89
|
+
function displayOf(cx, start, value, empty, version) {
|
|
90
|
+
if (value instanceof Avm1Object && value.display !== null) {
|
|
91
|
+
return value.display.target;
|
|
92
|
+
}
|
|
93
|
+
const path = stringOf(value, version);
|
|
94
|
+
if (!empty && path === "") {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
return pathTarget(cx, start, path, version);
|
|
98
|
+
}
|
|
99
|
+
/** What GetProperty and SetProperty act on: from the target, or from the code's clip where there is none. */
|
|
100
|
+
const propertyTarget = (cx, path, version) => cx.target !== null
|
|
101
|
+
? displayOf(cx, cx.target, path, true, version)
|
|
102
|
+
: displayOf(cx, cx.base, path, false, version);
|
|
103
|
+
/** A property's index: the number truncated, none for NaN, an infinity or -1 and below. */
|
|
104
|
+
function indexOf(index, version) {
|
|
105
|
+
const n = toNumber(index, version);
|
|
106
|
+
return Number.isFinite(n) && n > -1 ? Math.trunc(n) : -1;
|
|
107
|
+
}
|
|
108
|
+
/** GetProperty: property `index` of the clip `path` names, undefined for none. */
|
|
109
|
+
export function getProperty(cx, index, path, version) {
|
|
110
|
+
const i = indexOf(index, version);
|
|
111
|
+
const target = propertyTarget(cx, path, version);
|
|
112
|
+
if (target === null || i < 0) {
|
|
113
|
+
return undefined;
|
|
114
|
+
}
|
|
115
|
+
return cx.host.objectOf?.(target).display?.property(i, version);
|
|
116
|
+
}
|
|
117
|
+
/** SetProperty: property `index` of the clip `path` names set to `value`. */
|
|
118
|
+
export function setProperty(cx, value, index, path, version) {
|
|
119
|
+
const i = indexOf(index, version);
|
|
120
|
+
const target = propertyTarget(cx, path, version);
|
|
121
|
+
if (target === null) {
|
|
122
|
+
// The value is converted all the same (Ruffle's action_property_coerce).
|
|
123
|
+
coerceFor(i, value, version);
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (i >= 0) {
|
|
127
|
+
cx.host.objectOf?.(target).display?.setProperty(i, value, version);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* What a property's set converts its value to before it finds the target
|
|
132
|
+
* read-only or missing: a number for 0 to 12 but `_target` (11), a string
|
|
133
|
+
* for `_name` and `_quality`, a number for the rest but `_focusrect`.
|
|
134
|
+
*/
|
|
135
|
+
function coerceFor(index, value, version) {
|
|
136
|
+
if (index < 0 || index === 11 || index === 14 || index === 15 || index === 17) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
if (index <= 12) {
|
|
140
|
+
if (value !== undefined && value !== null) {
|
|
141
|
+
toNumber(value, version);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else if (index === 13 || index === 19) {
|
|
145
|
+
stringOf(value, version);
|
|
146
|
+
}
|
|
147
|
+
else if (index <= 21) {
|
|
148
|
+
toNumber(value, version);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
/** GotoFrame: frame `frame` (0 the first) of the target, which stops. */
|
|
152
|
+
export function gotoFrame(cx, frame) {
|
|
153
|
+
timelineOf(cx, cx.target)?.goto(frame + 1, false);
|
|
154
|
+
}
|
|
155
|
+
/** GotoLabel: the frame of `label`, if the target has it, which stops. */
|
|
156
|
+
export function gotoLabel(cx, label) {
|
|
157
|
+
const timeline = timelineOf(cx, cx.target);
|
|
158
|
+
const frame = timeline?.labelFrame(label);
|
|
159
|
+
if (frame !== undefined) {
|
|
160
|
+
timeline?.goto(frame, false);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/** GotoFrame2: as `goto` on the target, or the root where there is none, `bias` frames on. */
|
|
164
|
+
export function gotoFrame2(cx, frame, play, bias, version) {
|
|
165
|
+
const target = targetOrRoot(cx);
|
|
166
|
+
if (timelineOf(cx, target) !== null) {
|
|
167
|
+
goto(cx, target, frame, play, bias, version);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/** A string as Rust reads an f64: digits with a sign, a point and an exponent, or inf and NaN; null for anything else. */
|
|
171
|
+
function parseNumber(s) {
|
|
172
|
+
if (/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(s)) {
|
|
173
|
+
return Number(s);
|
|
174
|
+
}
|
|
175
|
+
if (/^[+-]?(inf|infinity)$/i.test(s)) {
|
|
176
|
+
return s.startsWith("-") ? Number.NEGATIVE_INFINITY : Number.POSITIVE_INFINITY;
|
|
177
|
+
}
|
|
178
|
+
return /^[+-]?nan$/i.test(s) ? Number.NaN : null;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* The clip and the frame a goto's or CallFrame's value names from clip
|
|
182
|
+
* `start`: a whole number its frame; anything else as a string, a path to
|
|
183
|
+
* a clip and a frame, `/a/b:3` or `a.b.label`, the frame a number or a
|
|
184
|
+
* label; null where it names none.
|
|
185
|
+
*/
|
|
186
|
+
function frameOf(cx, start, value, version) {
|
|
187
|
+
if (typeof value === "number" && Number.isInteger(value)) {
|
|
188
|
+
return [start, toInt32(value, version)];
|
|
189
|
+
}
|
|
190
|
+
const path = stringOf(value, version);
|
|
191
|
+
let clip = start;
|
|
192
|
+
let frame = path;
|
|
193
|
+
const separator = Math.max(path.lastIndexOf(":"), path.lastIndexOf("."));
|
|
194
|
+
if (separator >= 0) {
|
|
195
|
+
clip = null;
|
|
196
|
+
for (let s = cx.scope; s !== null && clip === null; s = s.parent) {
|
|
197
|
+
const object = targetPath(cx, s.object, path.slice(0, separator), true, true, version);
|
|
198
|
+
if (object !== null) {
|
|
199
|
+
clip = cx.host.clipOf?.(object) ?? null;
|
|
200
|
+
// Not a clip: none, as Ruffle's resolve_variable_path finds an object first.
|
|
201
|
+
if (clip === null) {
|
|
202
|
+
return null;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
frame = path.slice(separator + 1);
|
|
207
|
+
}
|
|
208
|
+
const timeline = clip === null ? null : timelineOf(cx, clip);
|
|
209
|
+
if (clip === null || timeline === null) {
|
|
210
|
+
return null;
|
|
211
|
+
}
|
|
212
|
+
const n = parseNumber(frame);
|
|
213
|
+
if (n !== null) {
|
|
214
|
+
return [clip, toInt32(n, version)];
|
|
215
|
+
}
|
|
216
|
+
const labelled = timeline.labelFrame(frame);
|
|
217
|
+
return labelled === undefined ? null : [clip, labelled];
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* A goto of `frame` on clip `target`, gotoAndPlay's and gotoAndStop's and
|
|
221
|
+
* GotoFrame2's: the frame `frameOf` names, `bias` frames on, if that is
|
|
222
|
+
* from 1; as a u16, where the timeline clamps it.
|
|
223
|
+
*/
|
|
224
|
+
export function goto(cx, target, frame, play, bias, version) {
|
|
225
|
+
const found = frameOf(cx, target, frame, version);
|
|
226
|
+
if (found === null) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
229
|
+
const n = Math.min(((found[1] - 1) | 0) + bias + 1, 0x7fffffff);
|
|
230
|
+
if (n > 0) {
|
|
231
|
+
timelineOf(cx, found[0])?.goto(Math.max(1, n & 0xffff), play);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/** NextFrame: the target's next frame, if it has one, where it stops. */
|
|
235
|
+
export function nextFrame(cx) {
|
|
236
|
+
const timeline = timelineOf(cx, cx.target);
|
|
237
|
+
if (timeline !== null && timeline.currentFrame < timeline.totalFrames) {
|
|
238
|
+
timeline.goto(timeline.currentFrame + 1, false);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/** PrevFrame: the target's previous frame, if it has one, where it stops. */
|
|
242
|
+
export function prevFrame(cx) {
|
|
243
|
+
const timeline = timelineOf(cx, cx.target);
|
|
244
|
+
if (timeline !== null && timeline.currentFrame > 1) {
|
|
245
|
+
timeline.goto(timeline.currentFrame - 1, false);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* WaitForFrame: whether frame `frame` (0 the first) is loaded, which in a
|
|
250
|
+
* SWF the player has whole every frame is, up to Flash's 16000.
|
|
251
|
+
*/
|
|
252
|
+
export const frameLoaded = (frame) => frame <= 16000;
|
|
253
|
+
/** WaitForFrame2: as WaitForFrame of the value's frame, 1 the first, read as Ruffle reads it. */
|
|
254
|
+
export function frameLoaded2(value, version) {
|
|
255
|
+
let n = 0;
|
|
256
|
+
if (typeof value === "number" && Number.isInteger(value)) {
|
|
257
|
+
n = toInt32(value, version);
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
const parsed = parseNumber(stringOf(value, version));
|
|
261
|
+
n = parsed !== null && Number.isInteger(parsed) ? toInt32(parsed, version) : 0;
|
|
262
|
+
}
|
|
263
|
+
// Less one, wrapping, and one more, saturating.
|
|
264
|
+
const frame = Math.min(((n - 1) | 0) + 1, 0x7fffffff);
|
|
265
|
+
return frame <= 16001;
|
|
266
|
+
}
|
|
267
|
+
/** TargetPath: a clip's path, `_level0.a`, undefined for anything else. */
|
|
268
|
+
export function targetPathOf(value) {
|
|
269
|
+
if (!(value instanceof Avm1Object) || value.display === null) {
|
|
270
|
+
return undefined;
|
|
271
|
+
}
|
|
272
|
+
const live = value.display.live();
|
|
273
|
+
return live?.display?.path() ?? undefined;
|
|
274
|
+
}
|
|
275
|
+
/** CallFrame: the actions of the frame the value names, on the target or the root, run now. */
|
|
276
|
+
export function callFrame(cx, value, version) {
|
|
277
|
+
const target = targetOrRoot(cx);
|
|
278
|
+
const found = typeof value === "number"
|
|
279
|
+
? [target, toInt32(value, version) >>> 0]
|
|
280
|
+
: frameOf(cx, target, value, version);
|
|
281
|
+
if (found !== null && found[1] <= 0xffff) {
|
|
282
|
+
timelineOf(cx, found[0])?.call(found[1]);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* CloneSprite: the display object `source` names from the target, or the
|
|
287
|
+
* root's where there is none, duplicated as `name` at timeline depth
|
|
288
|
+
* `depth`, which compilers bias as duplicateMovieClip's own depth is.
|
|
289
|
+
*/
|
|
290
|
+
export function cloneSprite(cx, depth, name, source, version) {
|
|
291
|
+
const d = toInt32(depth, version);
|
|
292
|
+
const n = stringOf(name, version);
|
|
293
|
+
const target = displayOf(cx, targetOrRoot(cx), source, true, version);
|
|
294
|
+
if (target !== null) {
|
|
295
|
+
cx.host.duplicate?.(target, n, d);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* StartDrag, its operands on the stack: the target, whether to lock the
|
|
300
|
+
* centre, whether to constrain, and if so the bounds' right-to-left
|
|
301
|
+
* bottom, right, top and left. The display object the target names, from
|
|
302
|
+
* the code's target or the root, is dragged; an empty one is that target.
|
|
303
|
+
*/
|
|
304
|
+
export function startDrag(cx, version) {
|
|
305
|
+
const st = cx.st;
|
|
306
|
+
const value = st.pop();
|
|
307
|
+
const lockCenter = toBoolean(st.pop(), version);
|
|
308
|
+
let bounds = null;
|
|
309
|
+
if (toBoolean(st.pop(), version)) {
|
|
310
|
+
const bottom = toNumber(st.pop(), version);
|
|
311
|
+
const right = toNumber(st.pop(), version);
|
|
312
|
+
const top = toNumber(st.pop(), version);
|
|
313
|
+
const left = toNumber(st.pop(), version);
|
|
314
|
+
bounds = [left, top, right, bottom];
|
|
315
|
+
}
|
|
316
|
+
const target = displayOf(cx, targetOrRoot(cx), value, true, version);
|
|
317
|
+
if (target !== null) {
|
|
318
|
+
cx.host.startDrag?.(target, lockCenter, bounds);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* RemoveSprite: the display object `value` names from the target, or the
|
|
323
|
+
* root's, removed; a target it removes gives way to the code's own clip.
|
|
324
|
+
*/
|
|
325
|
+
export function removeSprite(cx, value, version) {
|
|
326
|
+
const target = displayOf(cx, targetOrRoot(cx), value, true, version);
|
|
327
|
+
if (target === null) {
|
|
328
|
+
return;
|
|
329
|
+
}
|
|
330
|
+
cx.host.remove?.(target);
|
|
331
|
+
if (cx.target !== null && cx.host.removed?.(cx.target)) {
|
|
332
|
+
setTargetClip(cx, cx.base);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
//# sourceMappingURL=clips.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clips.js","sourceRoot":"","sources":["../../src/avm1/clips.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { Activation } from "./activation.js";
|
|
2
|
+
import type { Value } from "./values.js";
|
|
3
|
+
export declare class Held {
|
|
4
|
+
readonly kind: number;
|
|
5
|
+
/** The blocks it holds over, from `from` to `to`, excluded. */
|
|
6
|
+
from: number;
|
|
7
|
+
to: number;
|
|
8
|
+
/** A finally's thrown value. */
|
|
9
|
+
readonly value: Value;
|
|
10
|
+
constructor(kind: number,
|
|
11
|
+
/** The blocks it holds over, from `from` to `to`, excluded. */
|
|
12
|
+
from: number, to: number,
|
|
13
|
+
/** A finally's thrown value. */
|
|
14
|
+
value?: Value);
|
|
15
|
+
holds(block: number): boolean;
|
|
16
|
+
/** Whether a scope holds as control goes to `block`: one of its body's, or the first past it. */
|
|
17
|
+
admits(block: number): boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* With: `value`, a primitive boxed, on the scope chain over the body's
|
|
21
|
+
* blocks; false, the body skipped, for undefined and null, and where the
|
|
22
|
+
* chain holds MAX_SCOPES already (adl).
|
|
23
|
+
*/
|
|
24
|
+
export declare function enterWith(cx: Activation, value: Value, from: number, to: number, version: number): boolean;
|
|
25
|
+
/** Try: its handlers, held over its try and catch bodies. */
|
|
26
|
+
export declare function enterTry(cx: Activation, from: number, catchFrom: number, finallyFrom: number, finallyTo: number, catchAt: number, into: string | number): void;
|
|
27
|
+
/**
|
|
28
|
+
* Where control goes from the block `at`, where `error` was thrown: the
|
|
29
|
+
* catch of the first Try whose try body holds it, its variable set, or the
|
|
30
|
+
* finally of the first whose try or catch body does, which throws the
|
|
31
|
+
* value again as control leaves it. The stack is cut back to its height
|
|
32
|
+
* as that Try ran. Another error, a bug's or the host's, a recursion
|
|
33
|
+
* limit's, passes through, as does a value no Try catches.
|
|
34
|
+
*/
|
|
35
|
+
export declare function caught(cx: Activation, error: unknown, at: number): number;
|
|
36
|
+
/**
|
|
37
|
+
* Control going to block `to` (-1: the exit) across the bounds of a body:
|
|
38
|
+
* the Trys that do not hold over it come off, and a finally that a throw
|
|
39
|
+
* or a Return reached throws or returns as control leaves it, even by a
|
|
40
|
+
* jump. The scopes on top that do not hold there come off; those whose
|
|
41
|
+
* body it is the first block past, after its first action (V.scopes).
|
|
42
|
+
*/
|
|
43
|
+
export declare function leave(cx: Activation, to: number): number;
|
|
44
|
+
/** The scopes that do not hold over block `at`, where control is, come off. */
|
|
45
|
+
export declare function scopes(cx: Activation, at: number): void;
|
|
46
|
+
/**
|
|
47
|
+
* Return, its value on top of the stack: the finally of the first Try
|
|
48
|
+
* whose try or catch body holds control runs first, the stack cut back to
|
|
49
|
+
* its height as that Try ran with the value left on top, and the value is
|
|
50
|
+
* popped as control leaves it, the stack's top then (adl); a finally's own
|
|
51
|
+
* throw or Return gives way to this one.
|
|
52
|
+
*/
|
|
53
|
+
export declare function returned(cx: Activation): number;
|
|
54
|
+
//# sourceMappingURL=control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/avm1/control.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAIlD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAazC,qBAAa,IAAI;IAEb,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,+DAA+D;IACxD,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,MAAM;IACjB,gCAAgC;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK;IANvB,YACW,IAAI,EAAE,MAAM;IACrB,+DAA+D;IACxD,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM;IACjB,gCAAgC;IACvB,KAAK,GAAE,KAAiB,EAC/B;IAEJ,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE5B;IAED,iGAAiG;IACjG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7B;CACF;AAuGD;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,GACd,OAAO,CAOT;AAED,6DAA6D;AAC7D,wBAAgB,QAAQ,CACtB,EAAE,EAAE,UAAU,EACd,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,GAAG,MAAM,GACpB,IAAI,CAIN;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAiDzE;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CA+BxD;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAcvD;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM,CAoB/C"}
|