@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,205 @@
|
|
|
1
|
+
// E4X's names: property names coerced to XML names, and the Namespaces
|
|
2
|
+
// and QNames E4X makes and compares.
|
|
3
|
+
//
|
|
4
|
+
// Translated from avmplus' core/XMLObject.cpp, XMLListObject.cpp and E4X's
|
|
5
|
+
// parts of Toplevel.cpp and AvmCore.cpp, this file is subject to the
|
|
6
|
+
// Mozilla Public License, v. 2.0: http://mozilla.org/MPL/2.0/.
|
|
7
|
+
import { CONSTANT_Qname, CONSTANT_QnameA, Namespace, NS_Public, namespace, prefixedNamespace, prefixOf, publicNs, } from "../../names.js";
|
|
8
|
+
import { isXMLName } from "./chars.js";
|
|
9
|
+
import { ATTRIBUTE, ELEMENT, matches } from "./node.js";
|
|
10
|
+
import { ANY, e4x, NAMESPACE_WITH_PREFIX_AND_NO_URI } from "./values.js";
|
|
11
|
+
// Names.
|
|
12
|
+
/** As String::parseIndex: a name's index, or -1. */
|
|
13
|
+
export function parseIndex(name) {
|
|
14
|
+
const c = name.charCodeAt(0);
|
|
15
|
+
if (!(c >= 0x30 && c <= 0x39)) {
|
|
16
|
+
return -1;
|
|
17
|
+
}
|
|
18
|
+
const i = Number(name);
|
|
19
|
+
return i >>> 0 === i && i !== 0xffffffff && String(i) === name ? i : -1;
|
|
20
|
+
}
|
|
21
|
+
/** An index name: not any name, nor an attribute's. */
|
|
22
|
+
export const indexOf = (n) => n.attribute || n.local === null ? -1 : parseIndex(n.local);
|
|
23
|
+
/** Whether `ns` is `other`, prefix, URI and kind, as CoerceE4XMultiname compares them. */
|
|
24
|
+
const sameNamespace = (ns, other) => ns !== null && ns.uri === other.uri && ns.kind === other.kind && prefixOf(ns) === prefixOf(other);
|
|
25
|
+
/**
|
|
26
|
+
* As CoerceE4XMultiname: an unqualified name in the default XML namespace
|
|
27
|
+
* too, and a name of "*" or starting with "@" as any name or an
|
|
28
|
+
* attribute's.
|
|
29
|
+
*/
|
|
30
|
+
export function coerce(rt, n) {
|
|
31
|
+
let namespaces = n.namespaces;
|
|
32
|
+
if (!n.qualified && namespaces !== null) {
|
|
33
|
+
const dxns = rt.defaultXmlNamespace;
|
|
34
|
+
if (!namespaces.some((ns) => sameNamespace(ns, dxns))) {
|
|
35
|
+
namespaces = [...namespaces, dxns];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
let local = n.local;
|
|
39
|
+
let attribute = n.attribute;
|
|
40
|
+
if (local === "*") {
|
|
41
|
+
local = null;
|
|
42
|
+
}
|
|
43
|
+
else if (local !== null && local.charCodeAt(0) === 0x40 && !attribute) {
|
|
44
|
+
local = local === "@*" ? null : local.slice(1);
|
|
45
|
+
attribute = true;
|
|
46
|
+
}
|
|
47
|
+
if (namespaces === n.namespaces && local === n.local && attribute === n.attribute) {
|
|
48
|
+
return n;
|
|
49
|
+
}
|
|
50
|
+
return { local, namespaces, attribute, qualified: n.qualified };
|
|
51
|
+
}
|
|
52
|
+
/** A property's multiname as E4X names: a Qname is qualified, its namespace null for any. */
|
|
53
|
+
export function fromMultiname(mn) {
|
|
54
|
+
const qualified = mn.kind === CONSTANT_Qname || mn.kind === CONSTANT_QnameA;
|
|
55
|
+
const all = mn.namespaces;
|
|
56
|
+
let namespaces;
|
|
57
|
+
if (qualified) {
|
|
58
|
+
namespaces = all[0] ? [all[0]] : null;
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
namespaces = all.some((ns) => ns === null) ? null : all;
|
|
62
|
+
}
|
|
63
|
+
return { local: mn.name, namespaces, attribute: mn.attribute, qualified };
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* As ToXMLName: a name for a method's argument, as XML's child() takes
|
|
67
|
+
* one. A QName is its local name, in a namespace of its URI; anything else
|
|
68
|
+
* is its string, in the public namespace: "@name" an attribute's, "*" any.
|
|
69
|
+
*/
|
|
70
|
+
export function toXMLName(rt, p) {
|
|
71
|
+
if (p === null || p === undefined) {
|
|
72
|
+
throw rt.error("TypeError", 1010);
|
|
73
|
+
}
|
|
74
|
+
let s;
|
|
75
|
+
if (p instanceof Namespace) {
|
|
76
|
+
s = p.uri ?? "";
|
|
77
|
+
}
|
|
78
|
+
else if (p.$local !== undefined) {
|
|
79
|
+
// avmplus makes the namespace of the URI's string: "null" for any.
|
|
80
|
+
return {
|
|
81
|
+
local: p.$local,
|
|
82
|
+
namespaces: [namespace(NS_Public, p.$ns ? p.$ns.uri : "null")],
|
|
83
|
+
attribute: p.$attr === true,
|
|
84
|
+
qualified: false,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
s = rt.toString(p);
|
|
89
|
+
}
|
|
90
|
+
let local = s;
|
|
91
|
+
let attribute = false;
|
|
92
|
+
if (s.charCodeAt(0) === 0x40) {
|
|
93
|
+
local = s.slice(1);
|
|
94
|
+
attribute = true;
|
|
95
|
+
}
|
|
96
|
+
if (local === "*") {
|
|
97
|
+
local = null;
|
|
98
|
+
}
|
|
99
|
+
return { local, namespaces: [publicNs], attribute, qualified: false };
|
|
100
|
+
}
|
|
101
|
+
/** As ToAttributeName and then ToXMLName: an attribute's name for XML's attribute(). */
|
|
102
|
+
export function toAttributeName(rt, v) {
|
|
103
|
+
if (v === null || v === undefined || typeof v === "number" || typeof v === "boolean") {
|
|
104
|
+
throw rt.error("TypeError", 1010);
|
|
105
|
+
}
|
|
106
|
+
if (typeof v === "object" && !(v instanceof Namespace) && v.$local !== undefined) {
|
|
107
|
+
return { ...toXMLName(rt, v), attribute: true };
|
|
108
|
+
}
|
|
109
|
+
const s = v instanceof Namespace ? (v.uri ?? "") : rt.toString(v);
|
|
110
|
+
const uri = s === "*" ? "null" : rt.defaultXmlNamespace.uri;
|
|
111
|
+
return {
|
|
112
|
+
local: s === "*" ? null : s,
|
|
113
|
+
namespaces: [namespace(NS_Public, uri)],
|
|
114
|
+
attribute: true,
|
|
115
|
+
qualified: false,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/** Whether `n` names child `child`: only an element has a name to match. */
|
|
119
|
+
export const matchesChild = (n, child) => matches(n, child.kind === ELEMENT ? child : null);
|
|
120
|
+
// Namespaces and QNames.
|
|
121
|
+
/** As AvmCore::newNamespace(uri): a Namespace's own, a QName's URI's, or of a string. */
|
|
122
|
+
export function newNamespace(rt, uri) {
|
|
123
|
+
if (uri instanceof Namespace) {
|
|
124
|
+
return uri;
|
|
125
|
+
}
|
|
126
|
+
if (typeof uri === "object" && uri !== null && uri.$local !== undefined && uri.$ns) {
|
|
127
|
+
return namespace(NS_Public, uri.$ns.uri);
|
|
128
|
+
}
|
|
129
|
+
return namespace(NS_Public, rt.toString(uri));
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* As AvmCore::newNamespace(prefix, uri): a namespace with a prefix, none
|
|
133
|
+
* if it is not an XML name, or null for a prefix of the empty URI.
|
|
134
|
+
*/
|
|
135
|
+
export function newPrefixedNamespace(rt, prefix, uri) {
|
|
136
|
+
const u = typeof uri === "object" && uri !== null && uri.$local !== undefined && uri.$ns
|
|
137
|
+
? uri.$ns.uri
|
|
138
|
+
: rt.toString(uri);
|
|
139
|
+
if (u === "") {
|
|
140
|
+
return prefix === undefined || rt.toString(prefix) === "" ? publicNs : null;
|
|
141
|
+
}
|
|
142
|
+
if (prefix === undefined) {
|
|
143
|
+
return namespace(NS_Public, u);
|
|
144
|
+
}
|
|
145
|
+
const p = rt.toString(prefix);
|
|
146
|
+
if (p !== "" && !isXMLName(p)) {
|
|
147
|
+
return namespace(NS_Public, u);
|
|
148
|
+
}
|
|
149
|
+
return prefixedNamespace(p, u);
|
|
150
|
+
}
|
|
151
|
+
/** As NamespaceClass::construct: Namespace(), Namespace(uri) or Namespace(prefix, uri). */
|
|
152
|
+
export function constructNamespace(rt, args) {
|
|
153
|
+
if (args.length === 0) {
|
|
154
|
+
return publicNs;
|
|
155
|
+
}
|
|
156
|
+
if (args.length === 1) {
|
|
157
|
+
return newNamespace(rt, args[0]);
|
|
158
|
+
}
|
|
159
|
+
const p = rt.toString(args[0]);
|
|
160
|
+
if (p.length && !rt.toString(args[1]).length) {
|
|
161
|
+
throw rt.error("TypeError", NAMESPACE_WITH_PREFIX_AND_NO_URI, p);
|
|
162
|
+
}
|
|
163
|
+
return newPrefixedNamespace(rt, args[0], args[1]) ?? publicNs;
|
|
164
|
+
}
|
|
165
|
+
/** A QName object of a node's name, as XML's name() gives it. */
|
|
166
|
+
export function qnameOf(rt, node) {
|
|
167
|
+
const q = e4x(rt).qname.instance();
|
|
168
|
+
q.$ns = node.ns;
|
|
169
|
+
q.$local = node.name;
|
|
170
|
+
q.$attr = node.kind === ATTRIBUTE;
|
|
171
|
+
return q;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* As QNameObject(name), with no namespace: a QName's name, else any name
|
|
175
|
+
* in any namespace for "*", or the name in the default XML namespace.
|
|
176
|
+
*/
|
|
177
|
+
export function qnameName(rt, name) {
|
|
178
|
+
if (typeof name === "object" && name !== null && name.$local !== undefined) {
|
|
179
|
+
return {
|
|
180
|
+
local: name.$local,
|
|
181
|
+
namespaces: name.$ns ? [name.$ns] : null,
|
|
182
|
+
attribute: name.$attr === true,
|
|
183
|
+
qualified: name.$ns !== null,
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
const s = name === undefined ? "" : rt.toString(name);
|
|
187
|
+
if (s === "*") {
|
|
188
|
+
return ANY;
|
|
189
|
+
}
|
|
190
|
+
return { local: s, namespaces: [rt.defaultXmlNamespace], attribute: false, qualified: true };
|
|
191
|
+
}
|
|
192
|
+
/** As GetNamespace: the namespace of `ns`'s URI among `list`, else one of its URI. */
|
|
193
|
+
export function getNamespace(ns, list) {
|
|
194
|
+
for (const ns2 of list) {
|
|
195
|
+
if (ns2.uri === ns.uri) {
|
|
196
|
+
return ns2;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return namespace(NS_Public, ns.uri);
|
|
200
|
+
}
|
|
201
|
+
export const hasPrefix = (ns) => {
|
|
202
|
+
const p = prefixOf(ns);
|
|
203
|
+
return p !== undefined && p !== "";
|
|
204
|
+
};
|
|
205
|
+
//# sourceMappingURL=names.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"names.js","sourceRoot":"","sources":["../../../../src/avm2/natives/xml/names.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { AsObject, Value } from "../../descriptors.js";
|
|
2
|
+
import { type Namespace } from "../../names.js";
|
|
3
|
+
export declare const ATTRIBUTE = 2;
|
|
4
|
+
export declare const TEXT = 4;
|
|
5
|
+
/** Text, written back as CDATA. */
|
|
6
|
+
export declare const CDATA = 8;
|
|
7
|
+
export declare const COMMENT = 16;
|
|
8
|
+
export declare const PROCESSING_INSTRUCTION = 32;
|
|
9
|
+
export declare const ELEMENT = 64;
|
|
10
|
+
/**
|
|
11
|
+
* A name as E4X matches one against a node's, as avmplus' Multiname: its
|
|
12
|
+
* local name, null for any; its namespaces, null for any; whether it names
|
|
13
|
+
* attributes; and whether it is qualified, one namespace given, as ns::*,
|
|
14
|
+
* not a set of them, as a plain *.
|
|
15
|
+
*/
|
|
16
|
+
export interface XName {
|
|
17
|
+
local: string | null;
|
|
18
|
+
namespaces: Namespace[] | null;
|
|
19
|
+
attribute: boolean;
|
|
20
|
+
qualified: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare class XMLNode {
|
|
23
|
+
readonly kind: number;
|
|
24
|
+
parent: XMLNode | null;
|
|
25
|
+
/** Its local name; null for a node without one (text, CDATA, a comment). */
|
|
26
|
+
name: string | null;
|
|
27
|
+
/** Its name's namespace, when it has a name: public for none. */
|
|
28
|
+
ns: Namespace;
|
|
29
|
+
/** The value of a node that is not an element. */
|
|
30
|
+
value: string;
|
|
31
|
+
/** An element's attributes, in order. */
|
|
32
|
+
readonly attributes: XMLNode[];
|
|
33
|
+
/** The namespaces an element declares. */
|
|
34
|
+
readonly namespaces: Namespace[];
|
|
35
|
+
/** An element's children. */
|
|
36
|
+
readonly children: XMLNode[];
|
|
37
|
+
/** A function called on changes to an element, as setNotification sets it. */
|
|
38
|
+
notification: Value;
|
|
39
|
+
/** The XML object that stands for this node, once made. */
|
|
40
|
+
object: AsObject | null;
|
|
41
|
+
constructor(kind: number, value?: string);
|
|
42
|
+
/** As setQName: a name in no namespace, or the public one, is kept as public. */
|
|
43
|
+
setName(name: string | null, ns: Namespace | null): void;
|
|
44
|
+
/**
|
|
45
|
+
* As getQName: its name, if it has one; qualified unless public, which
|
|
46
|
+
* E4X then looks up in the default namespace too.
|
|
47
|
+
*/
|
|
48
|
+
xname(): XName | null;
|
|
49
|
+
/** As _append: `child` its last child. */
|
|
50
|
+
append(child: XMLNode): void;
|
|
51
|
+
/**
|
|
52
|
+
* As ElementE4XNode::_addInScopeNamespace: declare `ns` here, replacing
|
|
53
|
+
* one with its prefix but another URI; the name, and attributes', in a
|
|
54
|
+
* namespace with its prefix lose the prefix.
|
|
55
|
+
*/
|
|
56
|
+
addInScopeNamespace(ns: Namespace | null): void;
|
|
57
|
+
/**
|
|
58
|
+
* As FindMatchingNamespace: the index of a declared namespace with `ns`'s
|
|
59
|
+
* URI and, if it has one, its prefix; -1 if none, or if one with its URI
|
|
60
|
+
* has the empty prefix.
|
|
61
|
+
*/
|
|
62
|
+
findMatchingNamespace(ns: Namespace): number;
|
|
63
|
+
/**
|
|
64
|
+
* As BuildInScopeNamespaceList: the namespaces declared here and up the
|
|
65
|
+
* ancestors, the nearest first, each prefix (or, without one, URI) once.
|
|
66
|
+
*/
|
|
67
|
+
inScopeNamespaces(): Namespace[];
|
|
68
|
+
hasSimpleContent(): boolean;
|
|
69
|
+
hasComplexContent(): boolean;
|
|
70
|
+
/** Its index among its parent's children, or -1 for none or an attribute. */
|
|
71
|
+
childIndex(): number;
|
|
72
|
+
nodeKind(): string;
|
|
73
|
+
/** As _deleteByIndex: child i removed, no longer its child. */
|
|
74
|
+
deleteByIndex(i: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* As _deepCopy: a copy of this node and all below it, with no parent;
|
|
77
|
+
* comments and processing instructions the settings ignore left out.
|
|
78
|
+
*/
|
|
79
|
+
deepCopy(ignoreComments: boolean, ignoreProcessingInstructions: boolean): XMLNode;
|
|
80
|
+
/**
|
|
81
|
+
* As _equals: the same kind, name, attributes, value and children. The
|
|
82
|
+
* namespaces declared are not compared: those that matter are in names.
|
|
83
|
+
*/
|
|
84
|
+
equals(v: XMLNode): boolean;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* As Multiname::matches: whether `name` names `node`. With a name, the
|
|
88
|
+
* node is an attribute if the name names attributes; an unqualified any
|
|
89
|
+
* name matches every node, one without a name too; otherwise the local
|
|
90
|
+
* names are the same, and the node's namespace is one of the name's, by
|
|
91
|
+
* URI and kind, if the name is not in any namespace.
|
|
92
|
+
*/
|
|
93
|
+
export declare function matches(name: XName, node: XMLNode | null): boolean;
|
|
94
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../../src/avm2/natives/xml/node.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,SAAS,EAAoD,MAAM,gBAAgB,CAAC;AAGlG,eAAO,MAAM,SAAS,IAAO,CAAC;AAC9B,eAAO,MAAM,IAAI,IAAO,CAAC;AACzB,mCAAmC;AACnC,eAAO,MAAM,KAAK,IAAO,CAAC;AAC1B,eAAO,MAAM,OAAO,KAAO,CAAC;AAC5B,eAAO,MAAM,sBAAsB,KAAO,CAAC;AAC3C,eAAO,MAAM,OAAO,KAAO,CAAC;AAE5B;;;;;GAKG;AACH,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,OAAO;IAoBhB,QAAQ,CAAC,IAAI,EAAE,MAAM;IAnBvB,MAAM,EAAE,OAAO,GAAG,IAAI,CAAQ;IAC9B,4EAA4E;IAC5E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC3B,iEAAiE;IACjE,EAAE,EAAE,SAAS,CAAY;IACzB,kDAAkD;IAClD,KAAK,SAAM;IACX,yCAAyC;IACzC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,CAAM;IACpC,0CAA0C;IAC1C,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAE,CAAM;IACtC,6BAA6B;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAM;IAClC,8EAA8E;IAC9E,YAAY,EAAE,KAAK,CAAQ;IAC3B,2DAA2D;IAC3D,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAE/B,YACW,IAAI,EAAE,MAAM,EACrB,KAAK,SAAK,EAGX;IAED,iFAAiF;IACjF,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAOvD;IAED;;;OAGG;IACH,KAAK,IAAI,KAAK,GAAG,IAAI,CAWpB;IAED,0CAA0C;IAC1C,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAG3B;IAED;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CA+B9C;IAED;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,EAAE,SAAS,GAAG,MAAM,CAmB3C;IAED;;;OAGG;IACH,iBAAiB,IAAI,SAAS,EAAE,CAe/B;IAED,gBAAgB,IAAI,OAAO,CAM1B;IAED,iBAAiB,IAAI,OAAO,CAM3B;IAED,6EAA6E;IAC7E,UAAU,IAAI,MAAM,CAMnB;IAED,QAAQ,IAAI,MAAM,CAcjB;IAED,+DAA+D;IAC/D,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAS7B;IAED;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO,GAAG,OAAO,CA6BhF;IAED;;;OAGG;IACH,MAAM,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAmC1B;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAuBlE"}
|
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
// E4X's tree, as avmplus' E4XNode: elements with their attributes, the
|
|
2
|
+
// namespaces they declare and their children; text, CDATA, comments,
|
|
3
|
+
// processing instructions and attributes with their values. Each node has
|
|
4
|
+
// its parent, and one XML object stands for it (see values.ts), so that XML
|
|
5
|
+
// values compare by the node they are.
|
|
6
|
+
//
|
|
7
|
+
// Translated from avmplus' core/E4XNode.cpp, this file is subject to the
|
|
8
|
+
// Mozilla Public License, v. 2.0: http://mozilla.org/MPL/2.0/.
|
|
9
|
+
import { NS_Public, prefixedNamespace, prefixOf, publicNs } from "../../names.js";
|
|
10
|
+
// The node kinds, as E4XNode's NodeTypes: bits, so a set of them is a mask.
|
|
11
|
+
export const ATTRIBUTE = 0x02;
|
|
12
|
+
export const TEXT = 0x04;
|
|
13
|
+
/** Text, written back as CDATA. */
|
|
14
|
+
export const CDATA = 0x08;
|
|
15
|
+
export const COMMENT = 0x10;
|
|
16
|
+
export const PROCESSING_INSTRUCTION = 0x20;
|
|
17
|
+
export const ELEMENT = 0x40;
|
|
18
|
+
export class XMLNode {
|
|
19
|
+
kind;
|
|
20
|
+
parent = null;
|
|
21
|
+
/** Its local name; null for a node without one (text, CDATA, a comment). */
|
|
22
|
+
name = null;
|
|
23
|
+
/** Its name's namespace, when it has a name: public for none. */
|
|
24
|
+
ns = publicNs;
|
|
25
|
+
/** The value of a node that is not an element. */
|
|
26
|
+
value = "";
|
|
27
|
+
/** An element's attributes, in order. */
|
|
28
|
+
attributes = [];
|
|
29
|
+
/** The namespaces an element declares. */
|
|
30
|
+
namespaces = [];
|
|
31
|
+
/** An element's children. */
|
|
32
|
+
children = [];
|
|
33
|
+
/** A function called on changes to an element, as setNotification sets it. */
|
|
34
|
+
notification = null;
|
|
35
|
+
/** The XML object that stands for this node, once made. */
|
|
36
|
+
object = null;
|
|
37
|
+
constructor(kind, value = "") {
|
|
38
|
+
this.kind = kind;
|
|
39
|
+
this.value = value;
|
|
40
|
+
}
|
|
41
|
+
/** As setQName: a name in no namespace, or the public one, is kept as public. */
|
|
42
|
+
setName(name, ns) {
|
|
43
|
+
this.name = name;
|
|
44
|
+
if (!ns || (ns.kind === NS_Public && ns.uri === "")) {
|
|
45
|
+
this.ns = publicNs;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
this.ns = ns;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* As getQName: its name, if it has one; qualified unless public, which
|
|
53
|
+
* E4X then looks up in the default namespace too.
|
|
54
|
+
*/
|
|
55
|
+
xname() {
|
|
56
|
+
if (this.name === null) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
local: this.name,
|
|
61
|
+
namespaces: [this.ns],
|
|
62
|
+
attribute: this.kind === ATTRIBUTE,
|
|
63
|
+
qualified: this.ns !== publicNs,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/** As _append: `child` its last child. */
|
|
67
|
+
append(child) {
|
|
68
|
+
child.parent = this;
|
|
69
|
+
this.children.push(child);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* As ElementE4XNode::_addInScopeNamespace: declare `ns` here, replacing
|
|
73
|
+
* one with its prefix but another URI; the name, and attributes', in a
|
|
74
|
+
* namespace with its prefix lose the prefix.
|
|
75
|
+
*/
|
|
76
|
+
addInScopeNamespace(ns) {
|
|
77
|
+
if (this.kind !== ELEMENT || !ns || prefixOf(ns) === undefined) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
const prefix = prefixOf(ns);
|
|
81
|
+
if (prefix === "" && this.name !== null && this.ns.uri === "") {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
let index = -1;
|
|
85
|
+
for (let i = 0; i < this.namespaces.length; i++) {
|
|
86
|
+
if (prefixOf(this.namespaces[i]) === prefix) {
|
|
87
|
+
index = i;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
if (index !== -1 && this.namespaces[index].uri !== ns.uri) {
|
|
91
|
+
this.namespaces.splice(index, 1);
|
|
92
|
+
}
|
|
93
|
+
this.namespaces.push(ns);
|
|
94
|
+
if (this.name !== null && prefixOf(this.ns) === prefix) {
|
|
95
|
+
this.setName(this.name, prefixedNamespace(undefined, this.ns.uri ?? ""));
|
|
96
|
+
}
|
|
97
|
+
for (const attribute of this.attributes) {
|
|
98
|
+
if (attribute.name !== null && prefixOf(attribute.ns) === prefix) {
|
|
99
|
+
attribute.setName(attribute.name, prefixedNamespace(undefined, attribute.ns.uri ?? ""));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* As FindMatchingNamespace: the index of a declared namespace with `ns`'s
|
|
105
|
+
* URI and, if it has one, its prefix; -1 if none, or if one with its URI
|
|
106
|
+
* has the empty prefix.
|
|
107
|
+
*/
|
|
108
|
+
findMatchingNamespace(ns) {
|
|
109
|
+
for (let i = 0; i < this.namespaces.length; i++) {
|
|
110
|
+
const ns2 = this.namespaces[i];
|
|
111
|
+
if (ns2.uri === ns.uri) {
|
|
112
|
+
if (prefixOf(ns) === undefined) {
|
|
113
|
+
return i;
|
|
114
|
+
}
|
|
115
|
+
if (prefixOf(ns2) === "") {
|
|
116
|
+
return -1;
|
|
117
|
+
}
|
|
118
|
+
if (prefixOf(ns2) === prefixOf(ns)) {
|
|
119
|
+
return i;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return -1;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* As BuildInScopeNamespaceList: the namespaces declared here and up the
|
|
127
|
+
* ancestors, the nearest first, each prefix (or, without one, URI) once.
|
|
128
|
+
*/
|
|
129
|
+
inScopeNamespaces() {
|
|
130
|
+
const list = [];
|
|
131
|
+
for (let y = this; y; y = y.parent) {
|
|
132
|
+
for (const ns1 of y.namespaces) {
|
|
133
|
+
const p1 = prefixOf(ns1);
|
|
134
|
+
const seen = list.some((ns2) => p1 === undefined ? ns1.uri === ns2.uri : p1 === prefixOf(ns2));
|
|
135
|
+
if (!seen) {
|
|
136
|
+
list.push(ns1);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return list;
|
|
141
|
+
}
|
|
142
|
+
hasSimpleContent() {
|
|
143
|
+
if (this.kind & (COMMENT | PROCESSING_INSTRUCTION)) {
|
|
144
|
+
return false;
|
|
145
|
+
}
|
|
146
|
+
return !this.children.some((c) => c.kind === ELEMENT);
|
|
147
|
+
}
|
|
148
|
+
hasComplexContent() {
|
|
149
|
+
if (this.kind & (TEXT | COMMENT | PROCESSING_INSTRUCTION | ATTRIBUTE | CDATA)) {
|
|
150
|
+
return false;
|
|
151
|
+
}
|
|
152
|
+
return this.children.some((c) => c.kind === ELEMENT);
|
|
153
|
+
}
|
|
154
|
+
/** Its index among its parent's children, or -1 for none or an attribute. */
|
|
155
|
+
childIndex() {
|
|
156
|
+
if (!this.parent || this.kind === ATTRIBUTE) {
|
|
157
|
+
return -1;
|
|
158
|
+
}
|
|
159
|
+
return this.parent.children.indexOf(this);
|
|
160
|
+
}
|
|
161
|
+
nodeKind() {
|
|
162
|
+
switch (this.kind) {
|
|
163
|
+
case ATTRIBUTE:
|
|
164
|
+
return "attribute";
|
|
165
|
+
case TEXT:
|
|
166
|
+
case CDATA:
|
|
167
|
+
return "text";
|
|
168
|
+
case COMMENT:
|
|
169
|
+
return "comment";
|
|
170
|
+
case PROCESSING_INSTRUCTION:
|
|
171
|
+
return "processing-instruction";
|
|
172
|
+
default:
|
|
173
|
+
return "element";
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/** As _deleteByIndex: child i removed, no longer its child. */
|
|
177
|
+
deleteByIndex(i) {
|
|
178
|
+
if (i >= 0 && i < this.children.length) {
|
|
179
|
+
const child = this.children[i];
|
|
180
|
+
if (child) {
|
|
181
|
+
child.parent = null;
|
|
182
|
+
}
|
|
183
|
+
this.children.splice(i, 1);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* As _deepCopy: a copy of this node and all below it, with no parent;
|
|
188
|
+
* comments and processing instructions the settings ignore left out.
|
|
189
|
+
*/
|
|
190
|
+
deepCopy(ignoreComments, ignoreProcessingInstructions) {
|
|
191
|
+
const x = new XMLNode(this.kind, this.value);
|
|
192
|
+
if (this.name !== null) {
|
|
193
|
+
x.setName(this.name, this.ns);
|
|
194
|
+
}
|
|
195
|
+
if (this.kind === ELEMENT) {
|
|
196
|
+
x.namespaces.push(...this.namespaces);
|
|
197
|
+
for (const a of this.attributes) {
|
|
198
|
+
const b = a.deepCopy(ignoreComments, ignoreProcessingInstructions);
|
|
199
|
+
b.parent = x;
|
|
200
|
+
x.attributes.push(b);
|
|
201
|
+
}
|
|
202
|
+
for (const child of this.children) {
|
|
203
|
+
if ((child.kind === COMMENT && ignoreComments) ||
|
|
204
|
+
(child.kind === PROCESSING_INSTRUCTION && ignoreProcessingInstructions)) {
|
|
205
|
+
continue;
|
|
206
|
+
}
|
|
207
|
+
const c = child.deepCopy(ignoreComments, ignoreProcessingInstructions);
|
|
208
|
+
c.parent = x;
|
|
209
|
+
x.children.push(c);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return x;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* As _equals: the same kind, name, attributes, value and children. The
|
|
216
|
+
* namespaces declared are not compared: those that matter are in names.
|
|
217
|
+
*/
|
|
218
|
+
equals(v) {
|
|
219
|
+
if (this === v) {
|
|
220
|
+
return true;
|
|
221
|
+
}
|
|
222
|
+
if (this.kind !== v.kind) {
|
|
223
|
+
return false;
|
|
224
|
+
}
|
|
225
|
+
const name = this.xname();
|
|
226
|
+
if (name ? v.name === null || !matches(name, v) : v.name !== null) {
|
|
227
|
+
return false;
|
|
228
|
+
}
|
|
229
|
+
if (this.attributes.length !== v.attributes.length ||
|
|
230
|
+
this.children.length !== v.children.length ||
|
|
231
|
+
this.value !== v.value) {
|
|
232
|
+
return false;
|
|
233
|
+
}
|
|
234
|
+
for (const a1 of this.attributes) {
|
|
235
|
+
if (!v.attributes.some((a2) => a1.equals(a2))) {
|
|
236
|
+
return false;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
for (let i = 0; i < this.children.length; i++) {
|
|
240
|
+
if (!this.children[i].equals(v.children[i])) {
|
|
241
|
+
return false;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
return true;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* As Multiname::matches: whether `name` names `node`. With a name, the
|
|
249
|
+
* node is an attribute if the name names attributes; an unqualified any
|
|
250
|
+
* name matches every node, one without a name too; otherwise the local
|
|
251
|
+
* names are the same, and the node's namespace is one of the name's, by
|
|
252
|
+
* URI and kind, if the name is not in any namespace.
|
|
253
|
+
*/
|
|
254
|
+
export function matches(name, node) {
|
|
255
|
+
const named = node !== null && node.name !== null;
|
|
256
|
+
if (named && name.attribute !== (node.kind === ATTRIBUTE)) {
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
if (name.local === null && !name.qualified) {
|
|
260
|
+
return true;
|
|
261
|
+
}
|
|
262
|
+
if (!named) {
|
|
263
|
+
return false;
|
|
264
|
+
}
|
|
265
|
+
if (name.local !== null && name.local !== node.name) {
|
|
266
|
+
return false;
|
|
267
|
+
}
|
|
268
|
+
if (name.namespaces === null) {
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
return name.namespaces.some((ns) => ns.uri === node.ns.uri && ns.kind === node.ns.kind);
|
|
272
|
+
}
|
|
273
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../../src/avm2/natives/xml/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Value } from "../../descriptors.js";
|
|
2
|
+
import type { Runtime } from "../../runtime.js";
|
|
3
|
+
/** E4X's == (11.5.1) where either side is XML or an XMLList, else undefined. */
|
|
4
|
+
export declare function equals(rt: Runtime, a: Value, b: Value): boolean | undefined;
|
|
5
|
+
/** E4X's + (11.4.1): XML and XMLLists into one XMLList. */
|
|
6
|
+
export declare function add(rt: Runtime, a: Value, b: Value): Value;
|
|
7
|
+
//# sourceMappingURL=operators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../../../src/avm2/natives/xml/operators.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAY,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAoChD,gFAAgF;AAChF,wBAAgB,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,SAAS,CAiC3E;AAED,2DAA2D;AAC3D,wBAAgB,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAS1D"}
|