@swf2es/player-hosts 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 +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,79 @@
|
|
|
1
|
+
/** The page's ExternalInterface, and the SWFs that call out to the page. */
|
|
2
|
+
export class ExternalCalls {
|
|
3
|
+
movie;
|
|
4
|
+
host;
|
|
5
|
+
/** Each SWF's blocks, by which a function's or block's code is known as that SWF's. */
|
|
6
|
+
codeSwfs = new WeakMap();
|
|
7
|
+
/** The URLs of every SWF that has had code to run, unloaded ones too. */
|
|
8
|
+
codeUrls = new Set();
|
|
9
|
+
constructor(movie, host) {
|
|
10
|
+
this.movie = movie;
|
|
11
|
+
this.host = host;
|
|
12
|
+
}
|
|
13
|
+
get realm() {
|
|
14
|
+
return this.movie.realm;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* The page's ExternalInterface, where it lets the code calling use it:
|
|
18
|
+
* the SWF whose block or function is running, known by its code; where
|
|
19
|
+
* a native is called with no code of a SWF's running, as a timer, a
|
|
20
|
+
* network callback or the page's call calls one straight, every SWF that
|
|
21
|
+
* has run code so far must be allowed, as AS3's natives ask when they
|
|
22
|
+
* cannot tell their caller (hosts.ts's allows). The clip a function was
|
|
23
|
+
* made in is not enough: a load can put another SWF in it.
|
|
24
|
+
*/
|
|
25
|
+
externalBridge() {
|
|
26
|
+
const host = this.host;
|
|
27
|
+
const allows = host?.allows;
|
|
28
|
+
if (host === null || allows === undefined) {
|
|
29
|
+
return host;
|
|
30
|
+
}
|
|
31
|
+
return this.callerUrls().every((url) => allows.call(host, url)) ? host : null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The URL of the SWF whose code is running, known by its blocks; where
|
|
35
|
+
* no SWF's code is running, as a timer, a network callback or the page
|
|
36
|
+
* calls a native straight, every URL of a SWF that has had code.
|
|
37
|
+
*/
|
|
38
|
+
callerUrls() {
|
|
39
|
+
// A unit's code is its SWF's blocks'.
|
|
40
|
+
const code = this.movie.realm.current?.code ?? [];
|
|
41
|
+
const caller = this.codeSwfs.get(this.movie.realm.units.get(code)?.blocks[0] ?? code);
|
|
42
|
+
return caller !== undefined ? [caller.url] : [...this.codeUrls];
|
|
43
|
+
}
|
|
44
|
+
/** `swf`'s code compiled: its blocks known as its own, and its URL among those that ran code. */
|
|
45
|
+
ownCode(swf) {
|
|
46
|
+
for (const block of swf.blocks) {
|
|
47
|
+
this.codeSwfs.set(block, swf);
|
|
48
|
+
}
|
|
49
|
+
if (swf.blocks.length > 0) {
|
|
50
|
+
this.codeUrls.add(swf.url);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* `body`, the page's call into a callback, run between frames or inside
|
|
55
|
+
* a call out, in the root's activation as a timer's callback runs, and
|
|
56
|
+
* what it queued run after it: what it returned, undefined where it did
|
|
57
|
+
* not run or threw.
|
|
58
|
+
*/
|
|
59
|
+
callIn(body) {
|
|
60
|
+
const movie = this.movie;
|
|
61
|
+
const root = movie.root;
|
|
62
|
+
const cx = root === null || movie.halted || !movie.loaded ? null : movie.activationOf(root);
|
|
63
|
+
if (cx === null) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
let result;
|
|
67
|
+
movie.timers.begin();
|
|
68
|
+
try {
|
|
69
|
+
movie.rt.call(cx, () => {
|
|
70
|
+
result = body();
|
|
71
|
+
});
|
|
72
|
+
movie.queue.run();
|
|
73
|
+
}
|
|
74
|
+
finally {
|
|
75
|
+
movie.timers.end();
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
// An AVM1 movie's focus, as Ruffle's FocusTracker keeps it: what has it,
|
|
2
|
+
// whether its highlight shows, and the events a move of it sends. Its
|
|
3
|
+
// tab order, as Ruffle's (https://github.com/ruffle-rs/ruffle)
|
|
4
|
+
// core/src/focus_tracker.rs and display_object/container.rs fill it: MIT OR
|
|
5
|
+
// Apache-2.0, Copyright (c) 2018-2022 Ruffle LLC and Ruffle contributors.
|
|
6
|
+
// The display list is walked as it is drawn, each object before what is in
|
|
7
|
+
// it; a hidden object is left out with what is in it, and so is what is in
|
|
8
|
+
// a clip whose tabChildren is false. Once any object has a tabIndex, the
|
|
9
|
+
// order is by tabIndex, objects of equal ones as walked, and those without
|
|
10
|
+
// one are left out; otherwise it is by place, 6 × y + x of each object's
|
|
11
|
+
// top left corner on the stage in twips, of which only the first walked at
|
|
12
|
+
// a place is kept, as Ruffle keeps it.
|
|
13
|
+
import { ClipEvent } from "../../format/index.js";
|
|
14
|
+
import { avm1 } from "../../runtime/index.js";
|
|
15
|
+
import { boundsIn } from "../display/bounds.js";
|
|
16
|
+
import { ButtonObject, CONTENT, Container, MovieClip, TextObject, } from "../display/display.js";
|
|
17
|
+
import { nativeOf } from "./globals/MovieClip.js";
|
|
18
|
+
import { stateOf } from "./globals/TextField.js";
|
|
19
|
+
/** The objects Tab moves the focus through, in order, from `root`, on `stage`. */
|
|
20
|
+
function tabOrder(root, stage, host) {
|
|
21
|
+
const found = [];
|
|
22
|
+
let custom = false;
|
|
23
|
+
const walk = (d) => {
|
|
24
|
+
if (!d.visible) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (d !== root && tabbable(d, host)) {
|
|
28
|
+
const index = host.tabIndex(d);
|
|
29
|
+
custom ||= index !== undefined;
|
|
30
|
+
found.push({ d, index });
|
|
31
|
+
}
|
|
32
|
+
// A button's states are no part of the order.
|
|
33
|
+
if (d instanceof Container && !(d instanceof ButtonObject) && host.tabChildren(d)) {
|
|
34
|
+
for (const child of d.children) {
|
|
35
|
+
walk(child);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
walk(root);
|
|
40
|
+
if (custom) {
|
|
41
|
+
// Array.prototype.sort is stable: equal indices keep the walk's order.
|
|
42
|
+
return found
|
|
43
|
+
.filter((t) => t.index !== undefined)
|
|
44
|
+
.sort((a, b) => a.index - b.index)
|
|
45
|
+
.map((t) => t.d);
|
|
46
|
+
}
|
|
47
|
+
const placed = found.map((t) => ({ d: t.d, key: placeKey(t.d, stage) }));
|
|
48
|
+
placed.sort((a, b) => a.key - b.key);
|
|
49
|
+
return placed.filter((p, i) => i === 0 || p.key !== placed[i - 1].key).map((p) => p.d);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Whether Tab reaches `d`: a button, or an input field, unless its
|
|
53
|
+
* tabEnabled is false; a clip whose tabEnabled is true, or, where it is not
|
|
54
|
+
* set, one in button mode or with a tabIndex.
|
|
55
|
+
*/
|
|
56
|
+
function tabbable(d, host) {
|
|
57
|
+
if (d instanceof TextObject) {
|
|
58
|
+
return d.type === "input" && (host.tabEnabled(d) ?? true);
|
|
59
|
+
}
|
|
60
|
+
if (d instanceof ButtonObject) {
|
|
61
|
+
return host.tabEnabled(d) ?? true;
|
|
62
|
+
}
|
|
63
|
+
if (d instanceof MovieClip) {
|
|
64
|
+
return host.tabEnabled(d) ?? (host.buttonMode(d) || host.tabIndex(d) !== undefined);
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
/** 6 × y + x of `d`'s top left corner on the stage, in twips: a button's hit area's. */
|
|
69
|
+
function placeKey(d, stage) {
|
|
70
|
+
const area = d instanceof ButtonObject ? d.hitTestState : null;
|
|
71
|
+
const parent = area?.parent ?? null;
|
|
72
|
+
if (area) {
|
|
73
|
+
area.parent = d;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
const r = boundsIn(area ?? d, stage, stage, true);
|
|
77
|
+
return 6 * Math.round(r.yMin * 20) + Math.round(r.xMin * 20);
|
|
78
|
+
}
|
|
79
|
+
finally {
|
|
80
|
+
if (area) {
|
|
81
|
+
area.parent = parent;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** The movie's focus: the object that has it, its highlight, and Tab's and Enter's moves of it. */
|
|
86
|
+
export class FocusTracker {
|
|
87
|
+
movie;
|
|
88
|
+
/** `_global.Selection`, whose listeners hear the focus move. */
|
|
89
|
+
selectionFace = null;
|
|
90
|
+
/** The button or clip with the focus. */
|
|
91
|
+
focusedObject = null;
|
|
92
|
+
/**
|
|
93
|
+
* Whether keyboard navigation shows the focus (Ruffle's highlight): a
|
|
94
|
+
* focused object's onKeyDown and onKeyUp fire while it is not inactive,
|
|
95
|
+
* and Enter and Space press it while it is visible.
|
|
96
|
+
*/
|
|
97
|
+
highlight = "inactive";
|
|
98
|
+
constructor(movie) {
|
|
99
|
+
this.movie = movie;
|
|
100
|
+
}
|
|
101
|
+
get focused() {
|
|
102
|
+
return this.focusedObject;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Focus `d`, or none: where it changes, the one that had it hears
|
|
106
|
+
* onKillFocus(new), `d` onSetFocus(old), then Selection's listeners
|
|
107
|
+
* onSetFocus(old, new), at once, not queued (Ruffle's FocusTracker). The
|
|
108
|
+
* highlight shows where `d` may show it.
|
|
109
|
+
*/
|
|
110
|
+
focus(d) {
|
|
111
|
+
const old = this.focusedObject;
|
|
112
|
+
this.focusedObject = d;
|
|
113
|
+
this.highlight =
|
|
114
|
+
d === null
|
|
115
|
+
? "inactive"
|
|
116
|
+
: !(d instanceof TextObject) && this.highlightable(d)
|
|
117
|
+
? "visible"
|
|
118
|
+
: "hidden";
|
|
119
|
+
if (d === old) {
|
|
120
|
+
this.selectFocused();
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
// A field that loses the focus loses its selection.
|
|
124
|
+
if (old instanceof TextObject) {
|
|
125
|
+
old.focused = false;
|
|
126
|
+
stateOf(old).selected = false;
|
|
127
|
+
old.invalidate(CONTENT);
|
|
128
|
+
}
|
|
129
|
+
if (d instanceof TextObject) {
|
|
130
|
+
d.focused = true;
|
|
131
|
+
d.invalidate(CONTENT);
|
|
132
|
+
}
|
|
133
|
+
// Each object's method in an activation of its own, as its other event methods run.
|
|
134
|
+
const version = this.movie.version;
|
|
135
|
+
const oldFace = old?.avm1 ?? null;
|
|
136
|
+
const newFace = d?.avm1 ?? null;
|
|
137
|
+
this.movie.timers.begin();
|
|
138
|
+
try {
|
|
139
|
+
const oldCx = old === null ? null : this.movie.activationOf(old);
|
|
140
|
+
if (oldFace !== null && oldCx !== null) {
|
|
141
|
+
this.movie.rt.callMethod(oldCx, oldFace, "onKillFocus", [newFace], version);
|
|
142
|
+
}
|
|
143
|
+
const newCx = d === null ? null : this.movie.activationOf(d);
|
|
144
|
+
if (newFace !== null && newCx !== null) {
|
|
145
|
+
this.movie.rt.callMethod(newCx, newFace, "onSetFocus", [oldFace], version);
|
|
146
|
+
}
|
|
147
|
+
const selection = this.selectionFace;
|
|
148
|
+
const cx = this.movie.root !== null ? this.movie.activationOf(this.movie.root) : null;
|
|
149
|
+
if (selection !== null && cx !== null) {
|
|
150
|
+
this.movie.rt.call(cx, () => {
|
|
151
|
+
avm1.broadcastMessage(selection, "onSetFocus", [oldFace, newFace], version);
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
this.movie.timers.end();
|
|
157
|
+
}
|
|
158
|
+
this.selectFocused();
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* A field given the focus, again too, has all its text selected, after
|
|
162
|
+
* the focus's events, which see none (Ruffle's update_edittext_selection;
|
|
163
|
+
* the corpus's `selection` and `edittext_programmatic_focus`).
|
|
164
|
+
*/
|
|
165
|
+
selectFocused() {
|
|
166
|
+
const d = this.focusedObject;
|
|
167
|
+
if (d instanceof TextObject) {
|
|
168
|
+
stateOf(d).selected = true;
|
|
169
|
+
d.select(0, d.model.text.length);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/** Whether a script may focus `d`: a button, or a clip below the root in button mode or with focusEnabled true. */
|
|
173
|
+
focusable(d) {
|
|
174
|
+
// A field, selectable or not, as a script may focus any (Ruffle).
|
|
175
|
+
if (d instanceof ButtonObject || d instanceof TextObject) {
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
return (d instanceof MovieClip &&
|
|
179
|
+
d !== this.movie.root &&
|
|
180
|
+
(this.movie.input.buttonMode(d) ||
|
|
181
|
+
avm1.toBoolean(this.movie.input.read(d, "focusEnabled"), this.movie.version)));
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Whether the focus shows on `d`: not the root, something drawn, and its
|
|
185
|
+
* `_focusrect`, from SWF 6 its own where it has one, else the stage's.
|
|
186
|
+
*/
|
|
187
|
+
highlightable(d) {
|
|
188
|
+
if (d === this.movie.root || d.parent === null) {
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
const own = this.movie.version >= 6 ? (nativeOf(d)?.focusRect ?? null) : null;
|
|
192
|
+
if (!(own ?? this.movie.focusRect)) {
|
|
193
|
+
return false;
|
|
194
|
+
}
|
|
195
|
+
// A button's by its hit area, which it is tested by whatever it shows.
|
|
196
|
+
const area = d instanceof ButtonObject ? d.hitTestState : null;
|
|
197
|
+
const parent = area?.parent ?? null;
|
|
198
|
+
if (area) {
|
|
199
|
+
area.parent = d;
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
const r = boundsIn(area ?? d, d.parent, null, true);
|
|
203
|
+
return r.xMax > r.xMin || r.yMax > r.yMin;
|
|
204
|
+
}
|
|
205
|
+
finally {
|
|
206
|
+
if (area) {
|
|
207
|
+
area.parent = parent;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
tabEnabled(d) {
|
|
212
|
+
const value = this.movie.input.read(d, "tabEnabled");
|
|
213
|
+
return value === undefined ? undefined : avm1.toBoolean(value, this.movie.version);
|
|
214
|
+
}
|
|
215
|
+
tabChildren(d) {
|
|
216
|
+
const value = this.movie.input.read(d, "tabChildren");
|
|
217
|
+
return value === undefined || avm1.toBoolean(value, this.movie.version);
|
|
218
|
+
}
|
|
219
|
+
buttonMode(clip) {
|
|
220
|
+
return this.movie.input.buttonMode(clip);
|
|
221
|
+
}
|
|
222
|
+
/** A tabIndex as an int: a number's or a boolean's, any other value's the least; -1 is none (Ruffle). */
|
|
223
|
+
tabIndex(d) {
|
|
224
|
+
const value = this.movie.input.read(d, "tabIndex");
|
|
225
|
+
if (value === undefined || value === null) {
|
|
226
|
+
return undefined;
|
|
227
|
+
}
|
|
228
|
+
const index = typeof value === "number" || typeof value === "boolean"
|
|
229
|
+
? avm1.toNumber(value, this.movie.version) | 0
|
|
230
|
+
: -2147483648;
|
|
231
|
+
return index === -1 ? undefined : index;
|
|
232
|
+
}
|
|
233
|
+
/** Tab, or Shift+Tab: the focus to the next object in the tab order, or the one before, round. */
|
|
234
|
+
tab(reverse) {
|
|
235
|
+
const root = this.movie.root;
|
|
236
|
+
const stage = root?.parent;
|
|
237
|
+
if (!(root instanceof MovieClip) || !stage) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
const order = tabOrder(root, stage, this);
|
|
241
|
+
if (order.length === 0) {
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
const at = this.focusedObject === null ? -1 : order.indexOf(this.focusedObject);
|
|
245
|
+
const step = reverse ? order.length - 1 : 1;
|
|
246
|
+
const next = at < 0 ? (reverse ? order.length - 1 : 0) : (at + step) % order.length;
|
|
247
|
+
this.focus(order[next]);
|
|
248
|
+
return true;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Enter or Space on what has the focus, where the highlight shows: a press
|
|
252
|
+
* and a release of it. Whether it was pressed, the key then the SWF's.
|
|
253
|
+
*/
|
|
254
|
+
activate() {
|
|
255
|
+
const d = this.focusedObject;
|
|
256
|
+
if (this.highlight !== "visible" ||
|
|
257
|
+
d === null ||
|
|
258
|
+
this.movie.removed(d) ||
|
|
259
|
+
!this.movie.input.flag(d, "enabled")) {
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
this.movie.input.buttonDispatch(d, ClipEvent.press);
|
|
263
|
+
this.movie.input.buttonDispatch(d, ClipEvent.release);
|
|
264
|
+
return true;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* The pointer's input, which hides the focus's highlight until Tab moves
|
|
268
|
+
* the focus again: a left press always, and, below SWF 9, any press,
|
|
269
|
+
* release or move.
|
|
270
|
+
*/
|
|
271
|
+
pointerInput(type, button) {
|
|
272
|
+
const left = button === 0;
|
|
273
|
+
if ((type === "down" && left) ||
|
|
274
|
+
(this.movie.version < 9 && (left || button === 2 || type === "move"))) {
|
|
275
|
+
this.highlight = "inactive";
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|