@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,245 @@
1
+ import { avm2 } from "../../../../runtime/index.js";
2
+ import { bounds, boundsIn } from "../../../display/bounds.js";
3
+ import { TRANSFORM } from "../../../display/display.js";
4
+ import { concat } from "../../../display/geometry.js";
5
+ import { determinant3D, identity3D, invert3D, multiply3D, } from "../../../display/matrix3d.js";
6
+ import { alwaysProjects, projectionFrom, projectionObject } from "./PerspectiveProjection.js";
7
+ const MATRIX = ["a", "b", "c", "d", "tx", "ty"];
8
+ const COLOR = [
9
+ ["rMul", "redMultiplier"],
10
+ ["gMul", "greenMultiplier"],
11
+ ["bMul", "blueMultiplier"],
12
+ ["aMul", "alphaMultiplier"],
13
+ ["rAdd", "redOffset"],
14
+ ["gAdd", "greenOffset"],
15
+ ["bAdd", "blueOffset"],
16
+ ["aAdd", "alphaOffset"],
17
+ ];
18
+ // Made once: a script reads and writes a transform on every frame.
19
+ const MATRIX_NAMES = MATRIX.map((k) => avm2.qname(avm2.publicNs, k));
20
+ const COLOR_NAMES = COLOR.map(([, name]) => avm2.qname(avm2.publicNs, name));
21
+ const IDENTITY_COLOR = {
22
+ rMul: 1,
23
+ gMul: 1,
24
+ bMul: 1,
25
+ aMul: 1,
26
+ rAdd: 0,
27
+ gAdd: 0,
28
+ bAdd: 0,
29
+ aAdd: 0,
30
+ };
31
+ /** A new flash.geom.Matrix of `m`. */
32
+ function matrixObject(s, m) {
33
+ return s.rt.construct(s.rt.classNamed("flash.geom::Matrix"), m.a, m.b, m.c, m.d, m.tx, m.ty);
34
+ }
35
+ /** The matrix a flash.geom.Matrix holds. */
36
+ export function matrixOf(s, o) {
37
+ const value = (i) => Number(s.rt.getProperty(o, MATRIX_NAMES[i]));
38
+ return { a: value(0), b: value(1), c: value(2), d: value(3), tx: value(4), ty: value(5) };
39
+ }
40
+ /** A new flash.geom.ColorTransform of `c`. */
41
+ function colorObject(s, c) {
42
+ return s.rt.construct(s.rt.classNamed("flash.geom::ColorTransform"), c.rMul, c.gMul, c.bMul, c.aMul, c.rAdd, c.gAdd, c.bAdd, c.aAdd);
43
+ }
44
+ /** The color transform a flash.geom.ColorTransform holds. */
45
+ export function colorOf(s, o) {
46
+ const value = (i) => Number(s.rt.getProperty(o, COLOR_NAMES[i]));
47
+ return {
48
+ rMul: value(0),
49
+ gMul: value(1),
50
+ bMul: value(2),
51
+ aMul: value(3),
52
+ rAdd: value(4),
53
+ gAdd: value(5),
54
+ bAdd: value(6),
55
+ aAdd: value(7),
56
+ };
57
+ }
58
+ export function transformNatives(s) {
59
+ const natives = {};
60
+ /** Each 3D object's own Matrix3D, while it shares the object's matrix (`matrix3D`). */
61
+ const bound = new WeakMap();
62
+ class TransformNatives {
63
+ "flash.geom:Transform::ctor"(display) {
64
+ this.$display = display.$display;
65
+ }
66
+ /** Null in 3D. */
67
+ get matrix() {
68
+ return this.$display.space ? null : matrixObject(s, this.$display.matrix);
69
+ }
70
+ /** Null puts the object in 3D, its matrix3D made from the 2D one; a matrix takes it back to 2D. */
71
+ set matrix(v) {
72
+ this.$display.touch();
73
+ if (v) {
74
+ this.$display.setMatrix(matrixOf(s, v));
75
+ }
76
+ else {
77
+ this.$display.enter3D();
78
+ }
79
+ }
80
+ get colorTransform() {
81
+ return colorObject(s, this.$display.colorTransform ?? IDENTITY_COLOR);
82
+ }
83
+ set colorTransform(v) {
84
+ if (v) {
85
+ this.$display.colorTransform = colorOf(s, v);
86
+ this.$display.touch();
87
+ this.$display.invalidate(TRANSFORM);
88
+ }
89
+ }
90
+ /**
91
+ * Its own scroll's shift left out, as Flash's does, its parents' taken in; null for a 3D
92
+ * object. Under one, adl gives it in the space of the bitmap that object is drawn into: up
93
+ * to the 3D object, then moved by the bitmap's corner, two pixels out from its bounds'
94
+ * top left out to whole pixels (the `three-d-bounds` case).
95
+ */
96
+ get concatenatedMatrix() {
97
+ const d = this.$display;
98
+ if (d.space) {
99
+ return null;
100
+ }
101
+ let m = d.matrix;
102
+ let p = d.parent;
103
+ for (; p && p !== s.stage && !p.space; p = p.parent) {
104
+ m = concat(m, p.placed);
105
+ }
106
+ const r = p?.space ? bounds(p, true) : null;
107
+ if (r) {
108
+ m = { ...m, tx: m.tx + 2 - Math.floor(r.xMin), ty: m.ty + 2 - Math.floor(r.yMin) };
109
+ }
110
+ return matrixObject(s, m);
111
+ }
112
+ /** The color transform to the stage: multipliers multiplied, offsets carried through the parents' multipliers. */
113
+ get concatenatedColorTransform() {
114
+ const c = { ...(this.$display.colorTransform ?? IDENTITY_COLOR) };
115
+ for (let p = this.$display.parent; p && p !== s.stage; p = p.parent) {
116
+ const q = p.colorTransform;
117
+ if (!q) {
118
+ continue;
119
+ }
120
+ for (const [mul, , add] of [
121
+ ["rMul", 0, "rAdd"],
122
+ ["gMul", 0, "gAdd"],
123
+ ["bMul", 0, "bAdd"],
124
+ ["aMul", 0, "aAdd"],
125
+ ]) {
126
+ c[add] = c[add] * q[mul] + q[add];
127
+ c[mul] = c[mul] * q[mul];
128
+ }
129
+ }
130
+ return colorObject(s, c);
131
+ }
132
+ /**
133
+ * The object's own Matrix3D, null in 2D: one, which shares its matrix, so that what a script
134
+ * does to it moves the object and what the object's properties do shows in it, as adl's
135
+ * does (Matrix3D's natives tell its `$owner`). A new one once the object leaves 3D.
136
+ */
137
+ get matrix3D() {
138
+ const d = this.$display;
139
+ const space = d.space;
140
+ if (!space) {
141
+ return null;
142
+ }
143
+ let m = bound.get(d);
144
+ if (!m || m.$matrix3D !== space.raw) {
145
+ m = s.rt.construct(s.rt.classNamed("flash.geom::Matrix3D"));
146
+ m.$matrix3D = space.raw;
147
+ m.$owner = d;
148
+ bound.set(d, m);
149
+ }
150
+ return m;
151
+ }
152
+ /**
153
+ * Taken as the object's own, and apart into the 3D properties, as adl
154
+ * does, even one of the same values; null back to 2D, at the identity.
155
+ * The object's own Matrix3D set back changes nothing, its properties
156
+ * kept as they were set. One that is another object's is refused, as is
157
+ * any whose float32 determinant is 0.
158
+ */
159
+ set matrix3D(v) {
160
+ const d = this.$display;
161
+ const held = bound.get(d);
162
+ if (!v) {
163
+ if (held) {
164
+ held.$owner = null;
165
+ bound.delete(d);
166
+ }
167
+ d.touch();
168
+ d.setMatrix3D(null);
169
+ return;
170
+ }
171
+ const m = v;
172
+ const raw = m.$matrix3D;
173
+ if (m === held && d.space?.raw === raw) {
174
+ d.touch();
175
+ return;
176
+ }
177
+ const owner = m.$owner;
178
+ if (owner && owner !== d && owner.space?.raw === raw) {
179
+ throw s.rt.error("ArgumentError", 2189);
180
+ }
181
+ if (determinant3D(raw) === 0) {
182
+ throw s.rt.error("ArgumentError", 2188);
183
+ }
184
+ if (held) {
185
+ held.$owner = null;
186
+ }
187
+ d.touch();
188
+ d.setMatrix3D(raw, false, true);
189
+ m.$owner = d;
190
+ bound.set(d, m);
191
+ }
192
+ /**
193
+ * The matrix3D from this object's space to `relativeTo`'s, through
194
+ * their concatenated transforms, each 2D one taken as 3D; null for an
195
+ * object in 2D, as Flash gives.
196
+ */
197
+ getRelativeMatrix3D(relativeTo) {
198
+ if (relativeTo === null || relativeTo === undefined) {
199
+ throw s.rt.error("TypeError", 2007, "relativeTo");
200
+ }
201
+ const d = this.$display;
202
+ if (!d.space) {
203
+ return null;
204
+ }
205
+ const target = relativeTo.$display;
206
+ const toTarget = invert3D(concatenated3D(target)) ?? identity3D();
207
+ const m = s.rt.construct(s.rt.classNamed("flash.geom::Matrix3D"));
208
+ m.$matrix3D.set(multiply3D(toTarget, concatenated3D(d)));
209
+ return m;
210
+ }
211
+ /** A new one of this object's, which reads and writes this object's; null for an object with none. */
212
+ get perspectiveProjection() {
213
+ const d = this.$display;
214
+ return d.projection || alwaysProjects(s, d) ? projectionObject(s, d) : null;
215
+ }
216
+ set perspectiveProjection(v) {
217
+ this.$display.projection = v ? projectionFrom(s, v) : null;
218
+ // What is in it is drawn through it.
219
+ this.$display.invalidate(TRANSFORM);
220
+ }
221
+ /** The bounds on the stage, out to whole pixels. */
222
+ get pixelBounds() {
223
+ const r = boundsIn(this.$display, s.stage, s.stage, true);
224
+ // Math.ceil gives -0 for an edge just left of 0, which Flash reports as 0.
225
+ const x = Math.ceil(r.xMin) || 0;
226
+ const y = Math.ceil(r.yMin) || 0;
227
+ const right = Math.ceil(r.xMax);
228
+ const bottom = Math.ceil(r.yMax);
229
+ return s.rt.construct(s.rt.classNamed("flash.geom::Rectangle"), x, y, right - x, bottom - y);
230
+ }
231
+ }
232
+ /** `d`'s transform to the top of its list, each 2D matrix taken as 3D. */
233
+ const concatenated3D = (d) => {
234
+ let m = identity3D();
235
+ for (let o = d; o && o !== s.stage; o = o.parent) {
236
+ const local = o.space
237
+ ? o.space.shown
238
+ : Float32Array.of(o.matrix.a, o.matrix.b, 0, 0, o.matrix.c, o.matrix.d, 0, 0, 0, 0, 1, 0, o.matrix.tx, o.matrix.ty, 0, 1);
239
+ m = multiply3D(local, m);
240
+ }
241
+ return m;
242
+ };
243
+ avm2.registerNativeClass(natives, "flash.geom::Transform", TransformNatives);
244
+ return natives;
245
+ }
@@ -0,0 +1,85 @@
1
+ // flash.geom.Utils3D: points through a projection matrix, to the plane w = 1,
2
+ // and a matrix turned part of the way to face a point.
3
+ import { avm2 } from "../../../../runtime/index.js";
4
+ import { interpolate3D, pointAt3D, transform3D, translation3D } from "../../../display/matrix3d.js";
5
+ const f = Math.fround;
6
+ export function utils3DNatives(s) {
7
+ const natives = {};
8
+ const nonNull = (v, name) => {
9
+ if (v === null || v === undefined) {
10
+ throw s.rt.error("TypeError", 2007, name);
11
+ }
12
+ return v;
13
+ };
14
+ const component = (v, name) => s.rt.toNumber(s.rt.getProperty(v, s.rt.publicName(name)));
15
+ /** A vector grown with zeros to `n`, as Flash grows it; a fixed one too short is RangeError 1126. */
16
+ const grow = (v, n) => {
17
+ if (v.$a.length >= n) {
18
+ return;
19
+ }
20
+ if (v.$fixed) {
21
+ throw s.rt.error("RangeError", 1126, v.$a.length, n);
22
+ }
23
+ while (v.$a.length < n) {
24
+ v.$a.push(0);
25
+ }
26
+ };
27
+ const xyz = (v) => ["x", "y", "z"].map((name) => component(v, name));
28
+ class Utils3DNatives {
29
+ /**
30
+ * A new matrix, `mat` interpolated toward its translation alone turned
31
+ * by pointAt, the percent held to 0 to 1, as adl has it: so the scale
32
+ * goes to 1 with it. Where pointAt would leave the matrix, a copy of
33
+ * it. The translation is lerped apart from the rotation, and the last
34
+ * element is 1, so a NaN direction leaves both as they were.
35
+ */
36
+ static pointTowards(percent, mat, pos, at = null, up = null) {
37
+ const from = nonNull(mat, "fromMat").$matrix3D;
38
+ const target = xyz(nonNull(pos, "target"));
39
+ const position = translation3D(from[12], from[13], from[14]);
40
+ const turned = pointAt3D(position, target, at === null || at === undefined ? [0, 1, 0] : xyz(at), up === null || up === undefined ? [0, 0, 1] : xyz(up));
41
+ const out = s.rt.construct(s.rt.classNamed("flash.geom::Matrix3D"));
42
+ const raw = out.$matrix3D;
43
+ if (!turned) {
44
+ raw.set(from);
45
+ return out;
46
+ }
47
+ const p = Math.max(0, Math.min(1, s.rt.toNumber(percent)));
48
+ raw.set(interpolate3D(from, turned, p));
49
+ for (let i = 0; i < 3; i++) {
50
+ raw[12 + i] = from[12 + i] + (position[12 + i] - from[12 + i]) * p;
51
+ }
52
+ raw[15] = 1;
53
+ return out;
54
+ }
55
+ /**
56
+ * transformVector's float32 result times the float32 reciprocal of its
57
+ * w, as adl has it; the Flash Player of Ruffle's corpus rounds the
58
+ * products to float32 too.
59
+ */
60
+ static projectVector(m, v) {
61
+ const raw = nonNull(m, "m").$matrix3D;
62
+ const at = nonNull(v, "v");
63
+ const [x, y, z, w] = transform3D(raw, component(at, "x"), component(at, "y"), component(at, "z"));
64
+ const over = f(1 / w);
65
+ return s.rt.construct(s.rt.classNamed("flash.geom::Vector3D"), x * over, y * over, z * over, w);
66
+ }
67
+ /** Each (x, y, z) of `verts` through the matrix in float32, to an (x, y) in `projected` over w in doubles, and 1/w to its t in `uvts`. */
68
+ static projectVectors(m, verts, projected, uvts) {
69
+ const raw = nonNull(m, "m").$matrix3D;
70
+ const input = nonNull(verts, "verts").$a;
71
+ const out = nonNull(projected, "projectedVerts");
72
+ const uvt = nonNull(uvts, "uvts");
73
+ grow(uvt, input.length);
74
+ grow(out, Math.floor(input.length / 3) * 2);
75
+ for (let i = 0, j = 0; i + 2 < input.length; i += 3, j += 2) {
76
+ const [x, y, , w] = transform3D(raw, Number(input[i]), Number(input[i + 1]), Number(input[i + 2]));
77
+ out.$a[j] = x / w;
78
+ out.$a[j + 1] = y / w;
79
+ uvt.$a[i + 2] = 1 / w;
80
+ }
81
+ }
82
+ }
83
+ avm2.registerNativeClass(natives, "flash.geom::Utils3D", Utils3DNatives);
84
+ return natives;
85
+ }
@@ -0,0 +1,149 @@
1
+ // flash.globalization.Collator onto Intl.Collator. Intl has no options for
2
+ // character width or kana, so those fold the strings before comparing:
3
+ // full- and half-width forms to their plain ones, hiragana to katakana.
4
+ // Where ICU's order and Windows' differ in their data (kana, widths), ICU's stands.
5
+ import { avm2 } from "../../../../runtime/index.js";
6
+ import { availableLocales, NO_ERROR, nonNull, resolveLocale, UNSUPPORTED_ERROR, } from "./locale.js";
7
+ class CollatorSettings {
8
+ status;
9
+ locale;
10
+ ignoreCase;
11
+ ignoreDiacritics;
12
+ ignoreKanaType;
13
+ ignoreSymbols;
14
+ ignoreCharacterWidth;
15
+ numericComparison = false;
16
+ collator = null;
17
+ constructor(locale, matching) {
18
+ this.locale = locale;
19
+ this.status = locale.status;
20
+ this.ignoreCase = matching;
21
+ this.ignoreDiacritics = matching;
22
+ this.ignoreKanaType = matching;
23
+ this.ignoreSymbols = matching;
24
+ this.ignoreCharacterWidth = matching;
25
+ }
26
+ set(option, value) {
27
+ this[option] = value;
28
+ this.collator = null;
29
+ // Flash in adl reports numeric comparison unsupported, and compares as it would without it.
30
+ this.status = option === "numericComparison" ? UNSUPPORTED_ERROR : NO_ERROR;
31
+ }
32
+ compare(a, b) {
33
+ this.collator ??= new Intl.Collator(this.locale.actual, {
34
+ sensitivity: this.ignoreCase
35
+ ? this.ignoreDiacritics
36
+ ? "base"
37
+ : "accent"
38
+ : this.ignoreDiacritics
39
+ ? "case"
40
+ : "variant",
41
+ ignorePunctuation: this.ignoreSymbols,
42
+ });
43
+ this.status = NO_ERROR;
44
+ // Windows tells a string of what it ignores alone from the empty one.
45
+ if ((a === "") !== (b === "")) {
46
+ return a === "" ? -1 : 1;
47
+ }
48
+ a = this.fold(a);
49
+ b = this.fold(b);
50
+ // Windows' word sort sets hyphens and apostrophes aside, so that "co-op" stays beside
51
+ // "coop": compared without them, then by how many each has, after the same word without.
52
+ const words = (text) => text.replace(/['-]/g, "");
53
+ const count = (text) => text.length - words(text).length;
54
+ if (this.ignoreSymbols) {
55
+ return this.collator.compare(a, b);
56
+ }
57
+ return (this.collator.compare(words(a), words(b)) ||
58
+ Math.sign(count(a) - count(b)) ||
59
+ this.collator.compare(a, b));
60
+ }
61
+ fold(text) {
62
+ // Windows takes ß for ss at every strength, where ICU tells them apart.
63
+ text = text.replaceAll("\u00df", "ss").replaceAll("\u1e9e", "SS");
64
+ if (this.ignoreCharacterWidth) {
65
+ text = text.replace(/[\uff01-\uffee]/g, (c) => c.normalize("NFKC"));
66
+ }
67
+ if (this.ignoreKanaType) {
68
+ text = text.replace(/[\u3041-\u3096\u309d\u309e]/g, (c) => String.fromCharCode(c.charCodeAt(0) + 0x60));
69
+ }
70
+ // ICU's ignorePunctuation leaves symbols ("$1" against "1"), which Windows ignores too.
71
+ if (this.ignoreSymbols) {
72
+ text = text.replace(/\p{S}/gu, "");
73
+ }
74
+ return text;
75
+ }
76
+ }
77
+ export function collatorNatives(s) {
78
+ const natives = {};
79
+ const settings = (o) => o.$settings;
80
+ const strings = (a, b) => [
81
+ nonNull(s, a, "string1"),
82
+ nonNull(s, b, "string2"),
83
+ ];
84
+ class CollatorNatives {
85
+ static getAvailableLocaleIDNames() {
86
+ return availableLocales(s);
87
+ }
88
+ "flash.globalization:Collator::ctor"(name, mode) {
89
+ const locale = resolveLocale(s, nonNull(s, name, "requestedLocaleIDName"));
90
+ if (nonNull(s, mode, "initialMode") !== "sorting" && mode !== "matching") {
91
+ throw s.rt.error("ArgumentError", 1508, "initialMode");
92
+ }
93
+ this.$settings = new CollatorSettings(locale, mode === "matching");
94
+ }
95
+ get lastOperationStatus() {
96
+ return settings(this).status;
97
+ }
98
+ get requestedLocaleIDName() {
99
+ return settings(this).locale.requested;
100
+ }
101
+ get actualLocaleIDName() {
102
+ return settings(this).locale.actual;
103
+ }
104
+ get ignoreCase() {
105
+ return settings(this).ignoreCase;
106
+ }
107
+ set ignoreCase(v) {
108
+ settings(this).set("ignoreCase", v);
109
+ }
110
+ get ignoreDiacritics() {
111
+ return settings(this).ignoreDiacritics;
112
+ }
113
+ set ignoreDiacritics(v) {
114
+ settings(this).set("ignoreDiacritics", v);
115
+ }
116
+ get ignoreKanaType() {
117
+ return settings(this).ignoreKanaType;
118
+ }
119
+ set ignoreKanaType(v) {
120
+ settings(this).set("ignoreKanaType", v);
121
+ }
122
+ get ignoreSymbols() {
123
+ return settings(this).ignoreSymbols;
124
+ }
125
+ set ignoreSymbols(v) {
126
+ settings(this).set("ignoreSymbols", v);
127
+ }
128
+ get ignoreCharacterWidth() {
129
+ return settings(this).ignoreCharacterWidth;
130
+ }
131
+ set ignoreCharacterWidth(v) {
132
+ settings(this).set("ignoreCharacterWidth", v);
133
+ }
134
+ get numericComparison() {
135
+ return settings(this).numericComparison;
136
+ }
137
+ set numericComparison(v) {
138
+ settings(this).set("numericComparison", v);
139
+ }
140
+ compare(a, b) {
141
+ return settings(this).compare(...strings(a, b));
142
+ }
143
+ equals(a, b) {
144
+ return settings(this).compare(...strings(a, b)) === 0;
145
+ }
146
+ }
147
+ avm2.registerNativeClass(natives, "flash.globalization::Collator", CollatorNatives);
148
+ return natives;
149
+ }