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