@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,299 @@
1
+ // flash.net.SharedObject, the local kind: its data kept in the host's
2
+ // storage (Scripting.storage) as Flash's .sol file has it, written when it
3
+ // is flushed, read when getLocal first asks for it, one object for a name
4
+ // and path. Remote ones, getRemote's, are not here.
5
+ //
6
+ // A .sol file: 0x00BF, the length of what follows, "TCSO", 00 04 00 00 00
7
+ // 00, the name (u16 length, UTF-8), the AMF version as a u32 (0 or 3),
8
+ // then each of the data's properties: its name (AMF3: a string's U29
9
+ // header; AMF0: u16 length), its value as writeObject writes it, and a 0.
10
+ // Flash's size is the file's, 0 for none, as the shared-objects case has it.
11
+ import { avm2 } from "../../../../runtime/index.js";
12
+ // SharedObject's private invoke codes, as its AS3 numbers them.
13
+ const FLUSH = 2;
14
+ const CLOSE = 3;
15
+ const GET_SIZE = 4;
16
+ const CLEAR = 6;
17
+ /** What a name may not hold, as Flash refuses it (Error #2134); % it allows. */
18
+ const BAD_NAME = /[~&\\;:"',<>?#\s]/;
19
+ export function sharedObjectNatives(s) {
20
+ const natives = {};
21
+ /** The shared objects getLocal made, by key: one for each, as Flash's. */
22
+ const open = new Map();
23
+ let defaultEncoding = 3;
24
+ let preventBackup = false;
25
+ const encoder = new TextEncoder();
26
+ const decoder = new TextDecoder();
27
+ const byteArray = (encoding) => {
28
+ const array = s.rt.construct(s.rt.classNamed("flash.utils::ByteArray"));
29
+ s.rt.setProperty(array, avm2.qname(avm2.publicNs, "objectEncoding"), encoding);
30
+ return array;
31
+ };
32
+ /** What `o` serializes to now, for destroy to tell a change by; null where it cannot. */
33
+ const saved = (o) => {
34
+ try {
35
+ return serialize(o);
36
+ }
37
+ catch {
38
+ return null;
39
+ }
40
+ };
41
+ /** Write `o`'s .sol file, or remove it for no data: false where storage refuses, as a full quota, which flush reports as #2130. */
42
+ const write = (o) => {
43
+ const file = serialize(o);
44
+ try {
45
+ if (file.length) {
46
+ s.storage.set(o.$key, file);
47
+ }
48
+ else {
49
+ s.storage.remove(o.$key);
50
+ }
51
+ }
52
+ catch {
53
+ return false;
54
+ }
55
+ o.$saved = file;
56
+ return true;
57
+ };
58
+ /**
59
+ * The .sol file of `o`'s data, in its encoding; none, empty, for no
60
+ * properties. AMF0 is the runtime's to write, which has none yet.
61
+ */
62
+ const serialize = (o) => {
63
+ if (o.$encoding !== 3) {
64
+ throw s.rt.unsupported("an AMF0 SharedObject");
65
+ }
66
+ // Chunks joined once at the end: a value can be large enough that
67
+ // spreading its bytes into one call would overflow the stack.
68
+ const chunks = [];
69
+ for (const [key, value] of o.$data.$d ?? new Map()) {
70
+ const name = encoder.encode(String(key));
71
+ chunks.push(u29((name.length << 1) | 1), name);
72
+ const array = byteArray(o.$encoding);
73
+ s.rt.callProperty(array, avm2.qname(avm2.publicNs, "writeObject"), value);
74
+ const b = avm2.bytesOf(s.rt, array);
75
+ chunks.push(b.buffer.subarray(0, b.length), END);
76
+ }
77
+ if (chunks.length === 0) {
78
+ return new Uint8Array(0);
79
+ }
80
+ const name = encoder.encode(o.$name);
81
+ const header = new Uint8Array(6 + 10 + 2 + name.length + 4);
82
+ header.set([0x00, 0xbf], 0);
83
+ header.set([0x54, 0x43, 0x53, 0x4f, 0, 4, 0, 0, 0, 0], 6);
84
+ header.set([name.length >> 8, name.length & 0xff], 16);
85
+ header.set(name, 18);
86
+ header[header.length - 1] = 3;
87
+ let n = header.length;
88
+ for (const chunk of chunks) {
89
+ n += chunk.length;
90
+ }
91
+ const file = new Uint8Array(n);
92
+ file.set(header);
93
+ new DataView(file.buffer).setUint32(2, n - 6);
94
+ let at = header.length;
95
+ for (const chunk of chunks) {
96
+ file.set(chunk, at);
97
+ at += chunk.length;
98
+ }
99
+ return file;
100
+ };
101
+ /** The data a .sol file holds, or null for one it cannot read. */
102
+ const deserialize = (bytes) => {
103
+ if (bytes.length < 18 || bytes[0] !== 0x00 || bytes[1] !== 0xbf) {
104
+ return null;
105
+ }
106
+ let at = 16;
107
+ const nameLength = (bytes[at] << 8) | bytes[at + 1];
108
+ at += 2 + nameLength;
109
+ const encoding = bytes[at + 3] === 3 ? 3 : 0;
110
+ at += 4;
111
+ const array = byteArray(encoding);
112
+ const b = avm2.bytesOf(s.rt, array);
113
+ b.write(bytes);
114
+ const data = s.rt.newObject([]);
115
+ try {
116
+ while (at < bytes.length) {
117
+ let length;
118
+ if (encoding === 3) {
119
+ const [n, next] = readU29(bytes, at);
120
+ length = n >> 1;
121
+ at = next;
122
+ }
123
+ else {
124
+ length = (bytes[at] << 8) | bytes[at + 1];
125
+ at += 2;
126
+ }
127
+ const key = decoder.decode(bytes.subarray(at, at + length));
128
+ b.position = (at + length) >>> 0;
129
+ const value = s.rt.callProperty(array, avm2.qname(avm2.publicNs, "readObject"));
130
+ s.rt.setProperty(data, avm2.qname(avm2.publicNs, key), value);
131
+ // The 0 after each value.
132
+ at = b.position + 1;
133
+ }
134
+ }
135
+ catch {
136
+ return null;
137
+ }
138
+ return data;
139
+ };
140
+ const unavailable = (url) => {
141
+ if (url === null || url === undefined) {
142
+ throw s.rt.error("TypeError", 2007, "url");
143
+ }
144
+ throw s.rt.error("Error", 2014);
145
+ };
146
+ class SharedObjectNatives {
147
+ static getLocal(name, localPath, secure) {
148
+ if (name === null || name === undefined) {
149
+ throw s.rt.error("TypeError", 2007, "name");
150
+ }
151
+ const text = s.rt.toString(name);
152
+ if (text === "" || BAD_NAME.test(text)) {
153
+ throw s.rt.error("Error", 2134);
154
+ }
155
+ // The SWF whose code asks, which a loaded one's is, not the main SWF.
156
+ const url = new URL(s.code.codeUrl(), "file:///");
157
+ // A secure one only for a SWF that came over HTTPS; adl, whose SWFs
158
+ // never do, refuses it so.
159
+ if (secure && url.protocol !== "https:") {
160
+ throw s.rt.error("Error", 2134);
161
+ }
162
+ // By default the SWF's own path, file name and all, which is never a
163
+ // directory's; one known by no file name is kept apart from its
164
+ // directory's as well. A path it names must lead to the SWF: "/" or
165
+ // one of the directories above it, as adl refuses any other.
166
+ const own = url.pathname.endsWith("/") ? `${url.pathname}[swf]` : url.pathname;
167
+ let path = own;
168
+ if (localPath !== null && localPath !== undefined) {
169
+ path = s.rt.toString(localPath);
170
+ const directory = path.endsWith("/") ? path : `${path}/`;
171
+ if (path !== own && !own.startsWith(directory)) {
172
+ throw s.rt.error("Error", 2134);
173
+ }
174
+ }
175
+ // Secure ones apart: a SWF that comes over HTTP never sees them.
176
+ const key = `${url.host}${path.startsWith("/") ? "" : "/"}${path}/${text}${secure ? "#secure" : ""}`;
177
+ const known = open.get(key);
178
+ if (known) {
179
+ return known;
180
+ }
181
+ const o = s.rt.construct(s.rt.classNamed("flash.net::SharedObject"));
182
+ o.$key = key;
183
+ o.$name = text;
184
+ o.$encoding = defaultEncoding;
185
+ o.$client = o;
186
+ const stored = s.storage.get(key);
187
+ o.$data = (stored && deserialize(stored)) ?? s.rt.newObject([]);
188
+ o.$saved = saved(o);
189
+ open.set(key, o);
190
+ return o;
191
+ }
192
+ // Hidden from authoring tools, and refused to content: a SWF in the
193
+ // browser's Flash Player 32 or in adl gets Error #2014 whatever it
194
+ // names, its own site included, and nothing is deleted. Taking them
195
+ // as named would let any SWF on a page's origin measure or wipe every
196
+ // other SWF's saves there.
197
+ static deleteAll(url) {
198
+ return unavailable(url);
199
+ }
200
+ static getDiskUsage(url) {
201
+ return unavailable(url);
202
+ }
203
+ static get defaultObjectEncoding() {
204
+ return defaultEncoding;
205
+ }
206
+ static set defaultObjectEncoding(v) {
207
+ defaultEncoding = s.rt.toUint(v) === 0 ? 0 : 3;
208
+ }
209
+ static get "flash.net:SharedObject::preventBackupImpl"() {
210
+ return preventBackup;
211
+ }
212
+ static set "flash.net:SharedObject::preventBackupImpl"(v) {
213
+ preventBackup = !!v;
214
+ }
215
+ get data() {
216
+ return this.$data;
217
+ }
218
+ get objectEncoding() {
219
+ return this.$encoding;
220
+ }
221
+ set objectEncoding(v) {
222
+ this.$encoding = s.rt.toUint(v) === 0 ? 0 : 3;
223
+ }
224
+ get client() {
225
+ return this.$client;
226
+ }
227
+ set client(v) {
228
+ this.$client = v;
229
+ }
230
+ setDirty(_name) { }
231
+ // Flush returns true, which flush reports as FLUSHED, or false for #2130.
232
+ "flash.net:SharedObject::invoke"(code, ..._args) {
233
+ switch (s.rt.toUint(code)) {
234
+ case FLUSH:
235
+ return write(this);
236
+ case GET_SIZE:
237
+ return serialize(this).length;
238
+ case CLEAR:
239
+ this.$data = s.rt.newObject([]);
240
+ this.$saved = new Uint8Array(0);
241
+ s.storage.remove(this.$key);
242
+ return undefined;
243
+ case CLOSE:
244
+ return undefined;
245
+ default:
246
+ throw s.rt.unsupported("SharedObject's remote calls");
247
+ }
248
+ }
249
+ }
250
+ // Flash wrote each open object as its SWF went: a destroyed player
251
+ // writes those a script changed since they were read or written. Never
252
+ // a removal: an object whose stored file it could not read starts empty,
253
+ // and an unchanged one would take the file away.
254
+ s.flushSharedObjects = () => {
255
+ for (const o of open.values()) {
256
+ try {
257
+ const file = serialize(o);
258
+ if (file.length && !sameBytes(file, o.$saved)) {
259
+ s.storage.set(o.$key, file);
260
+ }
261
+ }
262
+ catch {
263
+ // One that cannot be written, AMF0's or a full quota's, keeps the others from nothing.
264
+ }
265
+ }
266
+ };
267
+ avm2.registerNativeClass(natives, "flash.net::SharedObject", SharedObjectNatives);
268
+ return natives;
269
+ }
270
+ function sameBytes(a, b) {
271
+ return b !== null && a.length === b.length && a.every((byte, i) => byte === b[i]);
272
+ }
273
+ /** The 0 after each value. */
274
+ const END = new Uint8Array(1);
275
+ /** An AMF3 U29: 1 to 4 bytes, 7 bits each but the fourth's 8. */
276
+ function u29(n) {
277
+ if (n < 0x80) {
278
+ return Uint8Array.of(n);
279
+ }
280
+ if (n < 0x4000) {
281
+ return Uint8Array.of((n >> 7) | 0x80, n & 0x7f);
282
+ }
283
+ if (n < 0x200000) {
284
+ return Uint8Array.of((n >> 14) | 0x80, ((n >> 7) & 0x7f) | 0x80, n & 0x7f);
285
+ }
286
+ return Uint8Array.of((n >> 22) | 0x80, ((n >> 15) & 0x7f) | 0x80, ((n >> 8) & 0x7f) | 0x80, n & 0xff);
287
+ }
288
+ /** The U29 at `at`, and where what follows it starts. */
289
+ function readU29(bytes, at) {
290
+ let n = 0;
291
+ for (let i = 0; i < 3; i++) {
292
+ const b = bytes[at++];
293
+ n = (n << 7) | (b & 0x7f);
294
+ if (!(b & 0x80)) {
295
+ return [n, at];
296
+ }
297
+ }
298
+ return [(n << 8) | bytes[at], at + 1];
299
+ }
@@ -0,0 +1,282 @@
1
+ // flash.net.Socket: DataInput/DataOutput over a host-provided TCP transport.
2
+ import { avm2 } from "../../../../runtime/index.js";
3
+ import { dispatchEvent } from "../../../scripting/events.js";
4
+ const UNKNOWN = {
5
+ localAddress: "",
6
+ localPort: 0,
7
+ remoteAddress: "",
8
+ remotePort: 0,
9
+ };
10
+ export function socketNatives(s) {
11
+ const natives = {};
12
+ const connections = new WeakMap();
13
+ const byteArray = () => s.rt.classNamed("flash.utils::ByteArray");
14
+ const connection = (o) => {
15
+ let c = connections.get(o);
16
+ if (!c) {
17
+ c = {
18
+ input: s.rt.construct(byteArray()),
19
+ output: s.rt.construct(byteArray()),
20
+ transport: null,
21
+ generation: 0,
22
+ connected: false,
23
+ connecting: false,
24
+ failed: false,
25
+ endpoints: null,
26
+ };
27
+ connections.set(o, c);
28
+ }
29
+ return c;
30
+ };
31
+ // The runtime's message, which is the debugger player's text or the release player's number alone.
32
+ const invalid = () => {
33
+ throw s.rt.error("flash.errors::IOError", 2002);
34
+ };
35
+ const active = (o) => {
36
+ const c = connection(o);
37
+ if (!c.connected) {
38
+ invalid();
39
+ }
40
+ return c;
41
+ };
42
+ const input = (o, method, ...args) => s.rt.callProperty(active(o).input, s.rt.publicName(method), ...args);
43
+ const output = (o, method, ...args) => s.rt.callProperty(active(o).output, s.rt.publicName(method), ...args);
44
+ const event = (o, type) => {
45
+ dispatchEvent(s, o, s.event(type));
46
+ };
47
+ class SocketNatives {
48
+ "flash.net:Socket::internalGetSecurityErrorMessage"(host, port) {
49
+ return `Error #2048: Security sandbox violation: ${String(host)}:${Number(port)}`;
50
+ }
51
+ "flash.net:Socket::internalConnect"(host, port) {
52
+ const c = connection(this);
53
+ c.transport?.close();
54
+ c.generation++;
55
+ c.transport = null;
56
+ c.connected = false;
57
+ c.connecting = true;
58
+ c.failed = false;
59
+ c.endpoints = UNKNOWN;
60
+ avm2.bytesOf(s.rt, c.input).clear();
61
+ avm2.bytesOf(s.rt, c.output).clear();
62
+ const generation = c.generation;
63
+ const current = () => c.generation === generation;
64
+ const fail = (message) => {
65
+ if (!current()) {
66
+ return;
67
+ }
68
+ c.generation++;
69
+ c.connecting = false;
70
+ c.connected = false;
71
+ c.transport?.close();
72
+ c.transport = null;
73
+ c.failed = true;
74
+ dispatchEvent(s, this, s.rt.construct(s.rt.classNamed("flash.events::IOErrorEvent"), "ioError", false, false, message));
75
+ };
76
+ if (!s.socket) {
77
+ s.loads.deferHostEvent(() => fail("Error #2031: Socket Error."));
78
+ return;
79
+ }
80
+ try {
81
+ c.transport = s.socket.connect(host === null ? "localhost" : s.rt.toString(host), s.rt.toInt(port), {
82
+ open: (endpoints) => s.loads.deferHostEvent(() => {
83
+ if (!current()) {
84
+ return;
85
+ }
86
+ c.connecting = false;
87
+ c.connected = true;
88
+ c.endpoints = endpoints ? { ...endpoints } : UNKNOWN;
89
+ event(this, "connect");
90
+ }),
91
+ data: (bytes) => {
92
+ const copy = bytes.slice();
93
+ s.loads.deferHostEvent(() => {
94
+ if (!current() || !c.connected) {
95
+ return;
96
+ }
97
+ const buffer = avm2.bytesOf(s.rt, c.input);
98
+ if (buffer.position >= 65536 && buffer.position * 2 >= buffer.length) {
99
+ const unread = buffer.available;
100
+ buffer.buffer.copyWithin(0, buffer.position, buffer.length);
101
+ buffer.setLength(unread);
102
+ buffer.position = 0;
103
+ }
104
+ const position = buffer.position;
105
+ buffer.position = buffer.length;
106
+ buffer.write(copy);
107
+ buffer.position = position;
108
+ dispatchEvent(s, this, s.rt.construct(s.rt.classNamed("flash.events::ProgressEvent"), "socketData", false, false, copy.length, 0));
109
+ });
110
+ },
111
+ close: () => s.loads.deferHostEvent(() => {
112
+ if (!current()) {
113
+ return;
114
+ }
115
+ if (c.connecting) {
116
+ fail("Error #2031: Socket Error.");
117
+ return;
118
+ }
119
+ c.connected = false;
120
+ c.connecting = false;
121
+ c.transport = null;
122
+ event(this, "close");
123
+ }),
124
+ error: (message) => s.loads.deferHostEvent(() => fail(message)),
125
+ });
126
+ }
127
+ catch (e) {
128
+ s.loads.deferHostEvent(() => fail(String(e)));
129
+ }
130
+ }
131
+ "flash.net:Socket::didFailureOccur"() {
132
+ return connection(this).failed;
133
+ }
134
+ "flash.net:Socket::internalClose"() {
135
+ const c = connection(this);
136
+ if (!c.connected && !c.connecting) {
137
+ invalid();
138
+ }
139
+ c.generation++;
140
+ c.transport?.close();
141
+ c.transport = null;
142
+ c.connected = false;
143
+ c.connecting = false;
144
+ c.endpoints = null;
145
+ }
146
+ "flash.net:Socket::OnError"() { }
147
+ "flash.net:Socket::wasCalledByAppContent"() {
148
+ return false;
149
+ }
150
+ /**
151
+ * AIR's, as adl reads them: null and 0 before a connection and after
152
+ * close(), "" and 0 while one opens or after it fails, and the ends,
153
+ * resolved, once open, kept after the peer closes.
154
+ */
155
+ get localAddress() {
156
+ return connection(this).endpoints?.localAddress ?? null;
157
+ }
158
+ get localPort() {
159
+ return connection(this).endpoints?.localPort ?? 0;
160
+ }
161
+ get remoteAddress() {
162
+ return connection(this).endpoints?.remoteAddress ?? null;
163
+ }
164
+ get remotePort() {
165
+ return connection(this).endpoints?.remotePort ?? 0;
166
+ }
167
+ get connected() {
168
+ return connection(this).connected;
169
+ }
170
+ get bytesAvailable() {
171
+ return avm2.bytesOf(s.rt, connection(this).input).available;
172
+ }
173
+ get bytesPending() {
174
+ return avm2.bytesOf(s.rt, connection(this).output).length;
175
+ }
176
+ flush() {
177
+ const c = active(this);
178
+ const bytes = avm2.bytesOf(s.rt, c.output);
179
+ if (bytes.length !== 0) {
180
+ c.transport?.send(bytes.buffer.slice(0, bytes.length));
181
+ bytes.setLength(0);
182
+ bytes.position = 0;
183
+ }
184
+ }
185
+ readBytes(bytes, offset, length) {
186
+ input(this, "readBytes", bytes, offset, length);
187
+ }
188
+ readBoolean() {
189
+ return input(this, "readBoolean");
190
+ }
191
+ readByte() {
192
+ return input(this, "readByte");
193
+ }
194
+ readUnsignedByte() {
195
+ return input(this, "readUnsignedByte");
196
+ }
197
+ readShort() {
198
+ return input(this, "readShort");
199
+ }
200
+ readUnsignedShort() {
201
+ return input(this, "readUnsignedShort");
202
+ }
203
+ readInt() {
204
+ return input(this, "readInt");
205
+ }
206
+ readUnsignedInt() {
207
+ return input(this, "readUnsignedInt");
208
+ }
209
+ readFloat() {
210
+ return input(this, "readFloat");
211
+ }
212
+ readDouble() {
213
+ return input(this, "readDouble");
214
+ }
215
+ readUTF() {
216
+ return input(this, "readUTF");
217
+ }
218
+ readUTFBytes(length) {
219
+ return input(this, "readUTFBytes", length);
220
+ }
221
+ readMultiByte(length, charset) {
222
+ return input(this, "readMultiByte", length, charset);
223
+ }
224
+ readObject() {
225
+ return input(this, "readObject");
226
+ }
227
+ writeBytes(bytes, offset, length) {
228
+ output(this, "writeBytes", bytes, offset, length);
229
+ }
230
+ writeBoolean(value) {
231
+ output(this, "writeBoolean", value);
232
+ }
233
+ writeByte(value) {
234
+ output(this, "writeByte", value);
235
+ }
236
+ writeShort(value) {
237
+ output(this, "writeShort", value);
238
+ }
239
+ writeInt(value) {
240
+ output(this, "writeInt", value);
241
+ }
242
+ writeUnsignedInt(value) {
243
+ output(this, "writeUnsignedInt", value);
244
+ }
245
+ writeFloat(value) {
246
+ output(this, "writeFloat", value);
247
+ }
248
+ writeDouble(value) {
249
+ output(this, "writeDouble", value);
250
+ }
251
+ writeMultiByte(value, charset) {
252
+ output(this, "writeMultiByte", value, charset);
253
+ }
254
+ writeUTF(value) {
255
+ output(this, "writeUTF", value);
256
+ }
257
+ writeUTFBytes(value) {
258
+ output(this, "writeUTFBytes", value);
259
+ }
260
+ writeObject(value) {
261
+ output(this, "writeObject", value);
262
+ }
263
+ get objectEncoding() {
264
+ return s.rt.getProperty(connection(this).input, s.rt.publicName("objectEncoding"));
265
+ }
266
+ set objectEncoding(value) {
267
+ const c = connection(this);
268
+ s.rt.setProperty(c.input, s.rt.publicName("objectEncoding"), value);
269
+ s.rt.setProperty(c.output, s.rt.publicName("objectEncoding"), value);
270
+ }
271
+ get endian() {
272
+ return s.rt.getProperty(connection(this).input, s.rt.publicName("endian"));
273
+ }
274
+ set endian(value) {
275
+ const c = connection(this);
276
+ s.rt.setProperty(c.input, s.rt.publicName("endian"), value);
277
+ s.rt.setProperty(c.output, s.rt.publicName("endian"), value);
278
+ }
279
+ }
280
+ avm2.registerNativeClass(natives, "flash.net::Socket", SocketNatives);
281
+ return natives;
282
+ }
@@ -0,0 +1,93 @@
1
+ // flash.net.URLRequest: a URL and how to ask for it, kept as fields.
2
+ import { avm2 } from "../../../../runtime/index.js";
3
+ export function urlRequestNatives(s) {
4
+ const natives = {};
5
+ class URLRequestNatives {
6
+ get url() {
7
+ return this.$url ?? null;
8
+ }
9
+ set url(v) {
10
+ this.$url = v === null || v === undefined ? null : String(v);
11
+ }
12
+ get data() {
13
+ return this.$data ?? null;
14
+ }
15
+ set data(v) {
16
+ this.$data = v;
17
+ }
18
+ get method() {
19
+ return this.$method ?? "GET";
20
+ }
21
+ "flash.net:URLRequest::setMethod"(v) {
22
+ this.$method = String(v);
23
+ }
24
+ get contentType() {
25
+ return this.$contentType ?? "application/x-www-form-urlencoded";
26
+ }
27
+ set contentType(v) {
28
+ this.$contentType = v;
29
+ }
30
+ get requestHeaders() {
31
+ if (!this.$headers) {
32
+ this.$headers = s.rt.array([]);
33
+ }
34
+ return this.$headers;
35
+ }
36
+ "flash.net:URLRequest::setRequestHeaders"(v) {
37
+ this.$headers = v;
38
+ }
39
+ get digest() {
40
+ return this.$digest ?? null;
41
+ }
42
+ set digest(v) {
43
+ this.$digest = v;
44
+ }
45
+ useRedirectedURL() {
46
+ // Nothing redirects.
47
+ }
48
+ get followRedirects() {
49
+ return this.$followRedirects ?? true;
50
+ }
51
+ set followRedirects(v) {
52
+ this.$followRedirects = !!v;
53
+ }
54
+ get userAgent() {
55
+ return this.$userAgent ?? null;
56
+ }
57
+ set userAgent(v) {
58
+ this.$userAgent = v;
59
+ }
60
+ get manageCookies() {
61
+ return this.$manageCookies ?? true;
62
+ }
63
+ set manageCookies(v) {
64
+ this.$manageCookies = !!v;
65
+ }
66
+ get useCache() {
67
+ return this.$useCache ?? true;
68
+ }
69
+ set useCache(v) {
70
+ this.$useCache = !!v;
71
+ }
72
+ get cacheResponse() {
73
+ return this.$cacheResponse ?? true;
74
+ }
75
+ set cacheResponse(v) {
76
+ this.$cacheResponse = !!v;
77
+ }
78
+ "flash.net:URLRequest::_SetIdleTimeout"(v) {
79
+ this.$idleTimeout = Number(v);
80
+ }
81
+ get idleTimeout() {
82
+ return this.$idleTimeout ?? 0;
83
+ }
84
+ get authenticate() {
85
+ return this.$authenticate ?? true;
86
+ }
87
+ set authenticate(v) {
88
+ this.$authenticate = !!v;
89
+ }
90
+ }
91
+ avm2.registerNativeClass(natives, "flash.net::URLRequest", URLRequestNatives);
92
+ return natives;
93
+ }