@swf2es/player-hosts 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,485 @@
1
+ // RegExp: `this` holds its JavaScript RegExp in $re; and the match
2
+ // arrays String's methods give too.
3
+ import { AS3, registerNativeClass } from "./define.js";
4
+ /** RegExp's natives, for `rt`: written as a class, each running with the RegExp object as `this`. */
5
+ export function regexpNatives(rt) {
6
+ const natives = {};
7
+ class RegExpNatives {
8
+ get source() {
9
+ return this.$source;
10
+ }
11
+ get global() {
12
+ return this.$re.global;
13
+ }
14
+ get ignoreCase() {
15
+ return this.$re.ignoreCase;
16
+ }
17
+ get multiline() {
18
+ return this.$re.multiline;
19
+ }
20
+ get dotall() {
21
+ return this.$re.dotAll;
22
+ }
23
+ get extended() {
24
+ return this.$extended;
25
+ }
26
+ get lastIndex() {
27
+ return this.$re.lastIndex;
28
+ }
29
+ set lastIndex(i) {
30
+ this.$re.lastIndex = rt.toInt(i);
31
+ }
32
+ [`${AS3}::exec`](s = "") {
33
+ // As RegExpObject::_exec: a global one from before the start fails,
34
+ // where JavaScript starts from 0.
35
+ const re = this.$re;
36
+ if (re.global && re.lastIndex < 0) {
37
+ re.lastIndex = 0;
38
+ return null;
39
+ }
40
+ const m = re.exec(rt.toString(s));
41
+ return m ? matchArray(rt, m) : null;
42
+ }
43
+ }
44
+ registerNativeClass(natives, "RegExp", RegExpNatives);
45
+ return natives;
46
+ }
47
+ /** A match as AS3 gives it: an Array of the match and its groups, with its index and input. */
48
+ export function matchArray(rt, m) {
49
+ const a = rt.array(Array.from(m));
50
+ if (m.index !== undefined) {
51
+ a.$d.set("index", m.index);
52
+ a.$d.set("input", m.input);
53
+ }
54
+ return a;
55
+ }
56
+ /**
57
+ * A RegExp from its pattern and options, as RegExpClass::construct: AS3's
58
+ * flags g, i, m and s are JavaScript's, and x, extended, drops whitespace
59
+ * and comments from the pattern.
60
+ */
61
+ function newRegExp(rt, cls, args) {
62
+ const [pattern, options] = args;
63
+ const o = cls.$it.instance();
64
+ // A RegExp with flags is a TypeError, as ECMA-262 15.10.4.1 has it.
65
+ if (pattern?.$re instanceof RegExp && options !== undefined) {
66
+ throw rt.error("TypeError", 1100);
67
+ }
68
+ if (pattern?.$re instanceof RegExp) {
69
+ o.$source = pattern.$source;
70
+ o.$extended = pattern.$extended;
71
+ o.$re = new RegExp(pattern.$re.source, pattern.$re.flags);
72
+ return o;
73
+ }
74
+ const source = pattern === undefined ? "" : rt.toString(pattern);
75
+ const flags = options === undefined ? "" : rt.toString(options);
76
+ const extended = flags.includes("x");
77
+ const js = [..."gims"].filter((f) => flags.includes(f)).join("");
78
+ o.$source = source;
79
+ o.$extended = extended;
80
+ o.$re = compile(source, js, extended);
81
+ return o;
82
+ }
83
+ /**
84
+ * The JavaScript RegExp of an AS3 pattern (see fromPcre). One that does
85
+ * not compile throws nothing, as in avmplus: it matches nothing.
86
+ */
87
+ export function compile(source, flags, extended = false) {
88
+ if ((source.length > 200 && nestedTooDeep(source)) ||
89
+ (!extended && source.includes("(?<") && variableLookbehind(source))) {
90
+ return new RegExp("(?!)", flags);
91
+ }
92
+ try {
93
+ const re = new RegExp(fromPcre(source, extended, flags.includes("m")), flags);
94
+ // V8 compiles on the first match, where a pattern too large throws: here, once.
95
+ re.test("");
96
+ re.lastIndex = 0;
97
+ return re;
98
+ }
99
+ catch {
100
+ return new RegExp("(?!)", flags);
101
+ }
102
+ }
103
+ /**
104
+ * Whether a lookbehind in `source` may match strings of more than one
105
+ * length, which PCRE 7.3 does not compile: each alternative of the
106
+ * lookbehind must have a fixed length, and each group within it one
107
+ * length whichever of its alternatives matches. A quantifier other than
108
+ * {n}, and a back reference, have no fixed length. JavaScript compiles
109
+ * them all.
110
+ */
111
+ function variableLookbehind(source) {
112
+ let i = 0;
113
+ let refused = false;
114
+ /** The lengths of the alternatives from i to the group's ")", which it steps past; NaN for one with none. */
115
+ const alternatives = () => {
116
+ const lengths = [];
117
+ let length = 0;
118
+ while (i < source.length && source[i] !== ")") {
119
+ if (source[i] === "|") {
120
+ lengths.push(length);
121
+ length = 0;
122
+ i++;
123
+ continue;
124
+ }
125
+ length += quantified(item());
126
+ }
127
+ lengths.push(length);
128
+ i++;
129
+ return lengths;
130
+ };
131
+ /** A group's length, from after its "(": one length, or NaN; a lookaround's is 0. */
132
+ const group = () => {
133
+ const rest = source.slice(i, i + 3);
134
+ if (rest.startsWith("?#")) {
135
+ const end = source.indexOf(")", i);
136
+ i = end < 0 ? source.length : end + 1;
137
+ return 0;
138
+ }
139
+ if (rest.startsWith("?<=") || rest.startsWith("?<!")) {
140
+ i += 3;
141
+ if (alternatives().some(Number.isNaN)) {
142
+ refused = true;
143
+ }
144
+ return 0;
145
+ }
146
+ if (rest.startsWith("?=") || rest.startsWith("?!")) {
147
+ i += 2;
148
+ alternatives();
149
+ return 0;
150
+ }
151
+ if (rest.startsWith("?P=") || /^\?(R|\d)/.test(rest)) {
152
+ i = source.indexOf(")", i) + 1 || source.length;
153
+ return Number.NaN;
154
+ }
155
+ if (source[i] === "?") {
156
+ // ?: ?P<name> or flags, and flags alone, as (?i), are no group.
157
+ const kind = /^\?(?:P<\w*>|[imsxX-]*)/.exec(source.slice(i))?.[0] ?? "?";
158
+ i += kind.length;
159
+ if (source[i] === ")") {
160
+ i++;
161
+ return 0;
162
+ }
163
+ if (source[i] === ":") {
164
+ i++;
165
+ }
166
+ }
167
+ const lengths = alternatives();
168
+ return lengths.every((n) => n === lengths[0]) ? lengths[0] : Number.NaN;
169
+ };
170
+ /** The length of the item at i, which it steps past. */
171
+ const item = () => {
172
+ const c = source[i++];
173
+ if (c === "(") {
174
+ return group();
175
+ }
176
+ if (c === "^" || c === "$") {
177
+ return 0;
178
+ }
179
+ if (c === "[") {
180
+ if (source[i] === "^") {
181
+ i++;
182
+ }
183
+ // A ] first is a literal.
184
+ if (source[i] === "]") {
185
+ i++;
186
+ }
187
+ while (i < source.length && source[i] !== "]") {
188
+ i += source[i] === "\\" ? 2 : 1;
189
+ }
190
+ i++;
191
+ return 1;
192
+ }
193
+ if (c !== "\\") {
194
+ // A character beyond the BMP is one in PCRE's UTF-8 too.
195
+ if ((source.codePointAt(i - 1) ?? 0) > 0xffff) {
196
+ i++;
197
+ }
198
+ return 1;
199
+ }
200
+ const e = source[i++];
201
+ if (e >= "1" && e <= "9") {
202
+ return Number.NaN;
203
+ }
204
+ if ("bBAZzG".includes(e)) {
205
+ return 0;
206
+ }
207
+ if (e === "Q") {
208
+ const end = source.indexOf("\\E", i);
209
+ const literal = source.slice(i, end < 0 ? source.length : end);
210
+ i = end < 0 ? source.length : end + 2;
211
+ return [...literal].length;
212
+ }
213
+ if ((e === "x" || e === "p" || e === "P") && source[i] === "{") {
214
+ i = source.indexOf("}", i) + 1 || source.length;
215
+ }
216
+ else if (e === "c" || e === "p" || e === "P") {
217
+ i++;
218
+ }
219
+ return 1;
220
+ };
221
+ /** An item's length repeated by the quantifier at i, if any, which it steps past. */
222
+ const quantified = (length) => {
223
+ const c = source[i];
224
+ let times = 1;
225
+ if (c === "*" || c === "+" || c === "?") {
226
+ i++;
227
+ times = Number.NaN;
228
+ }
229
+ else if (c === "{") {
230
+ const q = /^\{(\d+)(,(\d*))?\}/.exec(source.slice(i));
231
+ if (!q) {
232
+ return length;
233
+ }
234
+ i += q[0].length;
235
+ times = q[2] === undefined || q[3] === q[1] ? Number(q[1]) : Number.NaN;
236
+ }
237
+ else {
238
+ return length;
239
+ }
240
+ // Lazy or possessive.
241
+ if (source[i] === "?" || source[i] === "+") {
242
+ i++;
243
+ }
244
+ return length * times;
245
+ };
246
+ while (i < source.length && !refused) {
247
+ alternatives();
248
+ }
249
+ return refused;
250
+ }
251
+ /** What avmplus' PCRE 7.3 has room for in its pre-compile workspace, less its safety margin. */
252
+ const WORKSPACE = 2138 - 100;
253
+ /**
254
+ * Whether PCRE fails to compile `source` for nesting groups too deeply:
255
+ * its pre-compile phase keeps, for each open group, the group's opcode
256
+ * (5 bytes for a capture, 3 for any other group) and the item before it,
257
+ * and fails once they pass the workspace, at some 400 nested captures.
258
+ * The items' sizes are PCRE's for the common ones: a literal, a class.
259
+ */
260
+ function nestedTooDeep(source) {
261
+ // The bytes held by the groups open, and by the item before the next one.
262
+ let held = 5;
263
+ let previous = 0;
264
+ const outer = [];
265
+ for (let i = 0; i < source.length; i++) {
266
+ const c = source[i];
267
+ let item = 2;
268
+ if (c === "(") {
269
+ const capture = source[i + 1] !== "?" || source.startsWith("(?P<", i);
270
+ outer.push(held);
271
+ held += previous + (capture ? 5 : 3);
272
+ previous = 0;
273
+ if (held > WORKSPACE) {
274
+ return true;
275
+ }
276
+ // Past the group's kind: ?: ?= ?! ?<= ?<! ?P<name> or flags.
277
+ if (source[i + 1] === "?") {
278
+ const end = source.slice(i + 2).search(/[:=!>)]/);
279
+ i = end < 0 ? source.length : i + 2 + end;
280
+ }
281
+ continue;
282
+ }
283
+ if (c === ")") {
284
+ held = outer.pop() ?? held;
285
+ // The group is the next one's previous item, but what it holds is gone.
286
+ previous = 0;
287
+ continue;
288
+ }
289
+ if (c === "|") {
290
+ previous = 0;
291
+ continue;
292
+ }
293
+ if (c === "\\") {
294
+ i++;
295
+ }
296
+ else if (c === "[") {
297
+ // A class is its opcode and a 32-byte bitmap.
298
+ item = 33;
299
+ i++;
300
+ if (source[i] === "^") {
301
+ i++;
302
+ }
303
+ // A ] first is a literal.
304
+ if (source[i] === "]") {
305
+ i++;
306
+ }
307
+ while (i < source.length && source[i] !== "]") {
308
+ if (source[i] === "\\") {
309
+ i++;
310
+ }
311
+ i++;
312
+ }
313
+ }
314
+ else if (c === "." || c === "^" || c === "$") {
315
+ item = 1;
316
+ }
317
+ else if ("*+?{".includes(c)) {
318
+ continue;
319
+ }
320
+ previous = item;
321
+ if (held + previous > WORKSPACE) {
322
+ return true;
323
+ }
324
+ }
325
+ return false;
326
+ }
327
+ /**
328
+ * A replacement string as avmplus reads it: $0d, a group number d with a
329
+ * leading zero, gives group d and then the digit d again, as avmplus
330
+ * reads both digits but steps past one. JavaScript's $0dd does the same.
331
+ */
332
+ export function replacement(re, text) {
333
+ if (!/\$0[1-9]/.test(text)) {
334
+ return text;
335
+ }
336
+ const groups = new RegExp(`${re.source}|`).exec("").length - 1;
337
+ return text.replace(/\$(\$|0([1-9]))/g, (t, _, d) => d && Number(d) <= groups ? `$0${d}${d}` : t);
338
+ }
339
+ /**
340
+ * PCRE's syntax that JavaScript has otherwise:
341
+ * - a named group (?P<name>...) as (?<name>...), and its reference
342
+ * (?P=name) as \\k<name>;
343
+ * - inline flags, (?i) and (?-i), as a modifier group (?i:...) to the end
344
+ * of the group they are in, and (?i:...) as it is;
345
+ * - extended mode, the x flag, and (?x) and (?x:...) within: whitespace
346
+ * and # comments dropped where it is on;
347
+ * - a comment group (?#...) dropped;
348
+ * - in multiline mode, ^ and $ at PCRE's newlines (LINE_START, LINE_END),
349
+ * multiline as the m flag, (?m) and (?-m) have it where each stands.
350
+ * Escapes and character classes are left as they are.
351
+ */
352
+ function fromPcre(source, extended, multiline) {
353
+ if (!extended && !source.includes("(?") && !(multiline && /[$^]/.test(source))) {
354
+ return source;
355
+ }
356
+ let out = "";
357
+ let x = extended;
358
+ let m = multiline;
359
+ // For each open group, and the pattern itself: the modifier groups to
360
+ // close with it, and whether x was on where it opened.
361
+ const closers = [0];
362
+ const outerX = [x];
363
+ const outerM = [m];
364
+ let inClass = false;
365
+ for (let i = 0; i < source.length; i++) {
366
+ const c = source[i];
367
+ if (c === "\\") {
368
+ out += source.slice(i, i + 2);
369
+ i++;
370
+ continue;
371
+ }
372
+ if (inClass) {
373
+ inClass = c !== "]";
374
+ out += c;
375
+ continue;
376
+ }
377
+ if (x && isSpace(c)) {
378
+ continue;
379
+ }
380
+ if (x && c === "#") {
381
+ while (i + 1 < source.length && source[i + 1] !== "\n") {
382
+ i++;
383
+ }
384
+ continue;
385
+ }
386
+ if (c === "[") {
387
+ inClass = true;
388
+ out += c;
389
+ continue;
390
+ }
391
+ if (c === ")") {
392
+ out += ")".repeat(closers.pop() ?? 0);
393
+ x = outerX.pop() ?? extended;
394
+ m = outerM.pop() ?? multiline;
395
+ if (!closers.length) {
396
+ closers.push(0);
397
+ outerX.push(x);
398
+ outerM.push(m);
399
+ }
400
+ out += c;
401
+ continue;
402
+ }
403
+ if (m && (c === "^" || c === "$")) {
404
+ out += c === "^" ? LINE_START : LINE_END;
405
+ continue;
406
+ }
407
+ if (c !== "(") {
408
+ out += c;
409
+ continue;
410
+ }
411
+ if (source.startsWith("(?#", i)) {
412
+ const end = source.indexOf(")", i);
413
+ i = end < 0 ? source.length : end;
414
+ continue;
415
+ }
416
+ if (source.startsWith("(?P<", i)) {
417
+ out += "(?<";
418
+ i += 3;
419
+ closers.push(0);
420
+ outerX.push(x);
421
+ outerM.push(m);
422
+ continue;
423
+ }
424
+ const reference = /^\(\?P=(\w+)\)/.exec(source.slice(i));
425
+ if (reference) {
426
+ out += `\\k<${reference[1]}>`;
427
+ i += reference[0].length - 1;
428
+ continue;
429
+ }
430
+ const flags = /^\(\?([imsx]*)(?:-([imsx]*))?([:)])/.exec(source.slice(i));
431
+ if (flags && (flags[1] || flags[2])) {
432
+ const on = flags[1];
433
+ const off = flags[2] ?? "";
434
+ // JavaScript's modifiers are i, m and s; x is applied here.
435
+ const js = modifiers(on.replace("x", ""), off.replace("x", ""));
436
+ const scoped = flags[3] === ":";
437
+ if (scoped) {
438
+ closers.push(0);
439
+ outerX.push(x);
440
+ outerM.push(m);
441
+ out += js ? `(?${js}:` : "(?:";
442
+ }
443
+ else if (js) {
444
+ out += `(?${js}:`;
445
+ closers[closers.length - 1]++;
446
+ }
447
+ if (on.includes("x")) {
448
+ x = true;
449
+ }
450
+ else if (off.includes("x")) {
451
+ x = false;
452
+ }
453
+ if (on.includes("m")) {
454
+ m = true;
455
+ }
456
+ else if (off.includes("m")) {
457
+ m = false;
458
+ }
459
+ i += flags[0].length - 1;
460
+ continue;
461
+ }
462
+ out += c;
463
+ closers.push(0);
464
+ outerX.push(x);
465
+ outerM.push(m);
466
+ }
467
+ return out + ")".repeat(closers[0]);
468
+ }
469
+ // PCRE's newlines, as avmplus builds it: any of these, \r\n as one.
470
+ const NEWLINE = "[\\n\\r\\v\\f\\x85\\u2028\\u2029]";
471
+ /** Multiline ^: the start, or after a newline, but not at the end, nor within \r\n. */
472
+ const LINE_START = `(?:(?<![\\s\\S])|(?<=${NEWLINE})(?!(?<=\\r)\\n)(?=[\\s\\S]))`;
473
+ /** Multiline $: the end, or before any newline. */
474
+ const LINE_END = `(?=${NEWLINE}|(?![\\s\\S]))`;
475
+ const modifiers = (on, off) => (on || off ? `${on}${off ? `-${off}` : ""}` : "");
476
+ /** PCRE's whitespace, which extended mode drops. */
477
+ const isSpace = (c) => c === " " || c === "\t" || c === "\n" || c === "\r" || c === "\f" || c === "\v";
478
+ export const regexpHooks = {
479
+ RegExp: {
480
+ construct: newRegExp,
481
+ // RegExp.prototype is a RegExp, of the empty pattern, which avmplus writes (?:).
482
+ prototype: (rt, cls) => newRegExp(rt, cls, ["(?:)"]),
483
+ call: (rt, cls, args) => args[0]?.$re instanceof RegExp && args[1] === undefined ? args[0] : newRegExp(rt, cls, args),
484
+ },
485
+ };