@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.
Files changed (405) hide show
  1. package/LICENSE +202 -0
  2. package/LICENSE.third-party +759 -0
  3. package/README.md +43 -2
  4. package/dist/indexeddb.d.ts +27 -0
  5. package/dist/indexeddb.d.ts.map +1 -0
  6. package/dist/indexeddb.js +170 -0
  7. package/dist/indexeddb.js.map +1 -0
  8. package/dist/node-worker.d.ts +2 -0
  9. package/dist/node-worker.d.ts.map +1 -0
  10. package/dist/node-worker.js +12 -0
  11. package/dist/node-worker.js.map +1 -0
  12. package/dist/node.d.ts +8 -0
  13. package/dist/node.d.ts.map +1 -0
  14. package/dist/node.js +43 -0
  15. package/dist/node.js.map +1 -0
  16. package/dist/precompiled.d.ts +31 -0
  17. package/dist/precompiled.d.ts.map +1 -0
  18. package/dist/precompiled.js +125 -0
  19. package/dist/precompiled.js.map +1 -0
  20. package/dist/stage3d.d.ts +13 -0
  21. package/dist/stage3d.d.ts.map +1 -0
  22. package/dist/stage3d.js +61 -0
  23. package/dist/stage3d.js.map +1 -0
  24. package/dist/thread/codegen/codegen.js +308 -0
  25. package/dist/thread/codegen/index.js +405 -0
  26. package/dist/thread/format/abc-names.js +126 -0
  27. package/dist/thread/format/actions.js +222 -0
  28. package/dist/thread/format/air-descriptor.js +63 -0
  29. package/dist/thread/format/api-versions.js +22 -0
  30. package/dist/thread/format/bitmap.js +199 -0
  31. package/dist/thread/format/button.js +60 -0
  32. package/dist/thread/format/compression.js +200 -0
  33. package/dist/thread/format/display.js +305 -0
  34. package/dist/thread/format/filters.js +136 -0
  35. package/dist/thread/format/font.js +168 -0
  36. package/dist/thread/format/index.js +26 -0
  37. package/dist/thread/format/pbj.js +484 -0
  38. package/dist/thread/format/shape.js +411 -0
  39. package/dist/thread/format/sound.js +91 -0
  40. package/dist/thread/format/swf.js +163 -0
  41. package/dist/thread/format/tags.js +58 -0
  42. package/dist/thread/format/text.js +135 -0
  43. package/dist/thread/format/zip.js +91 -0
  44. package/dist/thread/native/audio/binary.js +3 -0
  45. package/dist/thread/native/audio/index.js +72 -0
  46. package/dist/thread/native/base64.js +9 -0
  47. package/dist/thread/native/compress/binary.js +3 -0
  48. package/dist/thread/native/compress/index.js +145 -0
  49. package/dist/thread/native/instance.js +49 -0
  50. package/dist/thread/native/mp3/binary.js +3 -0
  51. package/dist/thread/native/mp3/index.js +48 -0
  52. package/dist/thread/native/render/binary.js +3 -0
  53. package/dist/thread/native/render/bitmap-kernel.js +591 -0
  54. package/dist/thread/native/render/draw-kernel.js +204 -0
  55. package/dist/thread/native/render/dxt-encoder.js +94 -0
  56. package/dist/thread/native/render/index.js +10 -0
  57. package/dist/thread/native/render/lines.js +122 -0
  58. package/dist/thread/native/render/module.js +26 -0
  59. package/dist/thread/native/render/pixel-ops.js +235 -0
  60. package/dist/thread/native/render/tessellator.js +250 -0
  61. package/dist/thread/player/avm1/amf.js +507 -0
  62. package/dist/thread/player/avm1/avm1.js +1304 -0
  63. package/dist/thread/player/avm1/bindings.js +214 -0
  64. package/dist/thread/player/avm1/classes.js +75 -0
  65. package/dist/thread/player/avm1/clips.js +229 -0
  66. package/dist/thread/player/avm1/compile.js +140 -0
  67. package/dist/thread/player/avm1/external.js +79 -0
  68. package/dist/thread/player/avm1/focus.js +278 -0
  69. package/dist/thread/player/avm1/globals/BitmapData.js +542 -0
  70. package/dist/thread/player/avm1/globals/Button.js +31 -0
  71. package/dist/thread/player/avm1/globals/Color.js +115 -0
  72. package/dist/thread/player/avm1/globals/ExternalInterface.js +310 -0
  73. package/dist/thread/player/avm1/globals/FileReference.js +217 -0
  74. package/dist/thread/player/avm1/globals/Key.js +60 -0
  75. package/dist/thread/player/avm1/globals/LoadVars.js +208 -0
  76. package/dist/thread/player/avm1/globals/LocalConnection.js +92 -0
  77. package/dist/thread/player/avm1/globals/MovieClip.js +1070 -0
  78. package/dist/thread/player/avm1/globals/MovieClipLoader.js +90 -0
  79. package/dist/thread/player/avm1/globals/NetConnection.js +261 -0
  80. package/dist/thread/player/avm1/globals/PrintJob.js +37 -0
  81. package/dist/thread/player/avm1/globals/Selection.js +62 -0
  82. package/dist/thread/player/avm1/globals/SharedObject.js +245 -0
  83. package/dist/thread/player/avm1/globals/Sound.js +238 -0
  84. package/dist/thread/player/avm1/globals/Stage.js +12 -0
  85. package/dist/thread/player/avm1/globals/StyleSheet.js +205 -0
  86. package/dist/thread/player/avm1/globals/TextField.js +396 -0
  87. package/dist/thread/player/avm1/globals/TextFormat.js +194 -0
  88. package/dist/thread/player/avm1/globals/TextSnapshot.js +88 -0
  89. package/dist/thread/player/avm1/globals/XML.js +396 -0
  90. package/dist/thread/player/avm1/globals/XMLNode.js +413 -0
  91. package/dist/thread/player/avm1/globals/XMLSocket.js +205 -0
  92. package/dist/thread/player/avm1/globals/drawing.js +202 -0
  93. package/dist/thread/player/avm1/globals/filters.js +635 -0
  94. package/dist/thread/player/avm1/globals/geom.js +600 -0
  95. package/dist/thread/player/avm1/input.js +483 -0
  96. package/dist/thread/player/avm1/keyboard.js +113 -0
  97. package/dist/thread/player/avm1/loads.js +352 -0
  98. package/dist/thread/player/avm1/net.js +219 -0
  99. package/dist/thread/player/avm1/paths.js +104 -0
  100. package/dist/thread/player/avm1/pointer.js +512 -0
  101. package/dist/thread/player/avm1/queue.js +303 -0
  102. package/dist/thread/player/avm1/sound.js +106 -0
  103. package/dist/thread/player/avm1/swf.js +141 -0
  104. package/dist/thread/player/avm1/timers.js +113 -0
  105. package/dist/thread/player/bitmap/bitmap.js +627 -0
  106. package/dist/thread/player/bitmap/draw.js +68 -0
  107. package/dist/thread/player/bitmap/dxt.js +11 -0
  108. package/dist/thread/player/bitmap/filters.js +656 -0
  109. package/dist/thread/player/bitmap/images.js +240 -0
  110. package/dist/thread/player/bitmap/kernel.js +65 -0
  111. package/dist/thread/player/bitmap/ops.js +1239 -0
  112. package/dist/thread/player/bitmap/pixel-bender.js +911 -0
  113. package/dist/thread/player/bitmap/png.js +139 -0
  114. package/dist/thread/player/bitmap/turbulence.js +89 -0
  115. package/dist/thread/player/clock.js +182 -0
  116. package/dist/thread/player/display/bitmapobject.js +25 -0
  117. package/dist/thread/player/display/bounds.js +520 -0
  118. package/dist/thread/player/display/buttonobject.js +305 -0
  119. package/dist/thread/player/display/color.js +40 -0
  120. package/dist/thread/player/display/container.js +150 -0
  121. package/dist/thread/player/display/display.js +14 -0
  122. package/dist/thread/player/display/displayobject.js +664 -0
  123. package/dist/thread/player/display/drawing.js +613 -0
  124. package/dist/thread/player/display/filters.js +285 -0
  125. package/dist/thread/player/display/geometry.js +189 -0
  126. package/dist/thread/player/display/gradients.js +117 -0
  127. package/dist/thread/player/display/graphicsdata.js +592 -0
  128. package/dist/thread/player/display/instantiate.js +71 -0
  129. package/dist/thread/player/display/matrix3d.js +373 -0
  130. package/dist/thread/player/display/morph.js +226 -0
  131. package/dist/thread/player/display/movieclip.js +680 -0
  132. package/dist/thread/player/display/perspective.js +193 -0
  133. package/dist/thread/player/display/scale9.js +236 -0
  134. package/dist/thread/player/display/shapeobject.js +131 -0
  135. package/dist/thread/player/display/shapes.js +407 -0
  136. package/dist/thread/player/display/textobjects.js +222 -0
  137. package/dist/thread/player/display/timeline.js +471 -0
  138. package/dist/thread/player/display/value-lists.js +40 -0
  139. package/dist/thread/player/display/videoobject.js +6 -0
  140. package/dist/thread/player/display/walk.js +127 -0
  141. package/dist/thread/player/files.js +334 -0
  142. package/dist/thread/player/hosts.js +207 -0
  143. package/dist/thread/player/input/avm1.js +82 -0
  144. package/dist/thread/player/input/context-menu.js +63 -0
  145. package/dist/thread/player/input/keyboard.js +458 -0
  146. package/dist/thread/player/input/pointer.js +863 -0
  147. package/dist/thread/player/input/text-editor.js +319 -0
  148. package/dist/thread/player/input/touch.js +209 -0
  149. package/dist/thread/player/localconnection.js +90 -0
  150. package/dist/thread/player/media/audio.js +376 -0
  151. package/dist/thread/player/media/dynamic-sound.js +90 -0
  152. package/dist/thread/player/media/extract.js +135 -0
  153. package/dist/thread/player/media/mp3.js +152 -0
  154. package/dist/thread/player/media/sounds.js +507 -0
  155. package/dist/thread/player/media/streaming-audio.js +133 -0
  156. package/dist/thread/player/player.js +616 -0
  157. package/dist/thread/player/playerglobal/air/net/WebSocket.js +250 -0
  158. package/dist/thread/player/playerglobal/air-library.js +8 -0
  159. package/dist/thread/player/playerglobal/flash/accessibility/Accessibility.js +21 -0
  160. package/dist/thread/player/playerglobal/flash/crypto/generateRandomBytes.js +32 -0
  161. package/dist/thread/player/playerglobal/flash/data/EncryptedLocalStore.js +61 -0
  162. package/dist/thread/player/playerglobal/flash/desktop/Clipboard.js +173 -0
  163. package/dist/thread/player/playerglobal/flash/desktop/NativeApplication.js +179 -0
  164. package/dist/thread/player/playerglobal/flash/display/AVM1Movie.js +19 -0
  165. package/dist/thread/player/playerglobal/flash/display/Bitmap.js +58 -0
  166. package/dist/thread/player/playerglobal/flash/display/BitmapData.js +633 -0
  167. package/dist/thread/player/playerglobal/flash/display/DisplayObject.js +614 -0
  168. package/dist/thread/player/playerglobal/flash/display/DisplayObjectContainer.js +224 -0
  169. package/dist/thread/player/playerglobal/flash/display/Graphics.js +345 -0
  170. package/dist/thread/player/playerglobal/flash/display/InteractiveObject.js +87 -0
  171. package/dist/thread/player/playerglobal/flash/display/Loader.js +79 -0
  172. package/dist/thread/player/playerglobal/flash/display/LoaderInfo.js +128 -0
  173. package/dist/thread/player/playerglobal/flash/display/MovieClip.js +194 -0
  174. package/dist/thread/player/playerglobal/flash/display/NativeWindow.js +245 -0
  175. package/dist/thread/player/playerglobal/flash/display/Shader.js +26 -0
  176. package/dist/thread/player/playerglobal/flash/display/ShaderData.js +85 -0
  177. package/dist/thread/player/playerglobal/flash/display/ShaderInput.js +64 -0
  178. package/dist/thread/player/playerglobal/flash/display/ShaderJob.js +181 -0
  179. package/dist/thread/player/playerglobal/flash/display/ShaderParameter.js +23 -0
  180. package/dist/thread/player/playerglobal/flash/display/Shape.js +13 -0
  181. package/dist/thread/player/playerglobal/flash/display/SimpleButton.js +103 -0
  182. package/dist/thread/player/playerglobal/flash/display/Sprite.js +84 -0
  183. package/dist/thread/player/playerglobal/flash/display/Stage.js +231 -0
  184. package/dist/thread/player/playerglobal/flash/display/Stage3D.js +54 -0
  185. package/dist/thread/player/playerglobal/flash/display/shaders.js +228 -0
  186. package/dist/thread/player/playerglobal/flash/events/Event.js +58 -0
  187. package/dist/thread/player/playerglobal/flash/events/EventDispatcher.js +103 -0
  188. package/dist/thread/player/playerglobal/flash/events/GestureEvent.js +34 -0
  189. package/dist/thread/player/playerglobal/flash/events/HTTPStatusEvent.js +8 -0
  190. package/dist/thread/player/playerglobal/flash/events/KeyboardEvent.js +51 -0
  191. package/dist/thread/player/playerglobal/flash/events/MouseEvent.js +59 -0
  192. package/dist/thread/player/playerglobal/flash/events/PressAndTapGestureEvent.js +30 -0
  193. package/dist/thread/player/playerglobal/flash/events/TimerEvent.js +16 -0
  194. package/dist/thread/player/playerglobal/flash/events/TouchEvent.js +45 -0
  195. package/dist/thread/player/playerglobal/flash/external/ExternalInterface.js +73 -0
  196. package/dist/thread/player/playerglobal/flash/filesystem/File.js +340 -0
  197. package/dist/thread/player/playerglobal/flash/filesystem/FileStream.js +453 -0
  198. package/dist/thread/player/playerglobal/flash/filesystem/paths.js +156 -0
  199. package/dist/thread/player/playerglobal/flash/filesystem/writes.js +143 -0
  200. package/dist/thread/player/playerglobal/flash/filters/BevelFilter.js +4 -0
  201. package/dist/thread/player/playerglobal/flash/filters/BitmapFilter.js +205 -0
  202. package/dist/thread/player/playerglobal/flash/filters/BlurFilter.js +4 -0
  203. package/dist/thread/player/playerglobal/flash/filters/ColorMatrixFilter.js +11 -0
  204. package/dist/thread/player/playerglobal/flash/filters/ConvolutionFilter.js +26 -0
  205. package/dist/thread/player/playerglobal/flash/filters/DisplacementMapFilter.js +51 -0
  206. package/dist/thread/player/playerglobal/flash/filters/DropShadowFilter.js +4 -0
  207. package/dist/thread/player/playerglobal/flash/filters/GlowFilter.js +4 -0
  208. package/dist/thread/player/playerglobal/flash/filters/GradientBevelFilter.js +4 -0
  209. package/dist/thread/player/playerglobal/flash/filters/GradientGlowFilter.js +4 -0
  210. package/dist/thread/player/playerglobal/flash/filters/ShaderFilter.js +53 -0
  211. package/dist/thread/player/playerglobal/flash/geom/Matrix3D.js +361 -0
  212. package/dist/thread/player/playerglobal/flash/geom/PerspectiveProjection.js +122 -0
  213. package/dist/thread/player/playerglobal/flash/geom/Transform.js +245 -0
  214. package/dist/thread/player/playerglobal/flash/geom/Utils3D.js +85 -0
  215. package/dist/thread/player/playerglobal/flash/globalization/Collator.js +149 -0
  216. package/dist/thread/player/playerglobal/flash/globalization/CurrencyFormatter.js +272 -0
  217. package/dist/thread/player/playerglobal/flash/globalization/CurrencyParseResult.js +21 -0
  218. package/dist/thread/player/playerglobal/flash/globalization/DateTimeFormatter.js +463 -0
  219. package/dist/thread/player/playerglobal/flash/globalization/LocaleID.js +144 -0
  220. package/dist/thread/player/playerglobal/flash/globalization/NumberFormatter.js +444 -0
  221. package/dist/thread/player/playerglobal/flash/globalization/NumberParseResult.js +22 -0
  222. package/dist/thread/player/playerglobal/flash/globalization/StringTools.js +59 -0
  223. package/dist/thread/player/playerglobal/flash/globalization/locale.js +190 -0
  224. package/dist/thread/player/playerglobal/flash/media/Camera.js +89 -0
  225. package/dist/thread/player/playerglobal/flash/media/Microphone.js +126 -0
  226. package/dist/thread/player/playerglobal/flash/media/Sound.js +543 -0
  227. package/dist/thread/player/playerglobal/flash/media/SoundMixer.js +74 -0
  228. package/dist/thread/player/playerglobal/flash/media/SoundTransform.js +40 -0
  229. package/dist/thread/player/playerglobal/flash/media/Video.js +43 -0
  230. package/dist/thread/player/playerglobal/flash/net/FileFilter.js +27 -0
  231. package/dist/thread/player/playerglobal/flash/net/FileReference.js +197 -0
  232. package/dist/thread/player/playerglobal/flash/net/LocalConnection.js +167 -0
  233. package/dist/thread/player/playerglobal/flash/net/NetConnection.js +155 -0
  234. package/dist/thread/player/playerglobal/flash/net/SharedObject.js +299 -0
  235. package/dist/thread/player/playerglobal/flash/net/Socket.js +282 -0
  236. package/dist/thread/player/playerglobal/flash/net/URLRequest.js +93 -0
  237. package/dist/thread/player/playerglobal/flash/net/URLStream.js +146 -0
  238. package/dist/thread/player/playerglobal/flash/net/XMLSocket.js +14 -0
  239. package/dist/thread/player/playerglobal/flash/net/local-modern.js +142 -0
  240. package/dist/thread/player/playerglobal/flash/net/local-values.js +217 -0
  241. package/dist/thread/player/playerglobal/flash/net/navigateToURL.js +29 -0
  242. package/dist/thread/player/playerglobal/flash/profiler/Telemetry.js +25 -0
  243. package/dist/thread/player/playerglobal/flash/sensors/Accelerometer.js +12 -0
  244. package/dist/thread/player/playerglobal/flash/system/ApplicationDomain.js +69 -0
  245. package/dist/thread/player/playerglobal/flash/system/Capabilities.js +163 -0
  246. package/dist/thread/player/playerglobal/flash/system/FSCommandHost.js +17 -0
  247. package/dist/thread/player/playerglobal/flash/system/Security.js +46 -0
  248. package/dist/thread/player/playerglobal/flash/system/SecurityDomain.js +21 -0
  249. package/dist/thread/player/playerglobal/flash/system/System.js +73 -0
  250. package/dist/thread/player/playerglobal/flash/system/Worker.js +112 -0
  251. package/dist/thread/player/playerglobal/flash/text/Font.js +95 -0
  252. package/dist/thread/player/playerglobal/flash/text/StaticText.js +16 -0
  253. package/dist/thread/player/playerglobal/flash/text/StyleSheet.js +65 -0
  254. package/dist/thread/player/playerglobal/flash/text/TextField.js +707 -0
  255. package/dist/thread/player/playerglobal/flash/text/TextRenderer.js +77 -0
  256. package/dist/thread/player/playerglobal/flash/text/engine/FontDescription.js +141 -0
  257. package/dist/thread/player/playerglobal/flash/text/engine/TabStop.js +46 -0
  258. package/dist/thread/player/playerglobal/flash/trace/Trace.js +17 -0
  259. package/dist/thread/player/playerglobal/flash/ui/ContextMenu.js +17 -0
  260. package/dist/thread/player/playerglobal/flash/ui/GameInput.js +19 -0
  261. package/dist/thread/player/playerglobal/flash/ui/Keyboard.js +27 -0
  262. package/dist/thread/player/playerglobal/flash/ui/Mouse.js +127 -0
  263. package/dist/thread/player/playerglobal/flash/ui/Multitouch.js +46 -0
  264. package/dist/thread/player/playerglobal/flash/utils/ByteArray.js +155 -0
  265. package/dist/thread/player/playerglobal/flash/utils/Timer.js +25 -0
  266. package/dist/thread/player/playerglobal/flash/xml/XMLDocument.js +74 -0
  267. package/dist/thread/player/playerglobal/index.js +224 -0
  268. package/dist/thread/player/playerglobal/libraries.js +10 -0
  269. package/dist/thread/player/playerglobal/playerglobal-library.js +22 -0
  270. package/dist/thread/player/playerglobal/toplevel.js +122 -0
  271. package/dist/thread/player/scripting/clipboard.js +146 -0
  272. package/dist/thread/player/scripting/code.js +900 -0
  273. package/dist/thread/player/scripting/evaluate.js +144 -0
  274. package/dist/thread/player/scripting/events.js +172 -0
  275. package/dist/thread/player/scripting/handover.js +182 -0
  276. package/dist/thread/player/scripting/lazy.js +38 -0
  277. package/dist/thread/player/scripting/lifecycle.js +272 -0
  278. package/dist/thread/player/scripting/loads.js +860 -0
  279. package/dist/thread/player/scripting/sha256.js +95 -0
  280. package/dist/thread/player/scripting/symbols.js +348 -0
  281. package/dist/thread/player/scripting/timers.js +434 -0
  282. package/dist/thread/player/scripting/workers.js +923 -0
  283. package/dist/thread/player/scripting.js +1018 -0
  284. package/dist/thread/player/stage.js +4 -0
  285. package/dist/thread/player/text/csm.js +113 -0
  286. package/dist/thread/player/text/css.js +167 -0
  287. package/dist/thread/player/text/fonts.js +97 -0
  288. package/dist/thread/player/text/layout.js +393 -0
  289. package/dist/thread/player/text/static.js +109 -0
  290. package/dist/thread/player/text/text.js +431 -0
  291. package/dist/thread/player/workers/thread.js +159 -0
  292. package/dist/thread/player/workers/wire.js +198 -0
  293. package/dist/thread/player-hosts/web-worker.js +19 -0
  294. package/dist/thread/runtime/avm1/activation.js +89 -0
  295. package/dist/thread/runtime/avm1/case.js +249 -0
  296. package/dist/thread/runtime/avm1/clips.js +334 -0
  297. package/dist/thread/runtime/avm1/control.js +280 -0
  298. package/dist/thread/runtime/avm1/errors.js +50 -0
  299. package/dist/thread/runtime/avm1/functions.js +249 -0
  300. package/dist/thread/runtime/avm1/globals/array.js +549 -0
  301. package/dist/thread/runtime/avm1/globals/broadcaster.js +131 -0
  302. package/dist/thread/runtime/avm1/globals/date.js +436 -0
  303. package/dist/thread/runtime/avm1/globals/global.js +344 -0
  304. package/dist/thread/runtime/avm1/globals/math.js +139 -0
  305. package/dist/thread/runtime/avm1/globals/number.js +93 -0
  306. package/dist/thread/runtime/avm1/globals/string.js +201 -0
  307. package/dist/thread/runtime/avm1/globals/timers.js +129 -0
  308. package/dist/thread/runtime/avm1/host.js +5 -0
  309. package/dist/thread/runtime/avm1/index.js +14 -0
  310. package/dist/thread/runtime/avm1/inheritance.js +132 -0
  311. package/dist/thread/runtime/avm1/numbers.js +298 -0
  312. package/dist/thread/runtime/avm1/objects.js +896 -0
  313. package/dist/thread/runtime/avm1/operators.js +170 -0
  314. package/dist/thread/runtime/avm1/realm.js +529 -0
  315. package/dist/thread/runtime/avm1/runtime.js +882 -0
  316. package/dist/thread/runtime/avm1/scope.js +385 -0
  317. package/dist/thread/runtime/avm1/urls.js +180 -0
  318. package/dist/thread/runtime/avm1/values.js +97 -0
  319. package/dist/thread/runtime/avm2/amf-classes.js +66 -0
  320. package/dist/thread/runtime/avm2/amf.js +801 -0
  321. package/dist/thread/runtime/avm2/array-conversion.js +100 -0
  322. package/dist/thread/runtime/avm2/builtin-library.js +21 -0
  323. package/dist/thread/runtime/avm2/cache-fill.js +86 -0
  324. package/dist/thread/runtime/avm2/classes.js +211 -0
  325. package/dist/thread/runtime/avm2/definitions.js +69 -0
  326. package/dist/thread/runtime/avm2/descriptors.js +5 -0
  327. package/dist/thread/runtime/avm2/dictionary-keys.js +295 -0
  328. package/dist/thread/runtime/avm2/domain-memory.js +75 -0
  329. package/dist/thread/runtime/avm2/domain.js +280 -0
  330. package/dist/thread/runtime/avm2/dynamic-properties.js +182 -0
  331. package/dist/thread/runtime/avm2/enumeration.js +393 -0
  332. package/dist/thread/runtime/avm2/errors.js +45 -0
  333. package/dist/thread/runtime/avm2/float-library.js +66 -0
  334. package/dist/thread/runtime/avm2/float.js +26 -0
  335. package/dist/thread/runtime/avm2/hooks.js +19 -0
  336. package/dist/thread/runtime/avm2/index.js +38 -0
  337. package/dist/thread/runtime/avm2/messages.js +177 -0
  338. package/dist/thread/runtime/avm2/method-factories.js +95 -0
  339. package/dist/thread/runtime/avm2/modules.js +105 -0
  340. package/dist/thread/runtime/avm2/names.js +248 -0
  341. package/dist/thread/runtime/avm2/natives/aliases.js +47 -0
  342. package/dist/thread/runtime/avm2/natives/array.js +390 -0
  343. package/dist/thread/runtime/avm2/natives/bytearray.js +1227 -0
  344. package/dist/thread/runtime/avm2/natives/case.js +88 -0
  345. package/dist/thread/runtime/avm2/natives/concurrent.js +199 -0
  346. package/dist/thread/runtime/avm2/natives/date.js +581 -0
  347. package/dist/thread/runtime/avm2/natives/define.js +130 -0
  348. package/dist/thread/runtime/avm2/natives/describe.js +351 -0
  349. package/dist/thread/runtime/avm2/natives/dictionary.js +12 -0
  350. package/dist/thread/runtime/avm2/natives/float-vector.js +81 -0
  351. package/dist/thread/runtime/avm2/natives/float.js +96 -0
  352. package/dist/thread/runtime/avm2/natives/index.js +64 -0
  353. package/dist/thread/runtime/avm2/natives/json.js +514 -0
  354. package/dist/thread/runtime/avm2/natives/number.js +162 -0
  355. package/dist/thread/runtime/avm2/natives/object.js +237 -0
  356. package/dist/thread/runtime/avm2/natives/proxy.js +75 -0
  357. package/dist/thread/runtime/avm2/natives/regexp.js +485 -0
  358. package/dist/thread/runtime/avm2/natives/shell-workers.js +404 -0
  359. package/dist/thread/runtime/avm2/natives/shell.js +557 -0
  360. package/dist/thread/runtime/avm2/natives/sort.js +377 -0
  361. package/dist/thread/runtime/avm2/natives/string.js +132 -0
  362. package/dist/thread/runtime/avm2/natives/sync.js +821 -0
  363. package/dist/thread/runtime/avm2/natives/toplevel.js +139 -0
  364. package/dist/thread/runtime/avm2/natives/vector-elements.js +46 -0
  365. package/dist/thread/runtime/avm2/natives/vector.js +406 -0
  366. package/dist/thread/runtime/avm2/natives/xml/access.js +633 -0
  367. package/dist/thread/runtime/avm2/natives/xml/build.js +291 -0
  368. package/dist/thread/runtime/avm2/natives/xml/chars.js +112 -0
  369. package/dist/thread/runtime/avm2/natives/xml/escape.js +38 -0
  370. package/dist/thread/runtime/avm2/natives/xml/names.js +204 -0
  371. package/dist/thread/runtime/avm2/natives/xml/node.js +272 -0
  372. package/dist/thread/runtime/avm2/natives/xml/operators.js +69 -0
  373. package/dist/thread/runtime/avm2/natives/xml/parser.js +356 -0
  374. package/dist/thread/runtime/avm2/natives/xml/strings.js +191 -0
  375. package/dist/thread/runtime/avm2/natives/xml/values.js +122 -0
  376. package/dist/thread/runtime/avm2/natives/xml/xml.js +645 -0
  377. package/dist/thread/runtime/avm2/number-strings.js +110 -0
  378. package/dist/thread/runtime/avm2/numbers.js +558 -0
  379. package/dist/thread/runtime/avm2/options.js +16 -0
  380. package/dist/thread/runtime/avm2/player-messages.js +550 -0
  381. package/dist/thread/runtime/avm2/property-cache.js +135 -0
  382. package/dist/thread/runtime/avm2/runtime.js +2644 -0
  383. package/dist/thread/runtime/avm2/traits.js +509 -0
  384. package/dist/thread/runtime/index.js +7 -0
  385. package/dist/web-worker.d.ts +2 -0
  386. package/dist/web-worker.d.ts.map +1 -0
  387. package/dist/web-worker.js +20 -0
  388. package/dist/web-worker.js.map +1 -0
  389. package/dist/websocket.d.ts +4 -0
  390. package/dist/websocket.d.ts.map +1 -0
  391. package/dist/websocket.js +27 -0
  392. package/dist/websocket.js.map +1 -0
  393. package/dist/workers.d.ts +35 -0
  394. package/dist/workers.d.ts.map +1 -0
  395. package/dist/workers.js +171 -0
  396. package/dist/workers.js.map +1 -0
  397. package/package.json +62 -3
  398. package/src/indexeddb.ts +227 -0
  399. package/src/node-worker.ts +13 -0
  400. package/src/node.ts +49 -0
  401. package/src/precompiled.ts +166 -0
  402. package/src/stage3d.ts +76 -0
  403. package/src/web-worker.ts +24 -0
  404. package/src/websocket.ts +32 -0
  405. package/src/workers.ts +255 -0
@@ -0,0 +1,69 @@
1
+ // Definitions by qualified name, "pkg::Name" or "Name", as a host and
2
+ // ApplicationDomain look them up: a SWF's SymbolClass, a player's own
3
+ // classes, and getDefinition.
4
+ import { CONSTANT_Qname, Multiname, NS_Public, namespace, publicNs, qname } from "./names.js";
5
+ /**
6
+ * The class `qualified` names, "pkg::Name" or "Name", its defining script
7
+ * run; a ReferenceError if no script defines it. What a SWF's SymbolClass
8
+ * and a player's lookups by name go through, at every version.
9
+ */
10
+ export function classNamed(rt, qualified, domain) {
11
+ return classIn(rt, qualified, domain, (domain ?? rt.root).named, null);
12
+ }
13
+ /**
14
+ * The class `qualified` names in `domain` as code finds it, at user code's
15
+ * version, as avmshell's Domain.getClass does: a name of the other series'
16
+ * or the VM's own is a ReferenceError.
17
+ */
18
+ export function classNamedByCode(rt, qualified, domain) {
19
+ return classIn(rt, qualified, domain, domain.namedByCode, rt.userVersions);
20
+ }
21
+ /** The class `qualified` names, at `versions` or every version, kept in `named` once found. */
22
+ function classIn(rt, qualified, domain, named, versions) {
23
+ const known = named.get(qualified);
24
+ if (known) {
25
+ return known;
26
+ }
27
+ const cls = rt.resolveName(qualifiedNameIn(rt, qualified, domain, versions));
28
+ // A script still running its initializer may not have made the class yet.
29
+ if (cls) {
30
+ named.set(qualified, cls);
31
+ }
32
+ return cls;
33
+ }
34
+ /**
35
+ * What `qualified` names in `domain`, as Flash's
36
+ * ApplicationDomain.getDefinition finds it: a name no script defines is
37
+ * refused by its local name, and a script whose initializer threw runs
38
+ * again, its error coming through each time, where a name's lookup by
39
+ * code keeps it as run, as avmplus does. Seen at user code's version, as
40
+ * avmplus' public namespace is the caller's: a name of the other series'
41
+ * or the VM's own is not defined, as it is not to the code itself.
42
+ */
43
+ export function definitionNamed(rt, qualified, domain) {
44
+ const mn = qualifiedNameIn(rt, qualified, domain, rt.userVersions);
45
+ const script = rt.findScript(mn);
46
+ if (!script) {
47
+ throw rt.error("ReferenceError", 1065, mn.name);
48
+ }
49
+ return rt.getProperty(rt.initScript(script, true), mn);
50
+ }
51
+ /** The module whose script defines `qualified` for `domain`, or null: by it a player keys what SymbolClass binds. */
52
+ export function definingAbc(rt, qualified, domain) {
53
+ return rt.findScript(qualifiedNameIn(rt, qualified, domain, null))?.abc ?? null;
54
+ }
55
+ /**
56
+ * The public name "pkg::Name" or "Name" stands for, looked up in `domain`:
57
+ * at `versions`, user code's as code finds a name, or with null at every
58
+ * version, as the host reaches names.
59
+ */
60
+ function qualifiedNameIn(rt, qualified, domain, versions) {
61
+ const i = qualified.lastIndexOf("::");
62
+ const ns = i < 0 ? publicNs : namespace(NS_Public, qualified.slice(0, i));
63
+ const local = i < 0 ? qualified : qualified.slice(i + 2);
64
+ const mn = versions
65
+ ? new Multiname(CONSTANT_Qname, [ns], versions, local, false)
66
+ : qname(ns, local);
67
+ mn.domain = domain === rt.root ? null : domain;
68
+ return mn;
69
+ }
@@ -0,0 +1,5 @@
1
+ // What a compiled module is built against: the values it handles, and the
2
+ // descriptors of its traits, classes and scripts it gives the runtime
3
+ // (docs/architecture/compiler.md, "Modules and the bootstrap").
4
+ /** Not a property: distinct from undefined, which a property can hold. */
5
+ export const NOT_FOUND = Symbol("not found");
@@ -0,0 +1,295 @@
1
+ // A Dictionary's object keys, and the slots a for-in goes through them by.
2
+ // As DictionaryObject's hashtable, the store itself holds each key's slot,
3
+ // so that a for-in reads a slot for its name and value, with no list of
4
+ // names built at its start and no lookup at each step. Weak keys (new
5
+ // Dictionary(true)) keep no key alive, as Flash's do not: their entries are
6
+ // held strongly only by a WeakMap keyed by the key, and their slots hold
7
+ // them weakly, so neither a for-in left off nor a value that refers to its
8
+ // key keeps the key.
9
+ /** The value of an entry not there: deleted, or kept spare. No ActionScript value is a symbol. */
10
+ const GONE = Symbol("gone");
11
+ /** What valueAt gives where a dynamic property's name is, whose value is the property's. */
12
+ export const NAMED = Symbol("named");
13
+ /**
14
+ * A key and its value. Once deleted and its slot freed, it is kept to hold
15
+ * a key added later, with the WeakRef a weak one has: V8 keeps each
16
+ * WeakRef's target alive until the current job ends, so a new one for each
17
+ * key added would keep every entry made in a long frame.
18
+ */
19
+ class Entry {
20
+ /** Null once deleted from a slot. */
21
+ key = null;
22
+ /** GONE while not there: its slot is passed over, and free when a for-in next starts. */
23
+ value = GONE;
24
+ /** Its slot, -1 until a for-in starts and gives it one. */
25
+ slot = -1;
26
+ }
27
+ class WeakEntry extends Entry {
28
+ /** How the slots hold it. */
29
+ ref = new WeakRef(this);
30
+ }
31
+ /**
32
+ * As avmplus' hashtable, a name keeps its slot while it is there, so that a
33
+ * for-in started inside another never moves the outer one's names. One
34
+ * deleted stays in its slot, which a for-in passes over, until a for-in next
35
+ * starts: then its slot is free, and the names added since take the free
36
+ * slots, the Dictionary's dynamic properties first, then its keys in the
37
+ * order they were added; only with none free does the list grow. So a for-in
38
+ * goes through neither a name added during it nor one deleted before it gets
39
+ * there, and goes through each other once.
40
+ */
41
+ export class DictionaryKeys {
42
+ weak;
43
+ /**
44
+ * Each key's entry. One deleted before it had a slot stays, GONE, so that
45
+ * the key set again takes it back: deleting and setting a key over and
46
+ * over between for-ins makes nothing. A strong key deleted so stays alive
47
+ * until a for-in starts or `added` is settled, which keeps that bounded by
48
+ * twice the keys there, and 64.
49
+ */
50
+ map;
51
+ /** Each slot: a key's entry, a dynamic property's name, or null where free. */
52
+ slots = [];
53
+ /** The entries added since a for-in last started, which take slots when one next does. */
54
+ added = [];
55
+ /** The count of those at which the ones deleted or collected are dropped, so none pile up. */
56
+ addedLimit = 64;
57
+ /** The entries with slots deleted since a for-in last started, freed when one next does. */
58
+ deleted = [];
59
+ /** The slots of keys collected that a for-in has come across since one last started. */
60
+ collected = [];
61
+ /** Entries no longer used, to hold keys added later; trimmed when a for-in starts. */
62
+ spare = [];
63
+ /** The slot of each dynamic property's name. */
64
+ named = null;
65
+ constructor(weak) {
66
+ this.weak = weak;
67
+ this.map = weak ? new WeakMap() : new Map();
68
+ }
69
+ get(key) {
70
+ const value = this.map.get(key)?.value;
71
+ return value === GONE ? undefined : value;
72
+ }
73
+ has(key) {
74
+ const entry = this.map.get(key);
75
+ return entry !== undefined && entry.value !== GONE;
76
+ }
77
+ set(key, value) {
78
+ if (!this.replace(key, value)) {
79
+ this.add(key, value);
80
+ }
81
+ return this;
82
+ }
83
+ /**
84
+ * Sets the value of a key that has an entry, there or deleted, and says
85
+ * whether it had one; set's first half, so that a caller can look at a
86
+ * key before it is added.
87
+ */
88
+ replace(key, value) {
89
+ const known = this.map.get(key);
90
+ if (known === undefined) {
91
+ return false;
92
+ }
93
+ known.value = value;
94
+ return true;
95
+ }
96
+ /** Adds a key that has no entry (replace said so). */
97
+ add(key, value) {
98
+ const entry = this.spare.pop() ?? (this.weak ? new WeakEntry() : new Entry());
99
+ entry.key = key;
100
+ entry.value = value;
101
+ this.map.set(key, entry);
102
+ this.added.push(this.hold(entry));
103
+ if (this.added.length >= this.addedLimit) {
104
+ this.added = this.settle(this.added);
105
+ this.addedLimit = Math.max(64, this.added.length * 2);
106
+ }
107
+ }
108
+ delete(key) {
109
+ const entry = this.map.get(key);
110
+ if (entry === undefined || entry.value === GONE) {
111
+ return false;
112
+ }
113
+ entry.value = GONE;
114
+ if (entry.slot >= 0) {
115
+ this.map.delete(key);
116
+ entry.key = null;
117
+ this.deleted.push(entry);
118
+ }
119
+ return true;
120
+ }
121
+ /** The keys there now: those with slots, in their slots' order, then those added since. */
122
+ *keys() {
123
+ for (const entry of this.entries()) {
124
+ yield entry.key;
125
+ }
126
+ }
127
+ *[Symbol.iterator]() {
128
+ for (const entry of this.entries()) {
129
+ yield [entry.key, entry.value];
130
+ }
131
+ }
132
+ get size() {
133
+ let n = 0;
134
+ for (const _ of this.entries()) {
135
+ n++;
136
+ }
137
+ return n;
138
+ }
139
+ /**
140
+ * The index after `index` of a name of Dictionary `o` there now, or 0. A
141
+ * for-in's start (index 0) first frees the slots of names gone and gives
142
+ * those added theirs.
143
+ */
144
+ next(o, index) {
145
+ if (index === 0) {
146
+ this.start(o);
147
+ }
148
+ const slots = this.slots;
149
+ for (let i = index; i < slots.length; i++) {
150
+ const held = slots[i];
151
+ if (held === null) {
152
+ continue;
153
+ }
154
+ if (typeof held === "string") {
155
+ if (o.$d?.has(held) && !o.$dontEnum?.has(held)) {
156
+ return i + 1;
157
+ }
158
+ continue;
159
+ }
160
+ const entry = this.open(held);
161
+ if (entry === undefined) {
162
+ slots[i] = null;
163
+ this.collected.push(i);
164
+ }
165
+ else if (entry.value !== GONE) {
166
+ return i + 1;
167
+ }
168
+ }
169
+ return 0;
170
+ }
171
+ /** The name at a for-in's index: a key, a dynamic property's name, or "" once a key is gone. */
172
+ nameAt(index) {
173
+ const held = this.slots[index - 1];
174
+ if (held === null || held === undefined) {
175
+ return "";
176
+ }
177
+ return typeof held === "string" ? held : (this.open(held)?.key ?? "");
178
+ }
179
+ /** The value at a for-in's index: a key's, undefined once it is gone, or NAMED. */
180
+ valueAt(index) {
181
+ const held = this.slots[index - 1];
182
+ if (held === null || held === undefined) {
183
+ return undefined;
184
+ }
185
+ if (typeof held === "string") {
186
+ return NAMED;
187
+ }
188
+ const value = this.open(held)?.value;
189
+ return value === GONE ? undefined : value;
190
+ }
191
+ /** The entry a slot or `added` holds, or undefined once its key is collected. */
192
+ open(held) {
193
+ return this.weak ? held.deref() : held;
194
+ }
195
+ hold(entry) {
196
+ return this.weak ? entry.ref : entry;
197
+ }
198
+ *entries() {
199
+ for (let i = 0; i < this.slots.length; i++) {
200
+ const held = this.slots[i];
201
+ const entry = held === null || typeof held === "string" ? undefined : this.open(held);
202
+ if (entry !== undefined && entry.value !== GONE) {
203
+ yield entry;
204
+ }
205
+ }
206
+ for (let i = 0; i < this.added.length; i++) {
207
+ const entry = this.open(this.added[i]);
208
+ if (entry !== undefined && entry.value !== GONE) {
209
+ yield entry;
210
+ }
211
+ }
212
+ }
213
+ /** Those of `added` still there; the others are let go, their keys with them. */
214
+ settle(added) {
215
+ let kept = 0;
216
+ for (let i = 0; i < added.length; i++) {
217
+ const held = added[i];
218
+ const entry = this.open(held);
219
+ if (entry === undefined) {
220
+ continue;
221
+ }
222
+ if (entry.value !== GONE) {
223
+ added[kept++] = held;
224
+ }
225
+ else {
226
+ this.map.delete(entry.key);
227
+ entry.key = null;
228
+ this.spare.push(entry);
229
+ }
230
+ }
231
+ added.length = kept;
232
+ return added;
233
+ }
234
+ start(o) {
235
+ const d = o.$d;
236
+ const deleted = this.deleted;
237
+ if (this.added.length === 0 &&
238
+ deleted.length === 0 &&
239
+ this.collected.length === 0 &&
240
+ !d?.size &&
241
+ !this.named?.size) {
242
+ return;
243
+ }
244
+ const slots = this.slots;
245
+ const free = [];
246
+ for (let i = 0; i < deleted.length; i++) {
247
+ const entry = deleted[i];
248
+ slots[entry.slot] = null;
249
+ free.push(entry.slot);
250
+ entry.slot = -1;
251
+ this.spare.push(entry);
252
+ }
253
+ deleted.length = 0;
254
+ for (let i = 0; i < this.collected.length; i++) {
255
+ free.push(this.collected[i]);
256
+ }
257
+ this.collected.length = 0;
258
+ if (this.named !== null) {
259
+ for (const [name, i] of this.named) {
260
+ if (!d?.has(name)) {
261
+ this.named.delete(name);
262
+ slots[i] = null;
263
+ free.push(i);
264
+ }
265
+ }
266
+ }
267
+ // Lowest first, so that the names added fill the earliest gaps.
268
+ free.sort((a, b) => a - b);
269
+ let next = 0;
270
+ // Freed, `named` holds only names still there: as many as there are, and none is new.
271
+ if (d?.size && d.size !== (this.named?.size ?? 0)) {
272
+ this.named ??= new Map();
273
+ for (const name of d.keys()) {
274
+ if (!this.named.has(name)) {
275
+ const i = next < free.length ? free[next++] : slots.length;
276
+ slots[i] = name;
277
+ this.named.set(name, i);
278
+ }
279
+ }
280
+ }
281
+ const added = this.settle(this.added);
282
+ for (let n = 0; n < added.length; n++) {
283
+ const i = next < free.length ? free[next++] : slots.length;
284
+ slots[i] = added[n];
285
+ this.open(added[n]).slot = i;
286
+ }
287
+ // Kept for as many keys as were added since the last start, as the next
288
+ // may add as many again; an emptied Dictionary keeps almost none.
289
+ if (this.spare.length > added.length + 64) {
290
+ this.spare.length = added.length + 64;
291
+ }
292
+ this.added = [];
293
+ this.addedLimit = 64;
294
+ }
295
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * The messages of the RangeErrors a DataView throws for an offset out of
3
+ * its range, as this engine words them: below 0, past the end, and with
4
+ * too few bytes left, for a load and a store.
5
+ */
6
+ const viewRangeMessages = (() => {
7
+ const messages = new Set();
8
+ const view = new DataView(new ArrayBuffer(4));
9
+ const probes = [
10
+ () => view.getUint8(-1),
11
+ () => view.getUint8(4),
12
+ () => view.getInt32(1, true),
13
+ () => view.getFloat64(0, true),
14
+ () => view.setUint8(-1, 0),
15
+ () => view.setUint16(3, 0, true),
16
+ () => view.setFloat64(0, 0, true),
17
+ () => view.getUint8(0xffffffff),
18
+ ];
19
+ for (let i = 0; i < probes.length; i++) {
20
+ try {
21
+ probes[i]();
22
+ }
23
+ catch (e) {
24
+ if (e instanceof RangeError) {
25
+ messages.add(e.message);
26
+ }
27
+ }
28
+ }
29
+ return messages;
30
+ })();
31
+ /** Whether `e` is the RangeError a DataView throws for an offset out of its range. */
32
+ export function isViewRangeError(e) {
33
+ return e instanceof RangeError && viewRangeMessages.has(e.message);
34
+ }
35
+ /**
36
+ * Domain memory another worker shares, as generated code reaches it: each
37
+ * access through the runtime's li8 and the others, which read the length
38
+ * again, as that worker may have grown it, before they reject an address.
39
+ */
40
+ export class SharedMemoryView {
41
+ rt;
42
+ constructor(rt) {
43
+ this.rt = rt;
44
+ }
45
+ getUint8(at) {
46
+ return this.rt.li8(at);
47
+ }
48
+ getUint16(at, _littleEndian) {
49
+ return this.rt.li16(at);
50
+ }
51
+ getInt32(at, _littleEndian) {
52
+ return this.rt.li32(at);
53
+ }
54
+ getFloat32(at, _littleEndian) {
55
+ return this.rt.lf32(at);
56
+ }
57
+ getFloat64(at, _littleEndian) {
58
+ return this.rt.lf64(at);
59
+ }
60
+ setUint8(at, value) {
61
+ this.rt.si8(value, at);
62
+ }
63
+ setUint16(at, value, _littleEndian) {
64
+ this.rt.si16(value, at);
65
+ }
66
+ setInt32(at, value, _littleEndian) {
67
+ this.rt.si32(value, at);
68
+ }
69
+ setFloat32(at, value, _littleEndian) {
70
+ this.rt.sf32(value, at);
71
+ }
72
+ setFloat64(at, value, _littleEndian) {
73
+ this.rt.sf64(value, at);
74
+ }
75
+ }