@swf2es/player-hosts 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/LICENSE.third-party +759 -0
- package/README.md +43 -2
- package/dist/indexeddb.d.ts +27 -0
- package/dist/indexeddb.d.ts.map +1 -0
- package/dist/indexeddb.js +170 -0
- package/dist/indexeddb.js.map +1 -0
- package/dist/node-worker.d.ts +2 -0
- package/dist/node-worker.d.ts.map +1 -0
- package/dist/node-worker.js +12 -0
- package/dist/node-worker.js.map +1 -0
- package/dist/node.d.ts +8 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +43 -0
- package/dist/node.js.map +1 -0
- package/dist/precompiled.d.ts +31 -0
- package/dist/precompiled.d.ts.map +1 -0
- package/dist/precompiled.js +125 -0
- package/dist/precompiled.js.map +1 -0
- package/dist/stage3d.d.ts +13 -0
- package/dist/stage3d.d.ts.map +1 -0
- package/dist/stage3d.js +61 -0
- package/dist/stage3d.js.map +1 -0
- package/dist/thread/codegen/codegen.js +308 -0
- package/dist/thread/codegen/index.js +405 -0
- package/dist/thread/format/abc-names.js +126 -0
- package/dist/thread/format/actions.js +222 -0
- package/dist/thread/format/air-descriptor.js +63 -0
- package/dist/thread/format/api-versions.js +22 -0
- package/dist/thread/format/bitmap.js +199 -0
- package/dist/thread/format/button.js +60 -0
- package/dist/thread/format/compression.js +200 -0
- package/dist/thread/format/display.js +305 -0
- package/dist/thread/format/filters.js +136 -0
- package/dist/thread/format/font.js +168 -0
- package/dist/thread/format/index.js +26 -0
- package/dist/thread/format/pbj.js +484 -0
- package/dist/thread/format/shape.js +411 -0
- package/dist/thread/format/sound.js +91 -0
- package/dist/thread/format/swf.js +163 -0
- package/dist/thread/format/tags.js +58 -0
- package/dist/thread/format/text.js +135 -0
- package/dist/thread/format/zip.js +91 -0
- package/dist/thread/native/audio/binary.js +3 -0
- package/dist/thread/native/audio/index.js +72 -0
- package/dist/thread/native/base64.js +9 -0
- package/dist/thread/native/compress/binary.js +3 -0
- package/dist/thread/native/compress/index.js +145 -0
- package/dist/thread/native/instance.js +49 -0
- package/dist/thread/native/mp3/binary.js +3 -0
- package/dist/thread/native/mp3/index.js +48 -0
- package/dist/thread/native/render/binary.js +3 -0
- package/dist/thread/native/render/bitmap-kernel.js +591 -0
- package/dist/thread/native/render/draw-kernel.js +204 -0
- package/dist/thread/native/render/dxt-encoder.js +94 -0
- package/dist/thread/native/render/index.js +10 -0
- package/dist/thread/native/render/lines.js +122 -0
- package/dist/thread/native/render/module.js +26 -0
- package/dist/thread/native/render/pixel-ops.js +235 -0
- package/dist/thread/native/render/tessellator.js +250 -0
- package/dist/thread/player/avm1/amf.js +507 -0
- package/dist/thread/player/avm1/avm1.js +1304 -0
- package/dist/thread/player/avm1/bindings.js +214 -0
- package/dist/thread/player/avm1/classes.js +75 -0
- package/dist/thread/player/avm1/clips.js +229 -0
- package/dist/thread/player/avm1/compile.js +140 -0
- package/dist/thread/player/avm1/external.js +79 -0
- package/dist/thread/player/avm1/focus.js +278 -0
- package/dist/thread/player/avm1/globals/BitmapData.js +542 -0
- package/dist/thread/player/avm1/globals/Button.js +31 -0
- package/dist/thread/player/avm1/globals/Color.js +115 -0
- package/dist/thread/player/avm1/globals/ExternalInterface.js +310 -0
- package/dist/thread/player/avm1/globals/FileReference.js +217 -0
- package/dist/thread/player/avm1/globals/Key.js +60 -0
- package/dist/thread/player/avm1/globals/LoadVars.js +208 -0
- package/dist/thread/player/avm1/globals/LocalConnection.js +92 -0
- package/dist/thread/player/avm1/globals/MovieClip.js +1070 -0
- package/dist/thread/player/avm1/globals/MovieClipLoader.js +90 -0
- package/dist/thread/player/avm1/globals/NetConnection.js +261 -0
- package/dist/thread/player/avm1/globals/PrintJob.js +37 -0
- package/dist/thread/player/avm1/globals/Selection.js +62 -0
- package/dist/thread/player/avm1/globals/SharedObject.js +245 -0
- package/dist/thread/player/avm1/globals/Sound.js +238 -0
- package/dist/thread/player/avm1/globals/Stage.js +12 -0
- package/dist/thread/player/avm1/globals/StyleSheet.js +205 -0
- package/dist/thread/player/avm1/globals/TextField.js +396 -0
- package/dist/thread/player/avm1/globals/TextFormat.js +194 -0
- package/dist/thread/player/avm1/globals/TextSnapshot.js +88 -0
- package/dist/thread/player/avm1/globals/XML.js +396 -0
- package/dist/thread/player/avm1/globals/XMLNode.js +413 -0
- package/dist/thread/player/avm1/globals/XMLSocket.js +205 -0
- package/dist/thread/player/avm1/globals/drawing.js +202 -0
- package/dist/thread/player/avm1/globals/filters.js +635 -0
- package/dist/thread/player/avm1/globals/geom.js +600 -0
- package/dist/thread/player/avm1/input.js +483 -0
- package/dist/thread/player/avm1/keyboard.js +113 -0
- package/dist/thread/player/avm1/loads.js +352 -0
- package/dist/thread/player/avm1/net.js +219 -0
- package/dist/thread/player/avm1/paths.js +104 -0
- package/dist/thread/player/avm1/pointer.js +512 -0
- package/dist/thread/player/avm1/queue.js +303 -0
- package/dist/thread/player/avm1/sound.js +106 -0
- package/dist/thread/player/avm1/swf.js +141 -0
- package/dist/thread/player/avm1/timers.js +113 -0
- package/dist/thread/player/bitmap/bitmap.js +627 -0
- package/dist/thread/player/bitmap/draw.js +68 -0
- package/dist/thread/player/bitmap/dxt.js +11 -0
- package/dist/thread/player/bitmap/filters.js +656 -0
- package/dist/thread/player/bitmap/images.js +240 -0
- package/dist/thread/player/bitmap/kernel.js +65 -0
- package/dist/thread/player/bitmap/ops.js +1239 -0
- package/dist/thread/player/bitmap/pixel-bender.js +911 -0
- package/dist/thread/player/bitmap/png.js +139 -0
- package/dist/thread/player/bitmap/turbulence.js +89 -0
- package/dist/thread/player/clock.js +182 -0
- package/dist/thread/player/display/bitmapobject.js +25 -0
- package/dist/thread/player/display/bounds.js +520 -0
- package/dist/thread/player/display/buttonobject.js +305 -0
- package/dist/thread/player/display/color.js +40 -0
- package/dist/thread/player/display/container.js +150 -0
- package/dist/thread/player/display/display.js +14 -0
- package/dist/thread/player/display/displayobject.js +664 -0
- package/dist/thread/player/display/drawing.js +613 -0
- package/dist/thread/player/display/filters.js +285 -0
- package/dist/thread/player/display/geometry.js +189 -0
- package/dist/thread/player/display/gradients.js +117 -0
- package/dist/thread/player/display/graphicsdata.js +592 -0
- package/dist/thread/player/display/instantiate.js +71 -0
- package/dist/thread/player/display/matrix3d.js +373 -0
- package/dist/thread/player/display/morph.js +226 -0
- package/dist/thread/player/display/movieclip.js +680 -0
- package/dist/thread/player/display/perspective.js +193 -0
- package/dist/thread/player/display/scale9.js +236 -0
- package/dist/thread/player/display/shapeobject.js +131 -0
- package/dist/thread/player/display/shapes.js +407 -0
- package/dist/thread/player/display/textobjects.js +222 -0
- package/dist/thread/player/display/timeline.js +471 -0
- package/dist/thread/player/display/value-lists.js +40 -0
- package/dist/thread/player/display/videoobject.js +6 -0
- package/dist/thread/player/display/walk.js +127 -0
- package/dist/thread/player/files.js +334 -0
- package/dist/thread/player/hosts.js +207 -0
- package/dist/thread/player/input/avm1.js +82 -0
- package/dist/thread/player/input/context-menu.js +63 -0
- package/dist/thread/player/input/keyboard.js +458 -0
- package/dist/thread/player/input/pointer.js +863 -0
- package/dist/thread/player/input/text-editor.js +319 -0
- package/dist/thread/player/input/touch.js +209 -0
- package/dist/thread/player/localconnection.js +90 -0
- package/dist/thread/player/media/audio.js +376 -0
- package/dist/thread/player/media/dynamic-sound.js +90 -0
- package/dist/thread/player/media/extract.js +135 -0
- package/dist/thread/player/media/mp3.js +152 -0
- package/dist/thread/player/media/sounds.js +507 -0
- package/dist/thread/player/media/streaming-audio.js +133 -0
- package/dist/thread/player/player.js +616 -0
- package/dist/thread/player/playerglobal/air/net/WebSocket.js +250 -0
- package/dist/thread/player/playerglobal/air-library.js +8 -0
- package/dist/thread/player/playerglobal/flash/accessibility/Accessibility.js +21 -0
- package/dist/thread/player/playerglobal/flash/crypto/generateRandomBytes.js +32 -0
- package/dist/thread/player/playerglobal/flash/data/EncryptedLocalStore.js +61 -0
- package/dist/thread/player/playerglobal/flash/desktop/Clipboard.js +173 -0
- package/dist/thread/player/playerglobal/flash/desktop/NativeApplication.js +179 -0
- package/dist/thread/player/playerglobal/flash/display/AVM1Movie.js +19 -0
- package/dist/thread/player/playerglobal/flash/display/Bitmap.js +58 -0
- package/dist/thread/player/playerglobal/flash/display/BitmapData.js +633 -0
- package/dist/thread/player/playerglobal/flash/display/DisplayObject.js +614 -0
- package/dist/thread/player/playerglobal/flash/display/DisplayObjectContainer.js +224 -0
- package/dist/thread/player/playerglobal/flash/display/Graphics.js +345 -0
- package/dist/thread/player/playerglobal/flash/display/InteractiveObject.js +87 -0
- package/dist/thread/player/playerglobal/flash/display/Loader.js +79 -0
- package/dist/thread/player/playerglobal/flash/display/LoaderInfo.js +128 -0
- package/dist/thread/player/playerglobal/flash/display/MovieClip.js +194 -0
- package/dist/thread/player/playerglobal/flash/display/NativeWindow.js +245 -0
- package/dist/thread/player/playerglobal/flash/display/Shader.js +26 -0
- package/dist/thread/player/playerglobal/flash/display/ShaderData.js +85 -0
- package/dist/thread/player/playerglobal/flash/display/ShaderInput.js +64 -0
- package/dist/thread/player/playerglobal/flash/display/ShaderJob.js +181 -0
- package/dist/thread/player/playerglobal/flash/display/ShaderParameter.js +23 -0
- package/dist/thread/player/playerglobal/flash/display/Shape.js +13 -0
- package/dist/thread/player/playerglobal/flash/display/SimpleButton.js +103 -0
- package/dist/thread/player/playerglobal/flash/display/Sprite.js +84 -0
- package/dist/thread/player/playerglobal/flash/display/Stage.js +231 -0
- package/dist/thread/player/playerglobal/flash/display/Stage3D.js +54 -0
- package/dist/thread/player/playerglobal/flash/display/shaders.js +228 -0
- package/dist/thread/player/playerglobal/flash/events/Event.js +58 -0
- package/dist/thread/player/playerglobal/flash/events/EventDispatcher.js +103 -0
- package/dist/thread/player/playerglobal/flash/events/GestureEvent.js +34 -0
- package/dist/thread/player/playerglobal/flash/events/HTTPStatusEvent.js +8 -0
- package/dist/thread/player/playerglobal/flash/events/KeyboardEvent.js +51 -0
- package/dist/thread/player/playerglobal/flash/events/MouseEvent.js +59 -0
- package/dist/thread/player/playerglobal/flash/events/PressAndTapGestureEvent.js +30 -0
- package/dist/thread/player/playerglobal/flash/events/TimerEvent.js +16 -0
- package/dist/thread/player/playerglobal/flash/events/TouchEvent.js +45 -0
- package/dist/thread/player/playerglobal/flash/external/ExternalInterface.js +73 -0
- package/dist/thread/player/playerglobal/flash/filesystem/File.js +340 -0
- package/dist/thread/player/playerglobal/flash/filesystem/FileStream.js +453 -0
- package/dist/thread/player/playerglobal/flash/filesystem/paths.js +156 -0
- package/dist/thread/player/playerglobal/flash/filesystem/writes.js +143 -0
- package/dist/thread/player/playerglobal/flash/filters/BevelFilter.js +4 -0
- package/dist/thread/player/playerglobal/flash/filters/BitmapFilter.js +205 -0
- package/dist/thread/player/playerglobal/flash/filters/BlurFilter.js +4 -0
- package/dist/thread/player/playerglobal/flash/filters/ColorMatrixFilter.js +11 -0
- package/dist/thread/player/playerglobal/flash/filters/ConvolutionFilter.js +26 -0
- package/dist/thread/player/playerglobal/flash/filters/DisplacementMapFilter.js +51 -0
- package/dist/thread/player/playerglobal/flash/filters/DropShadowFilter.js +4 -0
- package/dist/thread/player/playerglobal/flash/filters/GlowFilter.js +4 -0
- package/dist/thread/player/playerglobal/flash/filters/GradientBevelFilter.js +4 -0
- package/dist/thread/player/playerglobal/flash/filters/GradientGlowFilter.js +4 -0
- package/dist/thread/player/playerglobal/flash/filters/ShaderFilter.js +53 -0
- package/dist/thread/player/playerglobal/flash/geom/Matrix3D.js +361 -0
- package/dist/thread/player/playerglobal/flash/geom/PerspectiveProjection.js +122 -0
- package/dist/thread/player/playerglobal/flash/geom/Transform.js +245 -0
- package/dist/thread/player/playerglobal/flash/geom/Utils3D.js +85 -0
- package/dist/thread/player/playerglobal/flash/globalization/Collator.js +149 -0
- package/dist/thread/player/playerglobal/flash/globalization/CurrencyFormatter.js +272 -0
- package/dist/thread/player/playerglobal/flash/globalization/CurrencyParseResult.js +21 -0
- package/dist/thread/player/playerglobal/flash/globalization/DateTimeFormatter.js +463 -0
- package/dist/thread/player/playerglobal/flash/globalization/LocaleID.js +144 -0
- package/dist/thread/player/playerglobal/flash/globalization/NumberFormatter.js +444 -0
- package/dist/thread/player/playerglobal/flash/globalization/NumberParseResult.js +22 -0
- package/dist/thread/player/playerglobal/flash/globalization/StringTools.js +59 -0
- package/dist/thread/player/playerglobal/flash/globalization/locale.js +190 -0
- package/dist/thread/player/playerglobal/flash/media/Camera.js +89 -0
- package/dist/thread/player/playerglobal/flash/media/Microphone.js +126 -0
- package/dist/thread/player/playerglobal/flash/media/Sound.js +543 -0
- package/dist/thread/player/playerglobal/flash/media/SoundMixer.js +74 -0
- package/dist/thread/player/playerglobal/flash/media/SoundTransform.js +40 -0
- package/dist/thread/player/playerglobal/flash/media/Video.js +43 -0
- package/dist/thread/player/playerglobal/flash/net/FileFilter.js +27 -0
- package/dist/thread/player/playerglobal/flash/net/FileReference.js +197 -0
- package/dist/thread/player/playerglobal/flash/net/LocalConnection.js +167 -0
- package/dist/thread/player/playerglobal/flash/net/NetConnection.js +155 -0
- package/dist/thread/player/playerglobal/flash/net/SharedObject.js +299 -0
- package/dist/thread/player/playerglobal/flash/net/Socket.js +282 -0
- package/dist/thread/player/playerglobal/flash/net/URLRequest.js +93 -0
- package/dist/thread/player/playerglobal/flash/net/URLStream.js +146 -0
- package/dist/thread/player/playerglobal/flash/net/XMLSocket.js +14 -0
- package/dist/thread/player/playerglobal/flash/net/local-modern.js +142 -0
- package/dist/thread/player/playerglobal/flash/net/local-values.js +217 -0
- package/dist/thread/player/playerglobal/flash/net/navigateToURL.js +29 -0
- package/dist/thread/player/playerglobal/flash/profiler/Telemetry.js +25 -0
- package/dist/thread/player/playerglobal/flash/sensors/Accelerometer.js +12 -0
- package/dist/thread/player/playerglobal/flash/system/ApplicationDomain.js +69 -0
- package/dist/thread/player/playerglobal/flash/system/Capabilities.js +163 -0
- package/dist/thread/player/playerglobal/flash/system/FSCommandHost.js +17 -0
- package/dist/thread/player/playerglobal/flash/system/Security.js +46 -0
- package/dist/thread/player/playerglobal/flash/system/SecurityDomain.js +21 -0
- package/dist/thread/player/playerglobal/flash/system/System.js +73 -0
- package/dist/thread/player/playerglobal/flash/system/Worker.js +112 -0
- package/dist/thread/player/playerglobal/flash/text/Font.js +95 -0
- package/dist/thread/player/playerglobal/flash/text/StaticText.js +16 -0
- package/dist/thread/player/playerglobal/flash/text/StyleSheet.js +65 -0
- package/dist/thread/player/playerglobal/flash/text/TextField.js +707 -0
- package/dist/thread/player/playerglobal/flash/text/TextRenderer.js +77 -0
- package/dist/thread/player/playerglobal/flash/text/engine/FontDescription.js +141 -0
- package/dist/thread/player/playerglobal/flash/text/engine/TabStop.js +46 -0
- package/dist/thread/player/playerglobal/flash/trace/Trace.js +17 -0
- package/dist/thread/player/playerglobal/flash/ui/ContextMenu.js +17 -0
- package/dist/thread/player/playerglobal/flash/ui/GameInput.js +19 -0
- package/dist/thread/player/playerglobal/flash/ui/Keyboard.js +27 -0
- package/dist/thread/player/playerglobal/flash/ui/Mouse.js +127 -0
- package/dist/thread/player/playerglobal/flash/ui/Multitouch.js +46 -0
- package/dist/thread/player/playerglobal/flash/utils/ByteArray.js +155 -0
- package/dist/thread/player/playerglobal/flash/utils/Timer.js +25 -0
- package/dist/thread/player/playerglobal/flash/xml/XMLDocument.js +74 -0
- package/dist/thread/player/playerglobal/index.js +224 -0
- package/dist/thread/player/playerglobal/libraries.js +10 -0
- package/dist/thread/player/playerglobal/playerglobal-library.js +22 -0
- package/dist/thread/player/playerglobal/toplevel.js +122 -0
- package/dist/thread/player/scripting/clipboard.js +146 -0
- package/dist/thread/player/scripting/code.js +900 -0
- package/dist/thread/player/scripting/evaluate.js +144 -0
- package/dist/thread/player/scripting/events.js +172 -0
- package/dist/thread/player/scripting/handover.js +182 -0
- package/dist/thread/player/scripting/lazy.js +38 -0
- package/dist/thread/player/scripting/lifecycle.js +272 -0
- package/dist/thread/player/scripting/loads.js +860 -0
- package/dist/thread/player/scripting/sha256.js +95 -0
- package/dist/thread/player/scripting/symbols.js +348 -0
- package/dist/thread/player/scripting/timers.js +434 -0
- package/dist/thread/player/scripting/workers.js +923 -0
- package/dist/thread/player/scripting.js +1018 -0
- package/dist/thread/player/stage.js +4 -0
- package/dist/thread/player/text/csm.js +113 -0
- package/dist/thread/player/text/css.js +167 -0
- package/dist/thread/player/text/fonts.js +97 -0
- package/dist/thread/player/text/layout.js +393 -0
- package/dist/thread/player/text/static.js +109 -0
- package/dist/thread/player/text/text.js +431 -0
- package/dist/thread/player/workers/thread.js +159 -0
- package/dist/thread/player/workers/wire.js +198 -0
- package/dist/thread/player-hosts/web-worker.js +19 -0
- package/dist/thread/runtime/avm1/activation.js +89 -0
- package/dist/thread/runtime/avm1/case.js +249 -0
- package/dist/thread/runtime/avm1/clips.js +334 -0
- package/dist/thread/runtime/avm1/control.js +280 -0
- package/dist/thread/runtime/avm1/errors.js +50 -0
- package/dist/thread/runtime/avm1/functions.js +249 -0
- package/dist/thread/runtime/avm1/globals/array.js +549 -0
- package/dist/thread/runtime/avm1/globals/broadcaster.js +131 -0
- package/dist/thread/runtime/avm1/globals/date.js +436 -0
- package/dist/thread/runtime/avm1/globals/global.js +344 -0
- package/dist/thread/runtime/avm1/globals/math.js +139 -0
- package/dist/thread/runtime/avm1/globals/number.js +93 -0
- package/dist/thread/runtime/avm1/globals/string.js +201 -0
- package/dist/thread/runtime/avm1/globals/timers.js +129 -0
- package/dist/thread/runtime/avm1/host.js +5 -0
- package/dist/thread/runtime/avm1/index.js +14 -0
- package/dist/thread/runtime/avm1/inheritance.js +132 -0
- package/dist/thread/runtime/avm1/numbers.js +298 -0
- package/dist/thread/runtime/avm1/objects.js +896 -0
- package/dist/thread/runtime/avm1/operators.js +170 -0
- package/dist/thread/runtime/avm1/realm.js +529 -0
- package/dist/thread/runtime/avm1/runtime.js +882 -0
- package/dist/thread/runtime/avm1/scope.js +385 -0
- package/dist/thread/runtime/avm1/urls.js +180 -0
- package/dist/thread/runtime/avm1/values.js +97 -0
- package/dist/thread/runtime/avm2/amf-classes.js +66 -0
- package/dist/thread/runtime/avm2/amf.js +801 -0
- package/dist/thread/runtime/avm2/array-conversion.js +100 -0
- package/dist/thread/runtime/avm2/builtin-library.js +21 -0
- package/dist/thread/runtime/avm2/cache-fill.js +86 -0
- package/dist/thread/runtime/avm2/classes.js +211 -0
- package/dist/thread/runtime/avm2/definitions.js +69 -0
- package/dist/thread/runtime/avm2/descriptors.js +5 -0
- package/dist/thread/runtime/avm2/dictionary-keys.js +295 -0
- package/dist/thread/runtime/avm2/domain-memory.js +75 -0
- package/dist/thread/runtime/avm2/domain.js +280 -0
- package/dist/thread/runtime/avm2/dynamic-properties.js +182 -0
- package/dist/thread/runtime/avm2/enumeration.js +393 -0
- package/dist/thread/runtime/avm2/errors.js +45 -0
- package/dist/thread/runtime/avm2/float-library.js +66 -0
- package/dist/thread/runtime/avm2/float.js +26 -0
- package/dist/thread/runtime/avm2/hooks.js +19 -0
- package/dist/thread/runtime/avm2/index.js +38 -0
- package/dist/thread/runtime/avm2/messages.js +177 -0
- package/dist/thread/runtime/avm2/method-factories.js +95 -0
- package/dist/thread/runtime/avm2/modules.js +105 -0
- package/dist/thread/runtime/avm2/names.js +248 -0
- package/dist/thread/runtime/avm2/natives/aliases.js +47 -0
- package/dist/thread/runtime/avm2/natives/array.js +390 -0
- package/dist/thread/runtime/avm2/natives/bytearray.js +1227 -0
- package/dist/thread/runtime/avm2/natives/case.js +88 -0
- package/dist/thread/runtime/avm2/natives/concurrent.js +199 -0
- package/dist/thread/runtime/avm2/natives/date.js +581 -0
- package/dist/thread/runtime/avm2/natives/define.js +130 -0
- package/dist/thread/runtime/avm2/natives/describe.js +351 -0
- package/dist/thread/runtime/avm2/natives/dictionary.js +12 -0
- package/dist/thread/runtime/avm2/natives/float-vector.js +81 -0
- package/dist/thread/runtime/avm2/natives/float.js +96 -0
- package/dist/thread/runtime/avm2/natives/index.js +64 -0
- package/dist/thread/runtime/avm2/natives/json.js +514 -0
- package/dist/thread/runtime/avm2/natives/number.js +162 -0
- package/dist/thread/runtime/avm2/natives/object.js +237 -0
- package/dist/thread/runtime/avm2/natives/proxy.js +75 -0
- package/dist/thread/runtime/avm2/natives/regexp.js +485 -0
- package/dist/thread/runtime/avm2/natives/shell-workers.js +404 -0
- package/dist/thread/runtime/avm2/natives/shell.js +557 -0
- package/dist/thread/runtime/avm2/natives/sort.js +377 -0
- package/dist/thread/runtime/avm2/natives/string.js +132 -0
- package/dist/thread/runtime/avm2/natives/sync.js +821 -0
- package/dist/thread/runtime/avm2/natives/toplevel.js +139 -0
- package/dist/thread/runtime/avm2/natives/vector-elements.js +46 -0
- package/dist/thread/runtime/avm2/natives/vector.js +406 -0
- package/dist/thread/runtime/avm2/natives/xml/access.js +633 -0
- package/dist/thread/runtime/avm2/natives/xml/build.js +291 -0
- package/dist/thread/runtime/avm2/natives/xml/chars.js +112 -0
- package/dist/thread/runtime/avm2/natives/xml/escape.js +38 -0
- package/dist/thread/runtime/avm2/natives/xml/names.js +204 -0
- package/dist/thread/runtime/avm2/natives/xml/node.js +272 -0
- package/dist/thread/runtime/avm2/natives/xml/operators.js +69 -0
- package/dist/thread/runtime/avm2/natives/xml/parser.js +356 -0
- package/dist/thread/runtime/avm2/natives/xml/strings.js +191 -0
- package/dist/thread/runtime/avm2/natives/xml/values.js +122 -0
- package/dist/thread/runtime/avm2/natives/xml/xml.js +645 -0
- package/dist/thread/runtime/avm2/number-strings.js +110 -0
- package/dist/thread/runtime/avm2/numbers.js +558 -0
- package/dist/thread/runtime/avm2/options.js +16 -0
- package/dist/thread/runtime/avm2/player-messages.js +550 -0
- package/dist/thread/runtime/avm2/property-cache.js +135 -0
- package/dist/thread/runtime/avm2/runtime.js +2644 -0
- package/dist/thread/runtime/avm2/traits.js +509 -0
- package/dist/thread/runtime/index.js +7 -0
- package/dist/web-worker.d.ts +2 -0
- package/dist/web-worker.d.ts.map +1 -0
- package/dist/web-worker.js +20 -0
- package/dist/web-worker.js.map +1 -0
- package/dist/websocket.d.ts +4 -0
- package/dist/websocket.d.ts.map +1 -0
- package/dist/websocket.js +27 -0
- package/dist/websocket.js.map +1 -0
- package/dist/workers.d.ts +35 -0
- package/dist/workers.d.ts.map +1 -0
- package/dist/workers.js +171 -0
- package/dist/workers.js.map +1 -0
- package/package.json +62 -3
- package/src/indexeddb.ts +227 -0
- package/src/node-worker.ts +13 -0
- package/src/node.ts +49 -0
- package/src/precompiled.ts +166 -0
- package/src/stage3d.ts +76 -0
- package/src/web-worker.ts +24 -0
- package/src/websocket.ts +32 -0
- package/src/workers.ts +255 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
// What happens to a display object with an AS3 object as it comes and
|
|
2
|
+
// goes: ADDED and ADDED_TO_STAGE as it is put on the display list, REMOVED
|
|
3
|
+
// and REMOVED_FROM_STAGE as it is taken off, and, off it, its life as an
|
|
4
|
+
// orphan, which plays on as Flash's does, for a while (docs/architecture/player.md,
|
|
5
|
+
// "Orphans").
|
|
6
|
+
import { avm2 } from "../../runtime/index.js";
|
|
7
|
+
import { Container, MovieClip, scriptWork } from "../display/display.js";
|
|
8
|
+
import { stopTimelineSoundsUnder } from "../media/sounds.js";
|
|
9
|
+
import { dispatchEvent, heard } from "./events.js";
|
|
10
|
+
export class Lifecycle {
|
|
11
|
+
s;
|
|
12
|
+
/**
|
|
13
|
+
* Clips taken off the display list, which play on as Flash's do: held
|
|
14
|
+
* weakly, as Ruffle holds them, so one nothing refers to stops as Flash's
|
|
15
|
+
* does once collected, and for ORPHAN_FRAMES at most. One the timeline
|
|
16
|
+
* took is kept for its frame only.
|
|
17
|
+
*/
|
|
18
|
+
orphans = new Map();
|
|
19
|
+
madeThisFrame = [];
|
|
20
|
+
/**
|
|
21
|
+
* The children whose removal is being told of, by the error Flash throws
|
|
22
|
+
* at a script that removes one again from a listener meanwhile: #2094
|
|
23
|
+
* while a script's removal tells of it, #2025 while the timeline's does.
|
|
24
|
+
*/
|
|
25
|
+
leaving = new Map();
|
|
26
|
+
constructor(s) {
|
|
27
|
+
this.s = s;
|
|
28
|
+
}
|
|
29
|
+
/** Display objects scripts made with `new` this frame: their first frame's script runs after everything else's, and they are orphans after. */
|
|
30
|
+
get fresh() {
|
|
31
|
+
return this.madeThisFrame;
|
|
32
|
+
}
|
|
33
|
+
/** Whether `d` is on the display list: under the stage. */
|
|
34
|
+
onStage(d) {
|
|
35
|
+
for (let o = d; o; o = o.parent) {
|
|
36
|
+
if (o === this.s.stage) {
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* `display` has a parent now: ADDED to it, bubbling, and, if it is on
|
|
44
|
+
* the display list, ADDED_TO_STAGE to it and each descendant, in tree
|
|
45
|
+
* order, as Flash dispatches them.
|
|
46
|
+
*/
|
|
47
|
+
added(display) {
|
|
48
|
+
this.orphans.delete(display.serial);
|
|
49
|
+
this.dispatch(display.object, "added", true);
|
|
50
|
+
if (this.onStage(display)) {
|
|
51
|
+
this.eachObject(display, (o) => this.dispatch(o, "addedToStage", false));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* The main SWF's root, on the stage before its constructor ran, once
|
|
56
|
+
* that has returned: ADDED and ADDED_TO_STAGE to it alone, as Flash and
|
|
57
|
+
* AIR tell it (measured in adl); what its constructor added to it was
|
|
58
|
+
* told as it was added. ADDED comes even to a root that its constructor
|
|
59
|
+
* took off the stage, ADDED_TO_STAGE only to one still on it after that.
|
|
60
|
+
*/
|
|
61
|
+
rootConstructed(root) {
|
|
62
|
+
this.dispatch(root.object, "added", true);
|
|
63
|
+
if (this.onStage(root)) {
|
|
64
|
+
this.dispatch(root.object, "addedToStage", false);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* `display` is about to lose its parent: REMOVED, bubbling, and
|
|
69
|
+
* REMOVED_FROM_STAGE through the subtree if it was on the display list.
|
|
70
|
+
* It then plays on as an orphan; the timeline's removal has it play its
|
|
71
|
+
* removal frame only, and takes the parent's property of its name away;
|
|
72
|
+
* a script that removes it meanwhile throws #2025, as Flash's does.
|
|
73
|
+
*/
|
|
74
|
+
removing(display, byTimeline = false) {
|
|
75
|
+
// Before the listeners, which may move it: the property to clear is the one of the parent
|
|
76
|
+
// that loses it, and one they put back on a list is no orphan (`added`).
|
|
77
|
+
const parent = display.parent?.object;
|
|
78
|
+
this.orphan(display, !byTimeline);
|
|
79
|
+
if (byTimeline) {
|
|
80
|
+
this.telling(display, 2025);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.tell(display);
|
|
84
|
+
}
|
|
85
|
+
if (byTimeline && parent && display.timelineNamed) {
|
|
86
|
+
const name = avm2.qname(avm2.publicNs, display.name);
|
|
87
|
+
if (this.s.rt.getProperty(parent, name) === display.object) {
|
|
88
|
+
this.s.rt.setProperty(parent, name, null);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* A script removes `display` from its parent: told of as `removing` does,
|
|
94
|
+
* and then taken from wherever a listener put it meanwhile, as Flash
|
|
95
|
+
* does. One whose removal is being told of already is not removed again:
|
|
96
|
+
* Flash throws, and the first removal goes on.
|
|
97
|
+
*/
|
|
98
|
+
remove(display) {
|
|
99
|
+
const error = this.leaving.get(display);
|
|
100
|
+
if (error !== undefined) {
|
|
101
|
+
throw this.s.rt.error(error === 2025 ? "ArgumentError" : "Error", error);
|
|
102
|
+
}
|
|
103
|
+
this.telling(display, 2094);
|
|
104
|
+
this.orphan(display);
|
|
105
|
+
display.parent?.removeChild(display);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* REMOVED and REMOVED_FROM_STAGE told of `display`; a script that
|
|
109
|
+
* removes it meanwhile is thrown `error`.
|
|
110
|
+
*/
|
|
111
|
+
telling(display, error) {
|
|
112
|
+
// Told of again inside its own telling: the outer one's error holds until it ends.
|
|
113
|
+
if (this.leaving.has(display)) {
|
|
114
|
+
this.tell(display);
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
this.leaving.set(display, error);
|
|
118
|
+
try {
|
|
119
|
+
this.tell(display);
|
|
120
|
+
}
|
|
121
|
+
finally {
|
|
122
|
+
this.leaving.delete(display);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
tell(display) {
|
|
126
|
+
this.dispatch(display.object, "removed", true);
|
|
127
|
+
if (this.onStage(display)) {
|
|
128
|
+
this.eachObject(display, (o) => this.dispatch(o, "removedFromStage", false));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* `display` is off the display list with an AS3 object that may play
|
|
133
|
+
* it, taken off by a script, or by the timeline, which keeps it for its
|
|
134
|
+
* frame only, not `keep`.
|
|
135
|
+
*/
|
|
136
|
+
orphan(display, keep = true) {
|
|
137
|
+
if (display.object && !this.orphans.has(display.serial)) {
|
|
138
|
+
this.orphans.set(display.serial, { ref: display.ref, keep, since: this.s.frames });
|
|
139
|
+
scriptWork.changes++;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* A script made `display` with `new`. Flash runs its first frame's
|
|
144
|
+
* script at the end of this frame's, in the order made, has it sit out
|
|
145
|
+
* the next frame's advance, and plays it on from there, on the display
|
|
146
|
+
* list or as an orphan.
|
|
147
|
+
*/
|
|
148
|
+
made(display) {
|
|
149
|
+
this.madeThisFrame.push(display);
|
|
150
|
+
scriptWork.changes++;
|
|
151
|
+
if (display instanceof MovieClip) {
|
|
152
|
+
display.fresh = true;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/** The orphans still there, newest first, as Flash runs their frames. */
|
|
156
|
+
orphanRoots() {
|
|
157
|
+
const roots = [];
|
|
158
|
+
for (const [serial, orphan] of this.orphans) {
|
|
159
|
+
const display = orphan.ref.deref();
|
|
160
|
+
if (!display) {
|
|
161
|
+
this.orphans.delete(serial);
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
roots.push(display);
|
|
165
|
+
}
|
|
166
|
+
return roots.sort((a, b) => b.serial - a.serial);
|
|
167
|
+
}
|
|
168
|
+
/** Whether `display` or anything under it listens for a frame's broadcast events. */
|
|
169
|
+
hearsFrames(display) {
|
|
170
|
+
if (display.object) {
|
|
171
|
+
for (const targets of this.s.broadcasts.values()) {
|
|
172
|
+
if (targets.has(display.object)) {
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const children = display.frameChildren;
|
|
178
|
+
for (let i = 0; i < children.length; i++) {
|
|
179
|
+
if (this.hearsFrames(children[i])) {
|
|
180
|
+
return true;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Stop `display` and everything under it for good, as unloadAndStop
|
|
187
|
+
* does: timelines stopped, frame broadcasts no longer heard, no orphan.
|
|
188
|
+
*/
|
|
189
|
+
stopAll(display) {
|
|
190
|
+
this.orphans.delete(display.serial);
|
|
191
|
+
stopTimelineSoundsUnder(this.s, display);
|
|
192
|
+
const stop = (o) => {
|
|
193
|
+
if (o instanceof MovieClip) {
|
|
194
|
+
o.playing = false;
|
|
195
|
+
}
|
|
196
|
+
if (o.object) {
|
|
197
|
+
for (const targets of this.s.broadcasts.values()) {
|
|
198
|
+
targets.delete(o.object);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
if (o instanceof Container) {
|
|
202
|
+
for (const child of o.children) {
|
|
203
|
+
stop(child);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
stop(display);
|
|
208
|
+
}
|
|
209
|
+
/** An event of `type` from `target`, if it has one and anything hears it there. */
|
|
210
|
+
dispatch(target, type, bubbles) {
|
|
211
|
+
if (target && heard(target, type)) {
|
|
212
|
+
dispatchEvent(this.s, target, this.s.event(type, bubbles));
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
eachObject(display, f) {
|
|
216
|
+
if (display.object) {
|
|
217
|
+
f(display.object);
|
|
218
|
+
}
|
|
219
|
+
if (display instanceof Container) {
|
|
220
|
+
for (const child of [...display.children]) {
|
|
221
|
+
this.eachObject(child, f);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* The frame's scripts have run: the orphans whose time is up stop, and
|
|
227
|
+
* what scripts made and left off the display list is an orphan now.
|
|
228
|
+
*/
|
|
229
|
+
afterScripts() {
|
|
230
|
+
// What the timeline took off this frame has had its frame; it stops here. So
|
|
231
|
+
// does one that has played ORPHAN_FRAMES off the list, but for one that
|
|
232
|
+
// listens for a frame's events, which hold it in Flash too.
|
|
233
|
+
for (const [serial, orphan] of this.orphans) {
|
|
234
|
+
if (!orphan.keep) {
|
|
235
|
+
this.orphans.delete(serial);
|
|
236
|
+
continue;
|
|
237
|
+
}
|
|
238
|
+
if (this.s.frames - orphan.since < ORPHAN_FRAMES) {
|
|
239
|
+
continue;
|
|
240
|
+
}
|
|
241
|
+
const display = orphan.ref.deref();
|
|
242
|
+
if (display && this.hearsFrames(display)) {
|
|
243
|
+
orphan.since = this.s.frames;
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
this.orphans.delete(serial);
|
|
247
|
+
if (display) {
|
|
248
|
+
stopTimelineSoundsUnder(this.s, display);
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
// What scripts made this frame and left off the display list plays on as an orphan.
|
|
252
|
+
const made = this.madeThisFrame.splice(0);
|
|
253
|
+
if (made.length > 0) {
|
|
254
|
+
scriptWork.changes++;
|
|
255
|
+
}
|
|
256
|
+
for (const display of made) {
|
|
257
|
+
if (!display.parent) {
|
|
258
|
+
this.orphan(display);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* How many frames an orphan plays before it stops. Flash frees one nothing
|
|
265
|
+
* refers to almost at once, by reference counting; the browser's collector
|
|
266
|
+
* may take minutes, through which a game's removed characters would play
|
|
267
|
+
* on by the thousand, their scripts throwing for a stage they lack. The
|
|
268
|
+
* player cannot see what a script holds, so one held stops too, unlike
|
|
269
|
+
* Flash's, and plays on from there if put back; one that listens for a
|
|
270
|
+
* frame's events, which hold it in Flash as well, plays on.
|
|
271
|
+
*/
|
|
272
|
+
const ORPHAN_FRAMES = 120;
|