@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,113 @@
|
|
|
1
|
+
// Advanced anti-aliasing's (Saffron's) cutoffs: Flash draws a glyph of an
|
|
2
|
+
// advanced field with each pixel's coverage a ramp over its signed
|
|
3
|
+
// distance to the outline, in pixels, inside positive, from 0 at the
|
|
4
|
+
// outside cutoff to 1 at the inside one. The cutoffs come from a table
|
|
5
|
+
// by the size in pixels on the screen, the font's CSM hint (its
|
|
6
|
+
// DefineFontAlignZones; none is thin) and whether the text is light or
|
|
7
|
+
// dark, linear between a table's sizes and flat past its ends; thickness
|
|
8
|
+
// and sharpness then move them, and TextRenderer's
|
|
9
|
+
// setAdvancedAntiAliasingTable puts a table of a font's own in place of
|
|
10
|
+
// both colours'.
|
|
11
|
+
//
|
|
12
|
+
// The tables were measured in adl (AIR 51), from the ramps across the
|
|
13
|
+
// edges of a block glyph drawn at each size from 4 to 96 pixels: the
|
|
14
|
+
// sizes here are where the ramp's ends stop being one straight line, to
|
|
15
|
+
// within 0.004 of a pixel.
|
|
16
|
+
const table = (...entries) => entries.flat();
|
|
17
|
+
/** By CSM hint, thin, medium and thick: light text's table, then dark text's. */
|
|
18
|
+
const DEFAULTS = [
|
|
19
|
+
[
|
|
20
|
+
table([8, 0.081, -0.82], [12, 0.029, -0.821], [16, 0.127, -0.813], [26, 0.333, -0.852], [27, 0.349, -0.854]),
|
|
21
|
+
table([8, 0.255, -0.528], [12, 0.206, -0.441], [13, 0.234, -0.439], [16, 0.276, -0.469], [26, 0.398, -0.591], [27, 0.407, -0.601]),
|
|
22
|
+
],
|
|
23
|
+
[
|
|
24
|
+
table([8, 0.08, -0.671], [12, 0.309, -0.54], [16, 0.445, -0.492], [20, 0.525, -0.513], [26, 0.645, -0.54], [27, 0.656, -0.541]),
|
|
25
|
+
table([8, 0.442, -0.439],
|
|
26
|
+
// biome-ignore lint/suspicious/noApproximativeNumericConstant: measured, not log10(e)
|
|
27
|
+
[10, 0.486, -0.434], [11, 0.515, -0.428], [12, 0.566, -0.421], [18, 0.57, -0.422], [27, 0.619, -0.469]),
|
|
28
|
+
],
|
|
29
|
+
[
|
|
30
|
+
table([8, 0.18, -0.571], [12, 0.46, -0.39], [16, 0.526, -0.415], [26, 0.649, -0.536], [27, 0.656, -0.541]),
|
|
31
|
+
table([8, 0.566, -0.42], [16, 0.567, -0.419], [27, 0.619, -0.469]),
|
|
32
|
+
],
|
|
33
|
+
];
|
|
34
|
+
/**
|
|
35
|
+
* Tables set by TextRenderer.setAdvancedAntiAliasingTable, by font name
|
|
36
|
+
* and style; adl uses one for light and dark text alike, whichever
|
|
37
|
+
* colour type it was set for. TextRenderer's settings are the player's,
|
|
38
|
+
* not a SWF's: they are kept for the page, as Flash keeps them for its
|
|
39
|
+
* process.
|
|
40
|
+
*/
|
|
41
|
+
const custom = new Map();
|
|
42
|
+
const styleKey = (name, bold, italic) => `${name}\u0000${bold ? (italic ? "boldItalic" : "bold") : italic ? "italic" : "regular"}`;
|
|
43
|
+
/**
|
|
44
|
+
* Set a font's own table, entries of size, inside and outside cutoff, in
|
|
45
|
+
* any order; none takes it away. Text drawn by it before is drawn by it
|
|
46
|
+
* once drawn again. An entry with NaN or an infinity in it is left out,
|
|
47
|
+
* as the shader could make nothing of it.
|
|
48
|
+
*/
|
|
49
|
+
export function setCsmTable(name, style, entries) {
|
|
50
|
+
const key = `${name}\u0000${style}`;
|
|
51
|
+
const usable = entries.filter((entry) => entry.every(Number.isFinite));
|
|
52
|
+
if (usable.length === 0) {
|
|
53
|
+
custom.delete(key);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
usable.sort((a, b) => a[0] - b[0]);
|
|
57
|
+
custom.set(key, usable.flat());
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Whether Flash takes a colour, 0xRRGGBB, for light text: its luma,
|
|
62
|
+
* 30:59:11, over 200 of 255. It is the colour as drawn, under the
|
|
63
|
+
* object's colour transform. This and cutoffs mirror what
|
|
64
|
+
* the renderer's glyph program (@swf2es/render's webgl/programs.ts) does
|
|
65
|
+
* in GLSL, which draws by it: a
|
|
66
|
+
* change to one is a change to the other.
|
|
67
|
+
*/
|
|
68
|
+
export function isLight(color) {
|
|
69
|
+
return 30 * ((color >> 16) & 0xff) + 59 * ((color >> 8) & 0xff) + 11 * (color & 0xff) > 20000;
|
|
70
|
+
}
|
|
71
|
+
/** The tables a font's text is drawn by, light and dark. */
|
|
72
|
+
export function csmTables(font) {
|
|
73
|
+
const own = custom.size > 0 ? custom.get(styleKey(font.name, font.bold, font.italic)) : undefined;
|
|
74
|
+
if (own) {
|
|
75
|
+
return [own, own];
|
|
76
|
+
}
|
|
77
|
+
return DEFAULTS[Math.min(2, Math.max(0, font.csmHint ?? 0))];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* The cutoffs at `ppem` pixels to the em, under `thickness` (-200 to
|
|
81
|
+
* 200) and `sharpness` (-400 to 400), into `out` as inside, outside: each
|
|
82
|
+
* moves them by a fiftieth of a pixel per pixel of size at its end of its
|
|
83
|
+
* range, thickness both outward, sharpness the two together; met, they
|
|
84
|
+
* stay where they met. The renderer's glyph program does the same per glyph.
|
|
85
|
+
*/
|
|
86
|
+
export function cutoffs(table, ppem, thickness, sharpness, out) {
|
|
87
|
+
let inside = table[1];
|
|
88
|
+
let outside = table[2];
|
|
89
|
+
if (ppem >= table[table.length - 3]) {
|
|
90
|
+
inside = table[table.length - 2];
|
|
91
|
+
outside = table[table.length - 1];
|
|
92
|
+
}
|
|
93
|
+
else if (ppem > table[0]) {
|
|
94
|
+
for (let i = 3; i < table.length; i += 3) {
|
|
95
|
+
if (ppem <= table[i]) {
|
|
96
|
+
const t = (ppem - table[i - 3]) / (table[i] - table[i - 3]);
|
|
97
|
+
inside = table[i - 2] + (table[i + 1] - table[i - 2]) * t;
|
|
98
|
+
outside = table[i - 1] + (table[i + 2] - table[i - 1]) * t;
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
const unit = 0.0001 * ppem;
|
|
104
|
+
const t = Math.max(-200, Math.min(200, thickness));
|
|
105
|
+
const s = Math.max(-400, Math.min(400, sharpness));
|
|
106
|
+
inside -= unit * (t + s / 2);
|
|
107
|
+
outside -= unit * (t - s / 2);
|
|
108
|
+
if (inside < outside) {
|
|
109
|
+
inside = outside = (inside + outside) / 2;
|
|
110
|
+
}
|
|
111
|
+
out[0] = inside;
|
|
112
|
+
out[1] = outside;
|
|
113
|
+
}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
// The CSS that StyleSheet.parseCSS reads, as Flash reads it: selectors
|
|
2
|
+
// before a block, properties name: value inside, comments skipped. Flash
|
|
3
|
+
// finds few things wrong, and on any of them the whole sheet is ignored
|
|
4
|
+
// (Ruffle's CssStream, which its corpus checks against Flash).
|
|
5
|
+
const WHITESPACE = " \n\r\t";
|
|
6
|
+
/** Each selector's properties, names as written; null for a sheet Flash rejects. */
|
|
7
|
+
export function parseCss(input) {
|
|
8
|
+
let pos = 0;
|
|
9
|
+
const peek = () => input[pos];
|
|
10
|
+
const skipComment = () => {
|
|
11
|
+
if (input.startsWith("/*", pos)) {
|
|
12
|
+
pos += 2;
|
|
13
|
+
while (!input.startsWith("*/", pos)) {
|
|
14
|
+
pos++;
|
|
15
|
+
if (pos >= input.length) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
pos += 2;
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
};
|
|
24
|
+
const skip = () => {
|
|
25
|
+
let found = false;
|
|
26
|
+
while (skipComment() || (pos < input.length && WHITESPACE.includes(input[pos]))) {
|
|
27
|
+
if (pos < input.length && WHITESPACE.includes(input[pos])) {
|
|
28
|
+
pos++;
|
|
29
|
+
}
|
|
30
|
+
found = true;
|
|
31
|
+
}
|
|
32
|
+
return found;
|
|
33
|
+
};
|
|
34
|
+
const until = (stops) => {
|
|
35
|
+
const start = pos;
|
|
36
|
+
while (pos < input.length && !stops.includes(input[pos])) {
|
|
37
|
+
pos++;
|
|
38
|
+
}
|
|
39
|
+
return input.slice(start, pos);
|
|
40
|
+
};
|
|
41
|
+
const selectors = () => {
|
|
42
|
+
const out = [];
|
|
43
|
+
for (;;) {
|
|
44
|
+
skip();
|
|
45
|
+
const name = until("{, \n\r\t");
|
|
46
|
+
if (name) {
|
|
47
|
+
out.push(name);
|
|
48
|
+
}
|
|
49
|
+
skip();
|
|
50
|
+
const next = peek();
|
|
51
|
+
if (next === "{") {
|
|
52
|
+
pos++;
|
|
53
|
+
if (!out.length) {
|
|
54
|
+
out.push("");
|
|
55
|
+
}
|
|
56
|
+
return out;
|
|
57
|
+
}
|
|
58
|
+
if (next !== ",") {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
pos++;
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
const properties = () => {
|
|
65
|
+
const out = new Map();
|
|
66
|
+
for (;;) {
|
|
67
|
+
skip();
|
|
68
|
+
if (peek() === "}") {
|
|
69
|
+
pos++;
|
|
70
|
+
return out;
|
|
71
|
+
}
|
|
72
|
+
if (peek() === undefined) {
|
|
73
|
+
return out;
|
|
74
|
+
}
|
|
75
|
+
// Spaces before a name are skipped, after it kept, and within it an error.
|
|
76
|
+
const start = pos;
|
|
77
|
+
let name = until(": \n\r\t");
|
|
78
|
+
if (skip()) {
|
|
79
|
+
if (peek() === ":") {
|
|
80
|
+
name = input.slice(start, pos);
|
|
81
|
+
}
|
|
82
|
+
else if (peek() !== undefined) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (peek() !== ":") {
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
pos++;
|
|
90
|
+
skip();
|
|
91
|
+
const valueStart = pos;
|
|
92
|
+
let value = until(";:}");
|
|
93
|
+
for (;;) {
|
|
94
|
+
const next = peek();
|
|
95
|
+
if (next === ":") {
|
|
96
|
+
// A colon in a value ends it at the line's end, if it has one.
|
|
97
|
+
pos = valueStart;
|
|
98
|
+
const line = until("\n\r");
|
|
99
|
+
if (peek() !== undefined) {
|
|
100
|
+
pos++;
|
|
101
|
+
out.set(name, line);
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
pos = valueStart;
|
|
105
|
+
value = until(";}");
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (next === ";") {
|
|
109
|
+
pos++;
|
|
110
|
+
out.set(name, value);
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
if (next === "}") {
|
|
114
|
+
pos++;
|
|
115
|
+
const end = value.search(/[\n\r]/);
|
|
116
|
+
out.set(name, end < 0 ? value : value.slice(0, end));
|
|
117
|
+
return out;
|
|
118
|
+
}
|
|
119
|
+
return null;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const result = new Map();
|
|
124
|
+
for (;;) {
|
|
125
|
+
skip();
|
|
126
|
+
if (peek() === undefined) {
|
|
127
|
+
return result;
|
|
128
|
+
}
|
|
129
|
+
const names = selectors();
|
|
130
|
+
if (!names) {
|
|
131
|
+
return null;
|
|
132
|
+
}
|
|
133
|
+
const block = properties();
|
|
134
|
+
if (!block) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
for (const name of names) {
|
|
138
|
+
result.set(name, new Map(block));
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
/** A property name as a style object has it: font-size is fontSize. */
|
|
143
|
+
export function camelCase(name) {
|
|
144
|
+
return name.replace(/-(.)/g, (_, c) => c.toUpperCase());
|
|
145
|
+
}
|
|
146
|
+
/** A font-family list as a TextFormat's font: the generic families as Flash names them, spaces dropped around names. */
|
|
147
|
+
export function fontList(input) {
|
|
148
|
+
const generic = {
|
|
149
|
+
mono: "_typewriter",
|
|
150
|
+
"sans-serif": "_sans",
|
|
151
|
+
serif: "_serif",
|
|
152
|
+
};
|
|
153
|
+
return input
|
|
154
|
+
.split(",")
|
|
155
|
+
.map((name) => name.replace(/^ +/, ""))
|
|
156
|
+
.filter((name) => name !== "")
|
|
157
|
+
.map((name) => generic[name] ?? name)
|
|
158
|
+
.join(",");
|
|
159
|
+
}
|
|
160
|
+
/** A colour #RRGGBB, of at most six digits; 0 for anything else. */
|
|
161
|
+
export function cssColor(input) {
|
|
162
|
+
if (!input.startsWith("#")) {
|
|
163
|
+
return 0;
|
|
164
|
+
}
|
|
165
|
+
const digits = input.slice(1).trimEnd();
|
|
166
|
+
return digits.length <= 6 && /^[0-9a-fA-F]+$/.test(digits) ? Number.parseInt(digits, 16) : 0;
|
|
167
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/** A SWF's embedded fonts: DefineFont through 3, by name. */
|
|
2
|
+
export class FontSet {
|
|
3
|
+
byName = new Map();
|
|
4
|
+
add(font) {
|
|
5
|
+
const fonts = this.byName.get(font.name);
|
|
6
|
+
if (fonts) {
|
|
7
|
+
fonts.push(font);
|
|
8
|
+
}
|
|
9
|
+
else {
|
|
10
|
+
this.byName.set(font.name, [font]);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/** Prefer a font with layout metrics when a library has more than one of the same name. */
|
|
14
|
+
find(name, bold, italic) {
|
|
15
|
+
const fonts = this.byName.get(name);
|
|
16
|
+
if (!fonts) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return (fonts.find((f) => f.bold === bold && f.italic === italic && f.layout) ??
|
|
20
|
+
fonts.find((f) => f.layout) ??
|
|
21
|
+
fonts.find((f) => f.bold === bold && f.italic === italic) ??
|
|
22
|
+
fonts[0]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** A device font as the browser has it: `_sans`, `_serif` and `_typewriter` as its kinds, any other by name, then serif, as Flash's default is. */
|
|
26
|
+
function fontFamily(font) {
|
|
27
|
+
switch (font) {
|
|
28
|
+
case "_sans":
|
|
29
|
+
return ["Arial", "Helvetica", "sans-serif"];
|
|
30
|
+
case "_serif":
|
|
31
|
+
return ["Times New Roman", "Times", "serif"];
|
|
32
|
+
case "_typewriter":
|
|
33
|
+
return ["Courier New", "Courier", "monospace"];
|
|
34
|
+
default:
|
|
35
|
+
return [font, "serif"];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
let canvas;
|
|
39
|
+
function context() {
|
|
40
|
+
if (canvas === undefined) {
|
|
41
|
+
canvas = null;
|
|
42
|
+
if (typeof OffscreenCanvas !== "undefined") {
|
|
43
|
+
const c = new OffscreenCanvas(1, 1).getContext("2d");
|
|
44
|
+
canvas = c ? { context: c } : null;
|
|
45
|
+
}
|
|
46
|
+
else if (typeof document !== "undefined") {
|
|
47
|
+
const c = document.createElement("canvas").getContext("2d");
|
|
48
|
+
canvas = c ? { context: c } : null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return canvas?.context ?? null;
|
|
52
|
+
}
|
|
53
|
+
const measured = new Map();
|
|
54
|
+
/** The CSS font a device format is measured and drawn in. */
|
|
55
|
+
export function cssFont(font, size, bold, italic) {
|
|
56
|
+
const families = fontFamily(font)
|
|
57
|
+
.map((f) => (/^[a-z-]+$/.test(f) ? f : `"${f}"`))
|
|
58
|
+
.join(", ");
|
|
59
|
+
return `${italic ? "italic " : ""}${bold ? "bold " : ""}${size}px ${families}`;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* A device font's metrics: the browser's, from its canvas, where there is
|
|
63
|
+
* one; else (node) a stand-in, half the size a character, ascent 0.9 and
|
|
64
|
+
* descent 0.2 of it. Flash's system fonts are neither.
|
|
65
|
+
*/
|
|
66
|
+
export function deviceMetrics(font, size, bold, italic) {
|
|
67
|
+
const key = `${font}|${size}|${bold}|${italic}`;
|
|
68
|
+
let metrics = measured.get(key);
|
|
69
|
+
if (metrics) {
|
|
70
|
+
return metrics;
|
|
71
|
+
}
|
|
72
|
+
const c = context();
|
|
73
|
+
if (c) {
|
|
74
|
+
const css = cssFont(font, size, bold, italic);
|
|
75
|
+
const widths = new Map();
|
|
76
|
+
c.font = css;
|
|
77
|
+
const box = c.measureText("Mg");
|
|
78
|
+
metrics = {
|
|
79
|
+
advance: (char) => {
|
|
80
|
+
let w = widths.get(char);
|
|
81
|
+
if (w === undefined) {
|
|
82
|
+
c.font = css;
|
|
83
|
+
w = c.measureText(char).width;
|
|
84
|
+
widths.set(char, w);
|
|
85
|
+
}
|
|
86
|
+
return w;
|
|
87
|
+
},
|
|
88
|
+
ascent: box.fontBoundingBoxAscent ?? size * 0.9,
|
|
89
|
+
descent: box.fontBoundingBoxDescent ?? size * 0.2,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
metrics = { advance: () => size / 2, ascent: size * 0.9, descent: size * 0.2 };
|
|
94
|
+
}
|
|
95
|
+
measured.set(key, metrics);
|
|
96
|
+
return metrics;
|
|
97
|
+
}
|