johnson 2.0.0.pre0 → 2.0.0.pre1

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 (3954) hide show
  1. data/CHANGELOG.rdoc +6 -0
  2. data/Manifest.txt +3709 -33
  3. data/Rakefile +19 -0
  4. data/ext/tracemonkey/extconf.rb +16 -2
  5. data/ext/tracemonkey/immutable_node.cc +3 -1
  6. data/ext/tracemonkey/js.cc +474 -0
  7. data/ext/tracemonkey/runtime.cc +3 -1
  8. data/ext/tracemonkey/split_global.cc +0 -373
  9. data/ext/tracemonkey/split_global.h +3 -0
  10. data/lib/johnson.rb +1 -1
  11. data/test/generic/parser_test.rb +27 -5
  12. data/test/johnson/generic/nodes/array_literal_test.rb +1 -1
  13. data/test/johnson/generic/nodes/ternary_test.rb +1 -1
  14. data/test/johnson/tracemonkey/split_global_test.html +18 -0
  15. data/vendor/tracemonkey/Makefile.in +100 -74
  16. data/vendor/tracemonkey/Makefile.ref +0 -13
  17. data/vendor/tracemonkey/README.html +2 -3
  18. data/vendor/tracemonkey/aclocal.m4 +3 -0
  19. data/vendor/tracemonkey/analysis-tests/Makefile.in +110 -0
  20. data/vendor/tracemonkey/analysis-tests/green-accessred.cpp +11 -0
  21. data/vendor/tracemonkey/analysis-tests/green-callred.cpp +12 -0
  22. data/vendor/tracemonkey/analysis-tests/green-callredptr.cpp +8 -0
  23. data/vendor/tracemonkey/analysis-tests/green-tored-badpath.cpp +14 -0
  24. data/vendor/tracemonkey/analysis-tests/green-tored.cpp +12 -0
  25. data/vendor/tracemonkey/analysis-tests/green-toredptr.cpp +12 -0
  26. data/vendor/tracemonkey/analysis-tests/misdeclared-red-funcptr.cpp +5 -0
  27. data/vendor/tracemonkey/analysis-tests/misdeclared-red-funcptr2.cpp +5 -0
  28. data/vendor/tracemonkey/analysis-tests/red-accessred.cpp +11 -0
  29. data/vendor/tracemonkey/analysis-tests/red-callgreen.cpp +8 -0
  30. data/vendor/tracemonkey/analysis-tests/red-callred.cpp +8 -0
  31. data/vendor/tracemonkey/analysis-tests/red-togreenptr-arg.cpp +11 -0
  32. data/vendor/tracemonkey/analysis-tests/red-togreenptr-field.cpp +15 -0
  33. data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer-array.cpp +8 -0
  34. data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer-cast.cpp +7 -0
  35. data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer-nested.cpp +18 -0
  36. data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer-struct.cpp +12 -0
  37. data/vendor/tracemonkey/analysis-tests/red-togreenptr-initializer.cpp +7 -0
  38. data/vendor/tracemonkey/analysis-tests/red-togreenptr-return.cpp +9 -0
  39. data/vendor/tracemonkey/analysis-tests/red-togreenptr.cpp +10 -0
  40. data/vendor/tracemonkey/bench.sh +1 -1
  41. data/vendor/tracemonkey/build/autoconf/acoutput-fast.pl +0 -0
  42. data/vendor/tracemonkey/build/autoconf/config.sub +154 -63
  43. data/vendor/tracemonkey/build/autoconf/make-makefile +10 -3
  44. data/vendor/tracemonkey/build/autoconf/mozprog.m4 +76 -0
  45. data/vendor/tracemonkey/build/autoconf/nspr.m4 +25 -6
  46. data/vendor/tracemonkey/build/unix/mddepend.pl +2 -0
  47. data/vendor/tracemonkey/build/win32/pgomerge.py +0 -0
  48. data/vendor/tracemonkey/builtins.tbl +1 -1
  49. data/vendor/tracemonkey/config.mk +3 -5
  50. data/vendor/tracemonkey/config/Makefile.in +8 -5
  51. data/vendor/tracemonkey/config/autoconf.mk.in +5 -14
  52. data/vendor/tracemonkey/config/config.mk +28 -35
  53. data/vendor/tracemonkey/config/milestone.txt +1 -1
  54. data/vendor/tracemonkey/config/mkdepend/Makefile.in +2 -3
  55. data/vendor/tracemonkey/config/nsinstall.exe.manifest +17 -0
  56. data/vendor/tracemonkey/config/nsinstall_win.c +708 -0
  57. data/vendor/tracemonkey/config/rules.mk +153 -191
  58. data/vendor/tracemonkey/config/static-checking.js +21 -30
  59. data/vendor/tracemonkey/config/system-headers +17 -31
  60. data/vendor/tracemonkey/config/version.mk +2 -2
  61. data/vendor/tracemonkey/config/version_win.pl +5 -12
  62. data/vendor/tracemonkey/configure +1175 -1071
  63. data/vendor/tracemonkey/configure.in +237 -309
  64. data/vendor/tracemonkey/dtoa.c +0 -4
  65. data/vendor/tracemonkey/imacro_asm.js.in +8 -0
  66. data/vendor/tracemonkey/imacros.c.out +217 -267
  67. data/vendor/tracemonkey/imacros.jsasm +56 -98
  68. data/vendor/tracemonkey/jitstats.tbl +58 -16
  69. data/vendor/tracemonkey/js-config.h.in +8 -6
  70. data/vendor/tracemonkey/js.msg +1 -1
  71. data/vendor/tracemonkey/jsapi-tests/Makefile.in +76 -0
  72. data/vendor/tracemonkey/jsapi-tests/README +160 -0
  73. data/vendor/tracemonkey/jsapi-tests/selfTest.cpp +20 -0
  74. data/vendor/tracemonkey/jsapi-tests/testDebugger.cpp +25 -0
  75. data/vendor/tracemonkey/jsapi-tests/testDefineGetterSetterNonEnumerable.cpp +51 -0
  76. data/vendor/tracemonkey/jsapi-tests/testExtendedEq.cpp +45 -0
  77. data/vendor/tracemonkey/jsapi-tests/testIntString.cpp +13 -0
  78. data/vendor/tracemonkey/jsapi-tests/testIsAboutToBeFinalized.cpp +89 -0
  79. data/vendor/tracemonkey/jsapi-tests/testPropCache.cpp +31 -0
  80. data/vendor/tracemonkey/jsapi-tests/testSameValue.cpp +21 -0
  81. data/vendor/tracemonkey/jsapi-tests/testXDR.cpp +55 -0
  82. data/vendor/tracemonkey/jsapi-tests/tests.cpp +79 -0
  83. data/vendor/tracemonkey/jsapi-tests/tests.h +239 -0
  84. data/vendor/tracemonkey/jsapi.cpp +264 -336
  85. data/vendor/tracemonkey/jsapi.h +163 -57
  86. data/vendor/tracemonkey/jsarena.cpp +8 -8
  87. data/vendor/tracemonkey/jsarray.cpp +551 -602
  88. data/vendor/tracemonkey/jsarray.h +58 -57
  89. data/vendor/tracemonkey/jsatom.cpp +59 -56
  90. data/vendor/tracemonkey/jsatom.h +0 -6
  91. data/vendor/tracemonkey/jsatominlines.h +95 -0
  92. data/vendor/tracemonkey/jsbit.h +26 -1
  93. data/vendor/tracemonkey/jsbool.cpp +18 -11
  94. data/vendor/tracemonkey/jsbool.h +7 -11
  95. data/vendor/tracemonkey/jsbuiltins.cpp +91 -66
  96. data/vendor/tracemonkey/jsbuiltins.h +146 -76
  97. data/vendor/tracemonkey/jscntxt.cpp +141 -73
  98. data/vendor/tracemonkey/jscntxt.h +415 -106
  99. data/vendor/tracemonkey/jscompat.h +3 -4
  100. data/vendor/tracemonkey/jsconfig.mk +0 -12
  101. data/vendor/tracemonkey/jscpucfg.cpp +1 -1
  102. data/vendor/tracemonkey/jsdate.cpp +373 -181
  103. data/vendor/tracemonkey/jsdate.h +5 -1
  104. data/vendor/tracemonkey/jsdbgapi.cpp +595 -84
  105. data/vendor/tracemonkey/jsdbgapi.h +13 -4
  106. data/vendor/tracemonkey/jsdhash.cpp +42 -15
  107. data/vendor/tracemonkey/jsdhash.h +19 -0
  108. data/vendor/tracemonkey/jsdtoa.cpp +7 -7
  109. data/vendor/tracemonkey/{jsdtracef.c → jsdtracef.cpp} +56 -93
  110. data/vendor/tracemonkey/jsdtracef.h +2 -2
  111. data/vendor/tracemonkey/jsemit.cpp +92 -82
  112. data/vendor/tracemonkey/jsemit.h +3 -6
  113. data/vendor/tracemonkey/jsexn.cpp +46 -62
  114. data/vendor/tracemonkey/jsfile.cpp +91 -71
  115. data/vendor/tracemonkey/jsfun.cpp +535 -549
  116. data/vendor/tracemonkey/jsfun.h +104 -20
  117. data/vendor/tracemonkey/jsgc.cpp +275 -255
  118. data/vendor/tracemonkey/jsgc.h +46 -54
  119. data/vendor/tracemonkey/jshash.cpp +5 -5
  120. data/vendor/tracemonkey/jshash.h +3 -1
  121. data/vendor/tracemonkey/jsinterp.cpp +350 -4490
  122. data/vendor/tracemonkey/jsinterp.h +50 -39
  123. data/vendor/tracemonkey/jsinttypes.h +139 -0
  124. data/vendor/tracemonkey/jsinvoke.cpp +1 -1
  125. data/vendor/tracemonkey/jsiter.cpp +65 -58
  126. data/vendor/tracemonkey/jsiter.h +2 -2
  127. data/vendor/tracemonkey/jskwgen.cpp +2 -2
  128. data/vendor/tracemonkey/jslibmath.h +17 -0
  129. data/vendor/tracemonkey/jslock.cpp +73 -71
  130. data/vendor/tracemonkey/jslock.h +21 -18
  131. data/vendor/tracemonkey/jslog2.cpp +1 -1
  132. data/vendor/tracemonkey/jsmath.cpp +69 -109
  133. data/vendor/tracemonkey/jsmath.h +18 -8
  134. data/vendor/tracemonkey/jsnum.cpp +129 -106
  135. data/vendor/tracemonkey/jsnum.h +202 -55
  136. data/vendor/tracemonkey/jsobj.cpp +1108 -1076
  137. data/vendor/tracemonkey/jsobj.h +441 -204
  138. data/vendor/tracemonkey/jsobjinlines.h +59 -0
  139. data/vendor/tracemonkey/json.cpp +170 -263
  140. data/vendor/tracemonkey/json.h +2 -13
  141. data/vendor/tracemonkey/jsopcode.cpp +141 -89
  142. data/vendor/tracemonkey/jsopcode.h +23 -4
  143. data/vendor/tracemonkey/jsopcode.tbl +7 -1
  144. data/vendor/tracemonkey/jsoplengen.cpp +1 -1
  145. data/vendor/tracemonkey/jsops.cpp +4213 -0
  146. data/vendor/tracemonkey/jsotypes.h +0 -4
  147. data/vendor/tracemonkey/jsparse.cpp +147 -262
  148. data/vendor/tracemonkey/jsparse.h +12 -10
  149. data/vendor/tracemonkey/jsprf.cpp +11 -11
  150. data/vendor/tracemonkey/jsprvtd.h +40 -33
  151. data/vendor/tracemonkey/jspubtd.h +3 -6
  152. data/vendor/tracemonkey/jsregexp.cpp +1260 -455
  153. data/vendor/tracemonkey/jsregexp.h +17 -8
  154. data/vendor/tracemonkey/jsscan.cpp +151 -324
  155. data/vendor/tracemonkey/jsscan.h +25 -82
  156. data/vendor/tracemonkey/jsscope.cpp +385 -300
  157. data/vendor/tracemonkey/jsscope.h +290 -117
  158. data/vendor/tracemonkey/jsscript.cpp +135 -153
  159. data/vendor/tracemonkey/jsscript.h +52 -68
  160. data/vendor/tracemonkey/jsscriptinlines.h +69 -0
  161. data/vendor/tracemonkey/jsshell.msg +2 -0
  162. data/vendor/tracemonkey/jsstack.js +213 -7
  163. data/vendor/tracemonkey/jsstdint.h +58 -40
  164. data/vendor/tracemonkey/jsstr.cpp +1247 -954
  165. data/vendor/tracemonkey/jsstr.h +410 -95
  166. data/vendor/tracemonkey/{jsstddef.h → jsstrinlines.h} +30 -42
  167. data/vendor/tracemonkey/jstask.cpp +126 -0
  168. data/vendor/tracemonkey/jstask.h +88 -0
  169. data/vendor/tracemonkey/jstl.h +262 -0
  170. data/vendor/tracemonkey/jstracer.cpp +6806 -3438
  171. data/vendor/tracemonkey/jstracer.h +675 -169
  172. data/vendor/tracemonkey/jstypes.h +29 -49
  173. data/vendor/tracemonkey/jsutil.cpp +3 -3
  174. data/vendor/tracemonkey/jsutil.h +127 -5
  175. data/vendor/tracemonkey/jsvector.h +775 -0
  176. data/vendor/tracemonkey/jswince.asm +40 -2
  177. data/vendor/tracemonkey/jsxdrapi.cpp +24 -30
  178. data/vendor/tracemonkey/jsxdrapi.h +1 -1
  179. data/vendor/tracemonkey/jsxml.cpp +542 -712
  180. data/vendor/tracemonkey/jsxml.h +3 -11
  181. data/vendor/tracemonkey/lirasm/Makefile.in +78 -0
  182. data/vendor/tracemonkey/lirasm/lirasm.cpp +1159 -0
  183. data/vendor/tracemonkey/lirasm/testlirc.sh +27 -0
  184. data/vendor/tracemonkey/lirasm/tests/add.in +4 -0
  185. data/vendor/tracemonkey/lirasm/tests/add.out +1 -0
  186. data/vendor/tracemonkey/lirasm/tests/addsub.in +5 -0
  187. data/vendor/tracemonkey/lirasm/tests/addsub.out +1 -0
  188. data/vendor/tracemonkey/lirasm/tests/call1.in +11 -0
  189. data/vendor/tracemonkey/lirasm/tests/call1.out +2 -0
  190. data/vendor/tracemonkey/lirasm/tests/call2.in +5 -0
  191. data/vendor/tracemonkey/lirasm/tests/call2.out +1 -0
  192. data/vendor/tracemonkey/lirasm/tests/floatingpoint.in +4 -0
  193. data/vendor/tracemonkey/lirasm/tests/floatingpoint.out +1 -0
  194. data/vendor/tracemonkey/lirasm/tests/loadstore.in +9 -0
  195. data/vendor/tracemonkey/lirasm/tests/loadstore.out +1 -0
  196. data/vendor/tracemonkey/lirasm/tests/multfrag1.in +26 -0
  197. data/vendor/tracemonkey/lirasm/tests/multfrag1.out +2 -0
  198. data/vendor/tracemonkey/lirasm/tests/multfrag2.in +14 -0
  199. data/vendor/tracemonkey/lirasm/tests/multfrag2.out +1 -0
  200. data/vendor/tracemonkey/lirasm/tests/multfrag3.in +15 -0
  201. data/vendor/tracemonkey/lirasm/tests/multfrag3.out +1 -0
  202. data/vendor/tracemonkey/liveconnect/jsj.c +5 -5
  203. data/vendor/tracemonkey/liveconnect/jsj_JSObject.c +2 -4
  204. data/vendor/tracemonkey/liveconnect/jsj_JavaArray.c +2 -4
  205. data/vendor/tracemonkey/liveconnect/jsj_JavaClass.c +3 -5
  206. data/vendor/tracemonkey/liveconnect/jsj_JavaObject.c +4 -24
  207. data/vendor/tracemonkey/liveconnect/jsj_private.h +4 -4
  208. data/vendor/tracemonkey/liveconnect/jsj_utils.c +18 -2
  209. data/vendor/tracemonkey/liveconnect/nsCLiveconnect.cpp +30 -4
  210. data/vendor/tracemonkey/nanojit/{TraceTreeDrawer.h → Allocator.cpp} +56 -48
  211. data/vendor/tracemonkey/nanojit/Allocator.h +117 -0
  212. data/vendor/tracemonkey/nanojit/Assembler.cpp +1378 -1442
  213. data/vendor/tracemonkey/nanojit/Assembler.h +250 -280
  214. data/vendor/tracemonkey/nanojit/CodeAlloc.cpp +506 -0
  215. data/vendor/tracemonkey/nanojit/CodeAlloc.h +201 -0
  216. data/vendor/tracemonkey/nanojit/Containers.cpp +95 -0
  217. data/vendor/tracemonkey/nanojit/Containers.h +463 -0
  218. data/vendor/tracemonkey/nanojit/Fragmento.cpp +35 -604
  219. data/vendor/tracemonkey/nanojit/Fragmento.h +84 -183
  220. data/vendor/tracemonkey/nanojit/LIR.cpp +1969 -2050
  221. data/vendor/tracemonkey/nanojit/LIR.h +1351 -720
  222. data/vendor/tracemonkey/nanojit/LIRopcode.tbl +173 -159
  223. data/vendor/tracemonkey/nanojit/Native.h +61 -48
  224. data/vendor/tracemonkey/nanojit/NativeARM.cpp +1509 -849
  225. data/vendor/tracemonkey/nanojit/NativeARM.h +362 -286
  226. data/vendor/tracemonkey/nanojit/NativePPC.cpp +1296 -0
  227. data/vendor/tracemonkey/nanojit/NativePPC.h +587 -0
  228. data/vendor/tracemonkey/nanojit/NativeSparc.cpp +146 -224
  229. data/vendor/tracemonkey/nanojit/NativeSparc.h +235 -229
  230. data/vendor/tracemonkey/nanojit/NativeX64.cpp +1434 -0
  231. data/vendor/tracemonkey/nanojit/NativeX64.h +392 -0
  232. data/vendor/tracemonkey/nanojit/Nativei386.cpp +1395 -1367
  233. data/vendor/tracemonkey/nanojit/Nativei386.h +519 -514
  234. data/vendor/tracemonkey/nanojit/RegAlloc.cpp +37 -130
  235. data/vendor/tracemonkey/nanojit/RegAlloc.h +90 -49
  236. data/vendor/tracemonkey/nanojit/avmplus.cpp +249 -32
  237. data/vendor/tracemonkey/nanojit/avmplus.h +121 -667
  238. data/vendor/tracemonkey/nanojit/manifest.mk +79 -0
  239. data/vendor/tracemonkey/nanojit/nanojit.h +179 -157
  240. data/vendor/tracemonkey/plify_jsdhash.sed +10 -6
  241. data/vendor/tracemonkey/prmjtime.cpp +97 -55
  242. data/vendor/tracemonkey/prmjtime.h +1 -1
  243. data/vendor/tracemonkey/{config/revdepth.pl → ref-config/HP-UXB.11.31.mk} +28 -14
  244. data/vendor/tracemonkey/resource.h +1 -1
  245. data/vendor/tracemonkey/shell/js.cpp +358 -201
  246. data/vendor/tracemonkey/tests/Makefile.in +78 -0
  247. data/vendor/tracemonkey/tests/Patterns.pm +257 -0
  248. data/vendor/tracemonkey/tests/README-jsDriver.html +325 -0
  249. data/vendor/tracemonkey/tests/SisyphusMakefile +58 -0
  250. data/vendor/tracemonkey/tests/bisect.sh +488 -0
  251. data/vendor/tracemonkey/tests/browser.js +964 -0
  252. data/vendor/tracemonkey/tests/changes.sh +122 -0
  253. data/vendor/tracemonkey/tests/config.mk +113 -0
  254. data/vendor/tracemonkey/tests/config.sh +138 -0
  255. data/vendor/tracemonkey/tests/detect-universe.sh +126 -0
  256. data/vendor/tracemonkey/tests/dikdik-n.tests +3 -0
  257. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.1.js +85 -0
  258. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.2.js +86 -0
  259. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.3.js +56 -0
  260. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-01.js +61 -0
  261. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-02.js +58 -0
  262. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-03.js +60 -0
  263. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-04.js +56 -0
  264. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-05.js +57 -0
  265. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-06.js +61 -0
  266. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-07.js +78 -0
  267. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4-08.js +158 -0
  268. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.4.js +140 -0
  269. data/vendor/tracemonkey/tests/e4x/Expressions/11.1.5.js +62 -0
  270. data/vendor/tracemonkey/tests/e4x/Expressions/11.2.1.js +173 -0
  271. data/vendor/tracemonkey/tests/e4x/Expressions/11.2.2.js +106 -0
  272. data/vendor/tracemonkey/tests/e4x/Expressions/11.2.3.js +61 -0
  273. data/vendor/tracemonkey/tests/e4x/Expressions/11.2.4.js +117 -0
  274. data/vendor/tracemonkey/tests/e4x/Expressions/11.3.1.js +272 -0
  275. data/vendor/tracemonkey/tests/e4x/Expressions/11.3.2.js +52 -0
  276. data/vendor/tracemonkey/tests/e4x/Expressions/11.4.1.js +139 -0
  277. data/vendor/tracemonkey/tests/e4x/Expressions/11.5.1.js +101 -0
  278. data/vendor/tracemonkey/tests/e4x/Expressions/11.6.1.js +429 -0
  279. data/vendor/tracemonkey/tests/e4x/Expressions/11.6.2.js +326 -0
  280. data/vendor/tracemonkey/tests/e4x/Expressions/11.6.3.js +119 -0
  281. data/vendor/tracemonkey/tests/e4x/Expressions/jstests.list +30 -0
  282. data/vendor/tracemonkey/tests/e4x/Expressions/regress-301545.js +55 -0
  283. data/vendor/tracemonkey/tests/e4x/Expressions/regress-302531.js +63 -0
  284. data/vendor/tracemonkey/tests/e4x/Expressions/regress-340024.js +61 -0
  285. data/vendor/tracemonkey/tests/e4x/Expressions/regress-366123.js +67 -0
  286. data/vendor/tracemonkey/tests/e4x/Expressions/regress-496113.js +65 -0
  287. data/vendor/tracemonkey/tests/e4x/Expressions/shell.js +1 -0
  288. data/vendor/tracemonkey/tests/e4x/GC/jstests.list +11 -0
  289. data/vendor/tracemonkey/tests/e4x/GC/regress-280844-1.js +59 -0
  290. data/vendor/tracemonkey/tests/e4x/GC/regress-280844-2.js +71 -0
  291. data/vendor/tracemonkey/tests/e4x/GC/regress-292455.js +79 -0
  292. data/vendor/tracemonkey/tests/e4x/GC/regress-313952-01.js +68 -0
  293. data/vendor/tracemonkey/tests/e4x/GC/regress-313952-02.js +77 -0
  294. data/vendor/tracemonkey/tests/e4x/GC/regress-324117.js +98 -0
  295. data/vendor/tracemonkey/tests/e4x/GC/regress-324278.js +86 -0
  296. data/vendor/tracemonkey/tests/e4x/GC/regress-339785.js +92 -0
  297. data/vendor/tracemonkey/tests/e4x/GC/regress-357063-01.js +73 -0
  298. data/vendor/tracemonkey/tests/e4x/GC/regress-357063-02.js +69 -0
  299. data/vendor/tracemonkey/tests/e4x/GC/shell.js +1 -0
  300. data/vendor/tracemonkey/tests/e4x/Global/13.1.2.1.js +559 -0
  301. data/vendor/tracemonkey/tests/e4x/Global/jstests.list +2 -0
  302. data/vendor/tracemonkey/tests/e4x/Global/shell.js +1 -0
  303. data/vendor/tracemonkey/tests/e4x/Namespace/13.2.1.js +68 -0
  304. data/vendor/tracemonkey/tests/e4x/Namespace/13.2.2.js +86 -0
  305. data/vendor/tracemonkey/tests/e4x/Namespace/13.2.5.js +67 -0
  306. data/vendor/tracemonkey/tests/e4x/Namespace/jstests.list +9 -0
  307. data/vendor/tracemonkey/tests/e4x/Namespace/regress-283972.js +65 -0
  308. data/vendor/tracemonkey/tests/e4x/Namespace/regress-292863.js +62 -0
  309. data/vendor/tracemonkey/tests/e4x/Namespace/regress-350442.js +74 -0
  310. data/vendor/tracemonkey/tests/e4x/Namespace/regress-444608-02.js +55 -0
  311. data/vendor/tracemonkey/tests/e4x/Namespace/regress-444608.js +55 -0
  312. data/vendor/tracemonkey/tests/e4x/Namespace/shell.js +1 -0
  313. data/vendor/tracemonkey/tests/e4x/QName/13.3.1.js +75 -0
  314. data/vendor/tracemonkey/tests/e4x/QName/13.3.2.js +87 -0
  315. data/vendor/tracemonkey/tests/e4x/QName/13.3.5.js +67 -0
  316. data/vendor/tracemonkey/tests/e4x/QName/jstests.list +8 -0
  317. data/vendor/tracemonkey/tests/e4x/QName/regress-373595-01.js +53 -0
  318. data/vendor/tracemonkey/tests/e4x/QName/regress-373595-02.js +55 -0
  319. data/vendor/tracemonkey/tests/e4x/QName/regress-373595-03.js +55 -0
  320. data/vendor/tracemonkey/tests/e4x/QName/regress-444608.js +56 -0
  321. data/vendor/tracemonkey/tests/e4x/QName/shell.js +1 -0
  322. data/vendor/tracemonkey/tests/e4x/Regress/jstests.list +93 -0
  323. data/vendor/tracemonkey/tests/e4x/Regress/regress-257679.js +52 -0
  324. data/vendor/tracemonkey/tests/e4x/Regress/regress-263934.js +66 -0
  325. data/vendor/tracemonkey/tests/e4x/Regress/regress-263935.js +67 -0
  326. data/vendor/tracemonkey/tests/e4x/Regress/regress-263936.js +65 -0
  327. data/vendor/tracemonkey/tests/e4x/Regress/regress-264369.js +53 -0
  328. data/vendor/tracemonkey/tests/e4x/Regress/regress-271545.js +74 -0
  329. data/vendor/tracemonkey/tests/e4x/Regress/regress-277650.js +64 -0
  330. data/vendor/tracemonkey/tests/e4x/Regress/regress-277664.js +64 -0
  331. data/vendor/tracemonkey/tests/e4x/Regress/regress-277683.js +65 -0
  332. data/vendor/tracemonkey/tests/e4x/Regress/regress-277779.js +60 -0
  333. data/vendor/tracemonkey/tests/e4x/Regress/regress-277935.js +68 -0
  334. data/vendor/tracemonkey/tests/e4x/Regress/regress-278112.js +55 -0
  335. data/vendor/tracemonkey/tests/e4x/Regress/regress-283349.js +57 -0
  336. data/vendor/tracemonkey/tests/e4x/Regress/regress-290056.js +61 -0
  337. data/vendor/tracemonkey/tests/e4x/Regress/regress-290499.js +52 -0
  338. data/vendor/tracemonkey/tests/e4x/Regress/regress-301553.js +60 -0
  339. data/vendor/tracemonkey/tests/e4x/Regress/regress-301573.js +57 -0
  340. data/vendor/tracemonkey/tests/e4x/Regress/regress-301596.js +60 -0
  341. data/vendor/tracemonkey/tests/e4x/Regress/regress-301692.js +83 -0
  342. data/vendor/tracemonkey/tests/e4x/Regress/regress-308111.js +959 -0
  343. data/vendor/tracemonkey/tests/e4x/Regress/regress-309897.js +68 -0
  344. data/vendor/tracemonkey/tests/e4x/Regress/regress-311580.js +61 -0
  345. data/vendor/tracemonkey/tests/e4x/Regress/regress-313799.js +53 -0
  346. data/vendor/tracemonkey/tests/e4x/Regress/regress-318922.js +108 -0
  347. data/vendor/tracemonkey/tests/e4x/Regress/regress-319872.js +78 -0
  348. data/vendor/tracemonkey/tests/e4x/Regress/regress-321547.js +91 -0
  349. data/vendor/tracemonkey/tests/e4x/Regress/regress-322499.js +72 -0
  350. data/vendor/tracemonkey/tests/e4x/Regress/regress-323338-1.js +75 -0
  351. data/vendor/tracemonkey/tests/e4x/Regress/regress-323338-2.js +52 -0
  352. data/vendor/tracemonkey/tests/e4x/Regress/regress-325425.js +60 -0
  353. data/vendor/tracemonkey/tests/e4x/Regress/regress-327564.js +78 -0
  354. data/vendor/tracemonkey/tests/e4x/Regress/regress-327691-01.js +59 -0
  355. data/vendor/tracemonkey/tests/e4x/Regress/regress-327691-02.js +59 -0
  356. data/vendor/tracemonkey/tests/e4x/Regress/regress-327697.js +80 -0
  357. data/vendor/tracemonkey/tests/e4x/Regress/regress-328249.js +65 -0
  358. data/vendor/tracemonkey/tests/e4x/Regress/regress-329257.js +71 -0
  359. data/vendor/tracemonkey/tests/e4x/Regress/regress-331558.js +54 -0
  360. data/vendor/tracemonkey/tests/e4x/Regress/regress-331664.js +53 -0
  361. data/vendor/tracemonkey/tests/e4x/Regress/regress-344455.js +60 -0
  362. data/vendor/tracemonkey/tests/e4x/Regress/regress-347155.js +69 -0
  363. data/vendor/tracemonkey/tests/e4x/Regress/regress-350206-1.js +71 -0
  364. data/vendor/tracemonkey/tests/e4x/Regress/regress-350206.js +57 -0
  365. data/vendor/tracemonkey/tests/e4x/Regress/regress-350238.js +65 -0
  366. data/vendor/tracemonkey/tests/e4x/Regress/regress-350629.js +129 -0
  367. data/vendor/tracemonkey/tests/e4x/Regress/regress-352097.js +92 -0
  368. data/vendor/tracemonkey/tests/e4x/Regress/regress-352103.js +76 -0
  369. data/vendor/tracemonkey/tests/e4x/Regress/regress-352223.js +71 -0
  370. data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-01.js +67 -0
  371. data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-02.js +67 -0
  372. data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-03.js +68 -0
  373. data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-04.js +66 -0
  374. data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-05.js +66 -0
  375. data/vendor/tracemonkey/tests/e4x/Regress/regress-354145-07.js +59 -0
  376. data/vendor/tracemonkey/tests/e4x/Regress/regress-354998.js +94 -0
  377. data/vendor/tracemonkey/tests/e4x/Regress/regress-355474-02.js +58 -0
  378. data/vendor/tracemonkey/tests/e4x/Regress/regress-355478.js +62 -0
  379. data/vendor/tracemonkey/tests/e4x/Regress/regress-355569.js +163 -0
  380. data/vendor/tracemonkey/tests/e4x/Regress/regress-356238-01.js +57 -0
  381. data/vendor/tracemonkey/tests/e4x/Regress/regress-356238-02.js +63 -0
  382. data/vendor/tracemonkey/tests/e4x/Regress/regress-356238-03.js +64 -0
  383. data/vendor/tracemonkey/tests/e4x/Regress/regress-361451.js +57 -0
  384. data/vendor/tracemonkey/tests/e4x/Regress/regress-364017.js +58 -0
  385. data/vendor/tracemonkey/tests/e4x/Regress/regress-369032.js +63 -0
  386. data/vendor/tracemonkey/tests/e4x/Regress/regress-369536.js +48 -0
  387. data/vendor/tracemonkey/tests/e4x/Regress/regress-369740.js +82 -0
  388. data/vendor/tracemonkey/tests/e4x/Regress/regress-370016.js +52 -0
  389. data/vendor/tracemonkey/tests/e4x/Regress/regress-370048-01.js +59 -0
  390. data/vendor/tracemonkey/tests/e4x/Regress/regress-370048-02.js +57 -0
  391. data/vendor/tracemonkey/tests/e4x/Regress/regress-370372.js +73 -0
  392. data/vendor/tracemonkey/tests/e4x/Regress/regress-371369.js +63 -0
  393. data/vendor/tracemonkey/tests/e4x/Regress/regress-372563.js +52 -0
  394. data/vendor/tracemonkey/tests/e4x/Regress/regress-372564.js +52 -0
  395. data/vendor/tracemonkey/tests/e4x/Regress/regress-373082.js +110 -0
  396. data/vendor/tracemonkey/tests/e4x/Regress/regress-374106.js +52 -0
  397. data/vendor/tracemonkey/tests/e4x/Regress/regress-374112.js +52 -0
  398. data/vendor/tracemonkey/tests/e4x/Regress/regress-374116.js +52 -0
  399. data/vendor/tracemonkey/tests/e4x/Regress/regress-374160.js +52 -0
  400. data/vendor/tracemonkey/tests/e4x/Regress/regress-375406.js +53 -0
  401. data/vendor/tracemonkey/tests/e4x/Regress/regress-378492.js +60 -0
  402. data/vendor/tracemonkey/tests/e4x/Regress/regress-380833.js +55 -0
  403. data/vendor/tracemonkey/tests/e4x/Regress/regress-383255.js +60 -0
  404. data/vendor/tracemonkey/tests/e4x/Regress/regress-394941.js +68 -0
  405. data/vendor/tracemonkey/tests/e4x/Regress/regress-407323.js +67 -0
  406. data/vendor/tracemonkey/tests/e4x/Regress/regress-426520.js +64 -0
  407. data/vendor/tracemonkey/tests/e4x/Regress/regress-453915.js +54 -0
  408. data/vendor/tracemonkey/tests/e4x/Regress/regress-458679-01.js +64 -0
  409. data/vendor/tracemonkey/tests/e4x/Regress/regress-458679-02.js +76 -0
  410. data/vendor/tracemonkey/tests/e4x/Regress/regress-460180.js +53 -0
  411. data/vendor/tracemonkey/tests/e4x/Regress/regress-465063.js +59 -0
  412. data/vendor/tracemonkey/tests/e4x/Regress/regress-473709.js +71 -0
  413. data/vendor/tracemonkey/tests/e4x/Regress/regress-474319.js +60 -0
  414. data/vendor/tracemonkey/tests/e4x/Regress/regress-477053.js +60 -0
  415. data/vendor/tracemonkey/tests/e4x/Regress/shell.js +1 -0
  416. data/vendor/tracemonkey/tests/e4x/Statements/12.1.js +134 -0
  417. data/vendor/tracemonkey/tests/e4x/Statements/12.2.js +104 -0
  418. data/vendor/tracemonkey/tests/e4x/Statements/12.3-01.js +76 -0
  419. data/vendor/tracemonkey/tests/e4x/Statements/jstests.list +4 -0
  420. data/vendor/tracemonkey/tests/e4x/Statements/shell.js +1 -0
  421. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.1.1.js +141 -0
  422. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.1.2.js +148 -0
  423. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.2.1.js +159 -0
  424. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.3.1.js +60 -0
  425. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.3.js +77 -0
  426. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.4.1.js +95 -0
  427. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.4.js +85 -0
  428. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.5.1.js +52 -0
  429. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.5.js +52 -0
  430. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.6.1.js +52 -0
  431. data/vendor/tracemonkey/tests/e4x/TypeConversion/10.6.js +52 -0
  432. data/vendor/tracemonkey/tests/e4x/TypeConversion/jstests.list +13 -0
  433. data/vendor/tracemonkey/tests/e4x/TypeConversion/regress-302097.js +59 -0
  434. data/vendor/tracemonkey/tests/e4x/TypeConversion/shell.js +1 -0
  435. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.1.js +304 -0
  436. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.10.js +52 -0
  437. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.11.js +52 -0
  438. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.12.js +52 -0
  439. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.13.js +52 -0
  440. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.2.js +82 -0
  441. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.3.js +213 -0
  442. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.4.js +50 -0
  443. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.5.js +53 -0
  444. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.6.js +59 -0
  445. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.7.js +53 -0
  446. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.8.js +54 -0
  447. data/vendor/tracemonkey/tests/e4x/Types/9.1.1.9.js +139 -0
  448. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.1.js +164 -0
  449. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.10.js +53 -0
  450. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.2.js +64 -0
  451. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.3.js +52 -0
  452. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.4.js +53 -0
  453. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.5.js +54 -0
  454. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.6.js +53 -0
  455. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.7.js +53 -0
  456. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.8.js +56 -0
  457. data/vendor/tracemonkey/tests/e4x/Types/9.2.1.9.js +81 -0
  458. data/vendor/tracemonkey/tests/e4x/Types/jstests.list +24 -0
  459. data/vendor/tracemonkey/tests/e4x/Types/shell.js +1 -0
  460. data/vendor/tracemonkey/tests/e4x/XML/13.4.1.js +113 -0
  461. data/vendor/tracemonkey/tests/e4x/XML/13.4.2.js +116 -0
  462. data/vendor/tracemonkey/tests/e4x/XML/13.4.3.10.js +52 -0
  463. data/vendor/tracemonkey/tests/e4x/XML/13.4.3.js +239 -0
  464. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.1.js +52 -0
  465. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.10.js +100 -0
  466. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.11.js +91 -0
  467. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.12-1.js +89 -0
  468. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.12.js +69 -0
  469. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.13.js +49 -0
  470. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.14.js +69 -0
  471. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.15.js +79 -0
  472. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.16.js +78 -0
  473. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.17.js +64 -0
  474. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.18.js +84 -0
  475. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.19.js +84 -0
  476. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.2.js +69 -0
  477. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.20.js +65 -0
  478. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.21.js +81 -0
  479. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.22.js +81 -0
  480. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.23.js +93 -0
  481. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.24.js +64 -0
  482. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.25.js +62 -0
  483. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.26.js +138 -0
  484. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.27.js +63 -0
  485. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.28.js +73 -0
  486. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.29.js +93 -0
  487. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.3-01.js +72 -0
  488. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.3-02.js +62 -0
  489. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.3.js +84 -0
  490. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.30.js +62 -0
  491. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.31.js +78 -0
  492. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.32-01.js +56 -0
  493. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.32.js +100 -0
  494. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.33.js +80 -0
  495. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.34.js +77 -0
  496. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.35.js +91 -0
  497. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.36.js +72 -0
  498. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.37.js +67 -0
  499. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.38.js +107 -0
  500. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.39.js +129 -0
  501. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.4.js +76 -0
  502. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.40.js +69 -0
  503. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.5.js +71 -0
  504. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.6.js +68 -0
  505. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.7.js +62 -0
  506. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.8.js +69 -0
  507. data/vendor/tracemonkey/tests/e4x/XML/13.4.4.9.js +63 -0
  508. data/vendor/tracemonkey/tests/e4x/XML/jstests.list +55 -0
  509. data/vendor/tracemonkey/tests/e4x/XML/regress-291930.js +54 -0
  510. data/vendor/tracemonkey/tests/e4x/XML/regress-324422-1.js +78 -0
  511. data/vendor/tracemonkey/tests/e4x/XML/regress-324422-2.js +72 -0
  512. data/vendor/tracemonkey/tests/e4x/XML/regress-324688.js +105 -0
  513. data/vendor/tracemonkey/tests/e4x/XML/regress-336921.js +63 -0
  514. data/vendor/tracemonkey/tests/e4x/XML/regress-376773.js +584 -0
  515. data/vendor/tracemonkey/tests/e4x/XML/shell.js +1 -0
  516. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.1.js +97 -0
  517. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.2.js +91 -0
  518. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.10.js +48 -0
  519. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.11.js +76 -0
  520. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.12.js +105 -0
  521. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.13.js +105 -0
  522. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.14.js +80 -0
  523. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.15.js +49 -0
  524. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.16.js +78 -0
  525. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.17.js +49 -0
  526. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.18.js +49 -0
  527. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.19.js +49 -0
  528. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.2.js +87 -0
  529. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.20.js +57 -0
  530. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.21.js +57 -0
  531. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.22.js +50 -0
  532. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.3.js +74 -0
  533. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.4.js +86 -0
  534. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.5.js +96 -0
  535. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.6.js +49 -0
  536. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.7.js +59 -0
  537. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.8.js +75 -0
  538. data/vendor/tracemonkey/tests/e4x/XMLList/13.5.4.9.js +84 -0
  539. data/vendor/tracemonkey/tests/e4x/XMLList/jstests.list +25 -0
  540. data/vendor/tracemonkey/tests/e4x/XMLList/regress-373072.js +61 -0
  541. data/vendor/tracemonkey/tests/e4x/XMLList/shell.js +1 -0
  542. data/vendor/tracemonkey/tests/e4x/browser.js +82 -0
  543. data/vendor/tracemonkey/tests/e4x/decompilation/decompile-xml-escapes.js +78 -0
  544. data/vendor/tracemonkey/tests/e4x/decompilation/jstests.list +19 -0
  545. data/vendor/tracemonkey/tests/e4x/decompilation/regress-349814.js +62 -0
  546. data/vendor/tracemonkey/tests/e4x/decompilation/regress-349815.js +56 -0
  547. data/vendor/tracemonkey/tests/e4x/decompilation/regress-349822.js +63 -0
  548. data/vendor/tracemonkey/tests/e4x/decompilation/regress-349956.js +60 -0
  549. data/vendor/tracemonkey/tests/e4x/decompilation/regress-350226.js +55 -0
  550. data/vendor/tracemonkey/tests/e4x/decompilation/regress-350531.js +61 -0
  551. data/vendor/tracemonkey/tests/e4x/decompilation/regress-351706.js +61 -0
  552. data/vendor/tracemonkey/tests/e4x/decompilation/regress-351988.js +56 -0
  553. data/vendor/tracemonkey/tests/e4x/decompilation/regress-352013.js +137 -0
  554. data/vendor/tracemonkey/tests/e4x/decompilation/regress-352459.js +54 -0
  555. data/vendor/tracemonkey/tests/e4x/decompilation/regress-352649.js +54 -0
  556. data/vendor/tracemonkey/tests/e4x/decompilation/regress-352789.js +66 -0
  557. data/vendor/tracemonkey/tests/e4x/decompilation/regress-355101.js +54 -0
  558. data/vendor/tracemonkey/tests/e4x/decompilation/regress-355474-01.js +61 -0
  559. data/vendor/tracemonkey/tests/e4x/decompilation/regress-373678.js +55 -0
  560. data/vendor/tracemonkey/tests/e4x/decompilation/regress-429249.js +64 -0
  561. data/vendor/tracemonkey/tests/e4x/decompilation/regress-461233.js +56 -0
  562. data/vendor/tracemonkey/tests/e4x/decompilation/shell.js +1 -0
  563. data/vendor/tracemonkey/tests/e4x/extensions/jstests.list +21 -0
  564. data/vendor/tracemonkey/tests/e4x/extensions/regress-305335.js +62 -0
  565. data/vendor/tracemonkey/tests/e4x/extensions/regress-312196.js +115 -0
  566. data/vendor/tracemonkey/tests/e4x/extensions/regress-313080.js +60 -0
  567. data/vendor/tracemonkey/tests/e4x/extensions/regress-321547.js +61 -0
  568. data/vendor/tracemonkey/tests/e4x/extensions/regress-327534.js +61 -0
  569. data/vendor/tracemonkey/tests/e4x/extensions/regress-327897.js +66 -0
  570. data/vendor/tracemonkey/tests/e4x/extensions/regress-337226.js +52 -0
  571. data/vendor/tracemonkey/tests/e4x/extensions/regress-352846-01.js +81 -0
  572. data/vendor/tracemonkey/tests/e4x/extensions/regress-352846-02.js +86 -0
  573. data/vendor/tracemonkey/tests/e4x/extensions/regress-352846-03.js +86 -0
  574. data/vendor/tracemonkey/tests/e4x/extensions/regress-353165.js +115 -0
  575. data/vendor/tracemonkey/tests/e4x/extensions/regress-354145-06.js +67 -0
  576. data/vendor/tracemonkey/tests/e4x/extensions/regress-354151-01.js +63 -0
  577. data/vendor/tracemonkey/tests/e4x/extensions/regress-354151-02.js +69 -0
  578. data/vendor/tracemonkey/tests/e4x/extensions/regress-374025.js +54 -0
  579. data/vendor/tracemonkey/tests/e4x/extensions/regress-374163.js +62 -0
  580. data/vendor/tracemonkey/tests/e4x/extensions/regress-410192.js +55 -0
  581. data/vendor/tracemonkey/tests/e4x/extensions/regress-450871-01.js +67 -0
  582. data/vendor/tracemonkey/tests/e4x/extensions/regress-450871-02.js +68 -0
  583. data/vendor/tracemonkey/tests/e4x/extensions/regress-462734-01.js +67 -0
  584. data/vendor/tracemonkey/tests/e4x/extensions/shell.js +1 -0
  585. data/vendor/tracemonkey/tests/e4x/jstests.list +13 -0
  586. data/vendor/tracemonkey/tests/e4x/shell.js +121 -0
  587. data/vendor/tracemonkey/tests/e4x/template.js +51 -0
  588. data/vendor/tracemonkey/tests/ecma/Array/15.4-1.js +133 -0
  589. data/vendor/tracemonkey/tests/ecma/Array/15.4-2.js +114 -0
  590. data/vendor/tracemonkey/tests/ecma/Array/15.4.1.1.js +111 -0
  591. data/vendor/tracemonkey/tests/ecma/Array/15.4.1.2.js +162 -0
  592. data/vendor/tracemonkey/tests/ecma/Array/15.4.1.3.js +84 -0
  593. data/vendor/tracemonkey/tests/ecma/Array/15.4.1.js +132 -0
  594. data/vendor/tracemonkey/tests/ecma/Array/15.4.2.1-1.js +112 -0
  595. data/vendor/tracemonkey/tests/ecma/Array/15.4.2.1-2.js +101 -0
  596. data/vendor/tracemonkey/tests/ecma/Array/15.4.2.1-3.js +137 -0
  597. data/vendor/tracemonkey/tests/ecma/Array/15.4.2.2-1.js +183 -0
  598. data/vendor/tracemonkey/tests/ecma/Array/15.4.2.2-2.js +118 -0
  599. data/vendor/tracemonkey/tests/ecma/Array/15.4.2.3.js +101 -0
  600. data/vendor/tracemonkey/tests/ecma/Array/15.4.3.1-2.js +81 -0
  601. data/vendor/tracemonkey/tests/ecma/Array/15.4.3.2.js +62 -0
  602. data/vendor/tracemonkey/tests/ecma/Array/15.4.4.1.js +63 -0
  603. data/vendor/tracemonkey/tests/ecma/Array/15.4.4.2.js +110 -0
  604. data/vendor/tracemonkey/tests/ecma/Array/15.4.4.3-1.js +163 -0
  605. data/vendor/tracemonkey/tests/ecma/Array/15.4.4.4-1.js +294 -0
  606. data/vendor/tracemonkey/tests/ecma/Array/15.4.4.4-2.js +169 -0
  607. data/vendor/tracemonkey/tests/ecma/Array/15.4.4.5-1.js +225 -0
  608. data/vendor/tracemonkey/tests/ecma/Array/15.4.4.5-2.js +227 -0
  609. data/vendor/tracemonkey/tests/ecma/Array/15.4.4.5-3.js +182 -0
  610. data/vendor/tracemonkey/tests/ecma/Array/15.4.4.js +74 -0
  611. data/vendor/tracemonkey/tests/ecma/Array/15.4.5.1-1.js +170 -0
  612. data/vendor/tracemonkey/tests/ecma/Array/15.4.5.1-2.js +152 -0
  613. data/vendor/tracemonkey/tests/ecma/Array/15.4.5.2-1.js +86 -0
  614. data/vendor/tracemonkey/tests/ecma/Array/15.4.5.2-2.js +127 -0
  615. data/vendor/tracemonkey/tests/ecma/Array/jstests.list +28 -0
  616. data/vendor/tracemonkey/tests/ecma/Array/shell.js +1 -0
  617. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.1.js +96 -0
  618. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.2.js +161 -0
  619. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1-1.js +72 -0
  620. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1-2.js +71 -0
  621. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1-3.js +71 -0
  622. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1-4.js +75 -0
  623. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.3.1.js +69 -0
  624. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4-1.js +72 -0
  625. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.1.js +62 -0
  626. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.2-1.js +97 -0
  627. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.2-2.js +73 -0
  628. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.2-3.js +65 -0
  629. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.2-4-n.js +69 -0
  630. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3-1.js +88 -0
  631. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3-2.js +67 -0
  632. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3-3.js +66 -0
  633. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3-4-n.js +69 -0
  634. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.3.js +83 -0
  635. data/vendor/tracemonkey/tests/ecma/Boolean/15.6.4.js +80 -0
  636. data/vendor/tracemonkey/tests/ecma/Boolean/jstests.list +20 -0
  637. data/vendor/tracemonkey/tests/ecma/Boolean/shell.js +1 -0
  638. data/vendor/tracemonkey/tests/ecma/Date/15.9.1.1-1.js +95 -0
  639. data/vendor/tracemonkey/tests/ecma/Date/15.9.1.1-2.js +90 -0
  640. data/vendor/tracemonkey/tests/ecma/Date/15.9.1.13-1.js +78 -0
  641. data/vendor/tracemonkey/tests/ecma/Date/15.9.2.1.js +174 -0
  642. data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-1.js +86 -0
  643. data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-2.js +89 -0
  644. data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-3.js +86 -0
  645. data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-4.js +82 -0
  646. data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-5.js +86 -0
  647. data/vendor/tracemonkey/tests/ecma/Date/15.9.2.2-6.js +85 -0
  648. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-1.js +239 -0
  649. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-2.js +152 -0
  650. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-3.js +141 -0
  651. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-4.js +151 -0
  652. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.1-5.js +140 -0
  653. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-1.js +150 -0
  654. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-2.js +141 -0
  655. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-3.js +145 -0
  656. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-4.js +142 -0
  657. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.2-5.js +139 -0
  658. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-1.js +155 -0
  659. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-2.js +153 -0
  660. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-3.js +160 -0
  661. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-4.js +161 -0
  662. data/vendor/tracemonkey/tests/ecma/Date/15.9.3.8-5.js +161 -0
  663. data/vendor/tracemonkey/tests/ecma/Date/15.9.4.2-1.js +81 -0
  664. data/vendor/tracemonkey/tests/ecma/Date/15.9.4.2.js +191 -0
  665. data/vendor/tracemonkey/tests/ecma/Date/15.9.4.3.js +185 -0
  666. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.1.js +63 -0
  667. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-1.js +85 -0
  668. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-10.js +89 -0
  669. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-11.js +89 -0
  670. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-12.js +89 -0
  671. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-13.js +89 -0
  672. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-2.js +85 -0
  673. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-3.js +85 -0
  674. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-4.js +85 -0
  675. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-5.js +85 -0
  676. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-6.js +85 -0
  677. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-7.js +85 -0
  678. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-8.js +89 -0
  679. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.10-9.js +89 -0
  680. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-1.js +76 -0
  681. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-2.js +76 -0
  682. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-3.js +76 -0
  683. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-4.js +76 -0
  684. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-5.js +76 -0
  685. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-6.js +76 -0
  686. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.11-7.js +76 -0
  687. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-1.js +77 -0
  688. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-2.js +77 -0
  689. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-3.js +77 -0
  690. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-4.js +77 -0
  691. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-5.js +77 -0
  692. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-6.js +77 -0
  693. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-7.js +77 -0
  694. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.12-8.js +71 -0
  695. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-1.js +79 -0
  696. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-2.js +76 -0
  697. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-3.js +77 -0
  698. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-4.js +77 -0
  699. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-5.js +77 -0
  700. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-6.js +77 -0
  701. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-7.js +76 -0
  702. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.13-8.js +71 -0
  703. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.14.js +87 -0
  704. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.15.js +88 -0
  705. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.16.js +87 -0
  706. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.17.js +88 -0
  707. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.18.js +88 -0
  708. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.19.js +88 -0
  709. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.2-1.js +151 -0
  710. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.2-2-n.js +84 -0
  711. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.2.js +151 -0
  712. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.20.js +88 -0
  713. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-1.js +70 -0
  714. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-2.js +70 -0
  715. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-3.js +70 -0
  716. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-4.js +70 -0
  717. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-5.js +70 -0
  718. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-6.js +70 -0
  719. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-7.js +70 -0
  720. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.21-8.js +71 -0
  721. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-1.js +89 -0
  722. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-2.js +74 -0
  723. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-3.js +74 -0
  724. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-4.js +74 -0
  725. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-5.js +74 -0
  726. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-6.js +74 -0
  727. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-7.js +74 -0
  728. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.22-8.js +72 -0
  729. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-1.js +139 -0
  730. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-10.js +139 -0
  731. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-11.js +140 -0
  732. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-12.js +137 -0
  733. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-13.js +137 -0
  734. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-14.js +137 -0
  735. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-15.js +137 -0
  736. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-16.js +137 -0
  737. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-17.js +137 -0
  738. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-18.js +137 -0
  739. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-2.js +109 -0
  740. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-3-n.js +79 -0
  741. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-4.js +112 -0
  742. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-5.js +113 -0
  743. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-6.js +112 -0
  744. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-7.js +113 -0
  745. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-8.js +103 -0
  746. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.23-9.js +103 -0
  747. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-1.js +134 -0
  748. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-2.js +134 -0
  749. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-3.js +134 -0
  750. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-4.js +134 -0
  751. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-5.js +134 -0
  752. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-6.js +134 -0
  753. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-7.js +134 -0
  754. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.24-8.js +133 -0
  755. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.25-1.js +174 -0
  756. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.26-1.js +183 -0
  757. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.27-1.js +183 -0
  758. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.28-1.js +196 -0
  759. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.29-1.js +191 -0
  760. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.3-1-n.js +80 -0
  761. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.3-2.js +104 -0
  762. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.30-1.js +192 -0
  763. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.31-1.js +222 -0
  764. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.32-1.js +141 -0
  765. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.33-1.js +145 -0
  766. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.34-1.js +182 -0
  767. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.35-1.js +139 -0
  768. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-1.js +165 -0
  769. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-2.js +164 -0
  770. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-3.js +163 -0
  771. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-4.js +163 -0
  772. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-5.js +163 -0
  773. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-6.js +163 -0
  774. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.36-7.js +163 -0
  775. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-1.js +173 -0
  776. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-2.js +161 -0
  777. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-3.js +164 -0
  778. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-4.js +163 -0
  779. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.37-5.js +159 -0
  780. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.4-1.js +93 -0
  781. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.4-2-n.js +76 -0
  782. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.5.js +112 -0
  783. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.6.js +104 -0
  784. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.7.js +105 -0
  785. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.8.js +113 -0
  786. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.9.js +113 -0
  787. data/vendor/tracemonkey/tests/ecma/Date/15.9.5.js +83 -0
  788. data/vendor/tracemonkey/tests/ecma/Date/jstests.list +151 -0
  789. data/vendor/tracemonkey/tests/ecma/Date/shell.js +1 -0
  790. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.3-1.js +107 -0
  791. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.3-2.js +73 -0
  792. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.3.js +170 -0
  793. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-1.js +111 -0
  794. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-10.js +105 -0
  795. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-2.js +113 -0
  796. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-3.js +111 -0
  797. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-4.js +113 -0
  798. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-5.js +112 -0
  799. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-6.js +100 -0
  800. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-7.js +112 -0
  801. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.4-8.js +113 -0
  802. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.5-1.js +118 -0
  803. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.5-2.js +100 -0
  804. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.5-3.js +130 -0
  805. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.5-4.js +91 -0
  806. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.8-2.js +120 -0
  807. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.1.8-3.js +66 -0
  808. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.1.js +85 -0
  809. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.2-1.js +122 -0
  810. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.2-2.js +133 -0
  811. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.3-1.js +86 -0
  812. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/10.2.3-2.js +92 -0
  813. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/jstests.list +24 -0
  814. data/vendor/tracemonkey/tests/ecma/ExecutionContexts/shell.js +1 -0
  815. data/vendor/tracemonkey/tests/ecma/Expressions/11.1.1.js +137 -0
  816. data/vendor/tracemonkey/tests/ecma/Expressions/11.10-1.js +270 -0
  817. data/vendor/tracemonkey/tests/ecma/Expressions/11.10-2.js +269 -0
  818. data/vendor/tracemonkey/tests/ecma/Expressions/11.10-3.js +268 -0
  819. data/vendor/tracemonkey/tests/ecma/Expressions/11.12-1.js +110 -0
  820. data/vendor/tracemonkey/tests/ecma/Expressions/11.12-2-n.js +74 -0
  821. data/vendor/tracemonkey/tests/ecma/Expressions/11.12-3.js +71 -0
  822. data/vendor/tracemonkey/tests/ecma/Expressions/11.12-4.js +71 -0
  823. data/vendor/tracemonkey/tests/ecma/Expressions/11.13.1.js +72 -0
  824. data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-1.js +231 -0
  825. data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-2.js +253 -0
  826. data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-3.js +300 -0
  827. data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-4.js +137 -0
  828. data/vendor/tracemonkey/tests/ecma/Expressions/11.13.2-5.js +137 -0
  829. data/vendor/tracemonkey/tests/ecma/Expressions/11.13.js +86 -0
  830. data/vendor/tracemonkey/tests/ecma/Expressions/11.14-1.js +73 -0
  831. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-1.js +272 -0
  832. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-2.js +128 -0
  833. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-3-n.js +128 -0
  834. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-4-n.js +128 -0
  835. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.1-5.js +128 -0
  836. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-1-n.js +104 -0
  837. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-1.js +100 -0
  838. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-10-n.js +102 -0
  839. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-11.js +104 -0
  840. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-2-n.js +104 -0
  841. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-3-n.js +100 -0
  842. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-4-n.js +104 -0
  843. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-5-n.js +104 -0
  844. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-6-n.js +103 -0
  845. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-7-n.js +104 -0
  846. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-8-n.js +104 -0
  847. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.2-9-n.js +104 -0
  848. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-1.js +125 -0
  849. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-2-n.js +94 -0
  850. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-3-n.js +91 -0
  851. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-4-n.js +91 -0
  852. data/vendor/tracemonkey/tests/ecma/Expressions/11.2.3-5.js +85 -0
  853. data/vendor/tracemonkey/tests/ecma/Expressions/11.3.1.js +153 -0
  854. data/vendor/tracemonkey/tests/ecma/Expressions/11.3.2.js +153 -0
  855. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.1.js +92 -0
  856. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.2.js +83 -0
  857. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.3.js +111 -0
  858. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.4.js +156 -0
  859. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.5.js +154 -0
  860. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.6.js +299 -0
  861. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.7-01.js +299 -0
  862. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.7-02.js +87 -0
  863. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.8.js +215 -0
  864. data/vendor/tracemonkey/tests/ecma/Expressions/11.4.9.js +94 -0
  865. data/vendor/tracemonkey/tests/ecma/Expressions/11.5.1.js +115 -0
  866. data/vendor/tracemonkey/tests/ecma/Expressions/11.5.2.js +154 -0
  867. data/vendor/tracemonkey/tests/ecma/Expressions/11.5.3.js +161 -0
  868. data/vendor/tracemonkey/tests/ecma/Expressions/11.6.1-1.js +160 -0
  869. data/vendor/tracemonkey/tests/ecma/Expressions/11.6.1-2.js +164 -0
  870. data/vendor/tracemonkey/tests/ecma/Expressions/11.6.1-3.js +150 -0
  871. data/vendor/tracemonkey/tests/ecma/Expressions/11.6.2-1.js +165 -0
  872. data/vendor/tracemonkey/tests/ecma/Expressions/11.6.3.js +115 -0
  873. data/vendor/tracemonkey/tests/ecma/Expressions/11.7.1.js +228 -0
  874. data/vendor/tracemonkey/tests/ecma/Expressions/11.7.2.js +246 -0
  875. data/vendor/tracemonkey/tests/ecma/Expressions/11.7.3.js +230 -0
  876. data/vendor/tracemonkey/tests/ecma/Expressions/11.8.1.js +121 -0
  877. data/vendor/tracemonkey/tests/ecma/Expressions/11.8.2.js +121 -0
  878. data/vendor/tracemonkey/tests/ecma/Expressions/11.8.3.js +120 -0
  879. data/vendor/tracemonkey/tests/ecma/Expressions/11.8.4.js +121 -0
  880. data/vendor/tracemonkey/tests/ecma/Expressions/11.9.1.js +159 -0
  881. data/vendor/tracemonkey/tests/ecma/Expressions/11.9.2.js +159 -0
  882. data/vendor/tracemonkey/tests/ecma/Expressions/11.9.3.js +159 -0
  883. data/vendor/tracemonkey/tests/ecma/Expressions/jstests.list +69 -0
  884. data/vendor/tracemonkey/tests/ecma/Expressions/shell.js +1 -0
  885. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.1.1-1.js +136 -0
  886. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.1.1-2.js +183 -0
  887. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.1.1-3.js +99 -0
  888. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.2.1-1.js +132 -0
  889. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.2.1-2.js +107 -0
  890. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.2.1-3.js +95 -0
  891. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.3.1-2.js +70 -0
  892. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.3.1-3.js +79 -0
  893. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.3.1-4.js +70 -0
  894. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.3.2.js +62 -0
  895. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.4-1.js +94 -0
  896. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.4.1.js +61 -0
  897. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.4.js +81 -0
  898. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.5-1.js +117 -0
  899. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.5-2.js +90 -0
  900. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.5.1.js +83 -0
  901. data/vendor/tracemonkey/tests/ecma/FunctionObjects/15.3.5.3.js +72 -0
  902. data/vendor/tracemonkey/tests/ecma/FunctionObjects/jstests.list +18 -0
  903. data/vendor/tracemonkey/tests/ecma/FunctionObjects/shell.js +1 -0
  904. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1-1-n.js +70 -0
  905. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1-2-n.js +67 -0
  906. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.1.1.js +63 -0
  907. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.1.2.js +62 -0
  908. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.1-2.js +66 -0
  909. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.2-1.js +410 -0
  910. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.2-2.js +238 -0
  911. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.3-1.js +441 -0
  912. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.3-2.js +291 -0
  913. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.4.js +205 -0
  914. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.5-1.js +206 -0
  915. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.5-2.js +183 -0
  916. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.5-3.js +207 -0
  917. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.6.js +125 -0
  918. data/vendor/tracemonkey/tests/ecma/GlobalObject/15.1.2.7.js +130 -0
  919. data/vendor/tracemonkey/tests/ecma/GlobalObject/jstests.list +16 -0
  920. data/vendor/tracemonkey/tests/ecma/GlobalObject/shell.js +1 -0
  921. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.1-1.js +82 -0
  922. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.1-2.js +73 -0
  923. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.1-3.js +89 -0
  924. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-1.js +73 -0
  925. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-2-n.js +74 -0
  926. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-3-n.js +74 -0
  927. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-4-n.js +73 -0
  928. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-5-n.js +72 -0
  929. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.2-6.js +68 -0
  930. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-1.js +92 -0
  931. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-10.js +65 -0
  932. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-11.js +66 -0
  933. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-12.js +64 -0
  934. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-13-n.js +66 -0
  935. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-2.js +65 -0
  936. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-3.js +65 -0
  937. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-4.js +65 -0
  938. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-5.js +65 -0
  939. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-6.js +65 -0
  940. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-7.js +66 -0
  941. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-8.js +65 -0
  942. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.3-9.js +65 -0
  943. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.1-1-n.js +71 -0
  944. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.1-2-n.js +71 -0
  945. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.1-3-n.js +69 -0
  946. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-1-n.js +77 -0
  947. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-10-n.js +77 -0
  948. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-11-n.js +77 -0
  949. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-12-n.js +77 -0
  950. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-13-n.js +77 -0
  951. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-14-n.js +77 -0
  952. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-15-n.js +77 -0
  953. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-16-n.js +77 -0
  954. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-2-n.js +77 -0
  955. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-3-n.js +77 -0
  956. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-4-n.js +77 -0
  957. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-5-n.js +77 -0
  958. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-6-n.js +77 -0
  959. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-7-n.js +75 -0
  960. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-8-n.js +76 -0
  961. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.2-9-n.js +77 -0
  962. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-1-n.js +71 -0
  963. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-10-n.js +71 -0
  964. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-11-n.js +71 -0
  965. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-12-n.js +71 -0
  966. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-13-n.js +71 -0
  967. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-14-n.js +103 -0
  968. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-15-n.js +97 -0
  969. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-16-n.js +88 -0
  970. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-2-n.js +71 -0
  971. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-3-n.js +71 -0
  972. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-4-n.js +102 -0
  973. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-5-n.js +71 -0
  974. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-6-n.js +71 -0
  975. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-7-n.js +103 -0
  976. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-8-n.js +71 -0
  977. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.4.3-9-n.js +104 -0
  978. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-1.js +62 -0
  979. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-10-n.js +64 -0
  980. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-2-n.js +64 -0
  981. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-3-n.js +64 -0
  982. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-4-n.js +64 -0
  983. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-5-n.js +64 -0
  984. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-6.js +61 -0
  985. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-7.js +61 -0
  986. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-8-n.js +64 -0
  987. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.5-9-n.js +64 -0
  988. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.6.js +313 -0
  989. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.1.js +64 -0
  990. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.2.js +71 -0
  991. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.3-1.js +198 -0
  992. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.3-2.js +93 -0
  993. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.3.js +331 -0
  994. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.7.4.js +269 -0
  995. data/vendor/tracemonkey/tests/ecma/LexicalConventions/7.8.2-n.js +63 -0
  996. data/vendor/tracemonkey/tests/ecma/LexicalConventions/jstests.list +76 -0
  997. data/vendor/tracemonkey/tests/ecma/LexicalConventions/shell.js +1 -0
  998. data/vendor/tracemonkey/tests/ecma/Math/15.8-2-n.js +82 -0
  999. data/vendor/tracemonkey/tests/ecma/Math/15.8-3-n.js +81 -0
  1000. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.1-1.js +64 -0
  1001. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.1-2.js +69 -0
  1002. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.2-1.js +64 -0
  1003. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.2-2.js +70 -0
  1004. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.3-1.js +65 -0
  1005. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.3-2.js +72 -0
  1006. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.4-1.js +65 -0
  1007. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.4-2.js +69 -0
  1008. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.5-1.js +66 -0
  1009. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.5-2.js +70 -0
  1010. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.6-1.js +65 -0
  1011. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.6-2.js +70 -0
  1012. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.7-1.js +65 -0
  1013. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.7-2.js +70 -0
  1014. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.8-1.js +65 -0
  1015. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.8-2.js +69 -0
  1016. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.8-3.js +63 -0
  1017. data/vendor/tracemonkey/tests/ecma/Math/15.8.1.js +149 -0
  1018. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.1.js +226 -0
  1019. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.10.js +153 -0
  1020. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.11.js +200 -0
  1021. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.12.js +177 -0
  1022. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.13.js +385 -0
  1023. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.14.js +79 -0
  1024. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.15.js +202 -0
  1025. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.16.js +132 -0
  1026. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.17.js +217 -0
  1027. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.18.js +165 -0
  1028. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.2.js +156 -0
  1029. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.3.js +158 -0
  1030. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.4.js +156 -0
  1031. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.5.js +244 -0
  1032. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.6.js +232 -0
  1033. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.7.js +283 -0
  1034. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.8.js +134 -0
  1035. data/vendor/tracemonkey/tests/ecma/Math/15.8.2.9.js +191 -0
  1036. data/vendor/tracemonkey/tests/ecma/Math/jstests.list +39 -0
  1037. data/vendor/tracemonkey/tests/ecma/Math/shell.js +1 -0
  1038. data/vendor/tracemonkey/tests/ecma/NativeObjects/shell.js +1 -0
  1039. data/vendor/tracemonkey/tests/ecma/Number/15.7.1.js +88 -0
  1040. data/vendor/tracemonkey/tests/ecma/Number/15.7.2.js +168 -0
  1041. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.1-1.js +71 -0
  1042. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.1-2.js +71 -0
  1043. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.1-3.js +67 -0
  1044. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.2-1.js +65 -0
  1045. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.2-2.js +70 -0
  1046. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.2-3.js +67 -0
  1047. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.2-4.js +64 -0
  1048. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.3-1.js +68 -0
  1049. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.3-2.js +73 -0
  1050. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.3-3.js +64 -0
  1051. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.3-4.js +66 -0
  1052. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.4-1.js +66 -0
  1053. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.4-2.js +71 -0
  1054. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.4-3.js +65 -0
  1055. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.4-4.js +66 -0
  1056. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.5-1.js +64 -0
  1057. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.5-2.js +70 -0
  1058. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.5-3.js +65 -0
  1059. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.5-4.js +66 -0
  1060. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.6-1.js +65 -0
  1061. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.6-2.js +69 -0
  1062. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.6-3.js +65 -0
  1063. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.6-4.js +66 -0
  1064. data/vendor/tracemonkey/tests/ecma/Number/15.7.3.js +69 -0
  1065. data/vendor/tracemonkey/tests/ecma/Number/15.7.4-1.js +60 -0
  1066. data/vendor/tracemonkey/tests/ecma/Number/15.7.4.1.js +62 -0
  1067. data/vendor/tracemonkey/tests/ecma/Number/15.7.4.2-1.js +111 -0
  1068. data/vendor/tracemonkey/tests/ecma/Number/15.7.4.2-2-n.js +76 -0
  1069. data/vendor/tracemonkey/tests/ecma/Number/15.7.4.2-3-n.js +73 -0
  1070. data/vendor/tracemonkey/tests/ecma/Number/15.7.4.2-4.js +70 -0
  1071. data/vendor/tracemonkey/tests/ecma/Number/15.7.4.3-1.js +97 -0
  1072. data/vendor/tracemonkey/tests/ecma/Number/15.7.4.3-2.js +65 -0
  1073. data/vendor/tracemonkey/tests/ecma/Number/15.7.4.3-3-n.js +72 -0
  1074. data/vendor/tracemonkey/tests/ecma/Number/jstests.list +36 -0
  1075. data/vendor/tracemonkey/tests/ecma/Number/shell.js +1 -0
  1076. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.1.1.js +146 -0
  1077. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.1.2.js +81 -0
  1078. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.2.1.js +138 -0
  1079. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.2.2.js +74 -0
  1080. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3-1.js +64 -0
  1081. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.1-1.js +69 -0
  1082. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.1-2.js +70 -0
  1083. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.1-3.js +70 -0
  1084. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.1-4.js +70 -0
  1085. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.3.js +67 -0
  1086. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.4.1.js +64 -0
  1087. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.4.2.js +130 -0
  1088. data/vendor/tracemonkey/tests/ecma/ObjectObjects/15.2.4.3.js +117 -0
  1089. data/vendor/tracemonkey/tests/ecma/ObjectObjects/jstests.list +14 -0
  1090. data/vendor/tracemonkey/tests/ecma/ObjectObjects/shell.js +1 -0
  1091. data/vendor/tracemonkey/tests/ecma/README +1 -0
  1092. data/vendor/tracemonkey/tests/ecma/SourceText/6-1.js +128 -0
  1093. data/vendor/tracemonkey/tests/ecma/SourceText/6-2.js +131 -0
  1094. data/vendor/tracemonkey/tests/ecma/SourceText/jstests.list +3 -0
  1095. data/vendor/tracemonkey/tests/ecma/SourceText/shell.js +1 -0
  1096. data/vendor/tracemonkey/tests/ecma/Statements/12.10-1.js +151 -0
  1097. data/vendor/tracemonkey/tests/ecma/Statements/12.10.js +61 -0
  1098. data/vendor/tracemonkey/tests/ecma/Statements/12.2-1.js +74 -0
  1099. data/vendor/tracemonkey/tests/ecma/Statements/12.5-1.js +102 -0
  1100. data/vendor/tracemonkey/tests/ecma/Statements/12.5-2.js +99 -0
  1101. data/vendor/tracemonkey/tests/ecma/Statements/12.6.1-1.js +74 -0
  1102. data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-1.js +75 -0
  1103. data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-2.js +76 -0
  1104. data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-3.js +72 -0
  1105. data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-4.js +72 -0
  1106. data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-5.js +73 -0
  1107. data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-6.js +75 -0
  1108. data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-7.js +73 -0
  1109. data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-8.js +71 -0
  1110. data/vendor/tracemonkey/tests/ecma/Statements/12.6.2-9-n.js +76 -0
  1111. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-1.js +63 -0
  1112. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-10.js +115 -0
  1113. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-11.js +98 -0
  1114. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-12.js +103 -0
  1115. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-19.js +117 -0
  1116. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-2.js +63 -0
  1117. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-3.js +73 -0
  1118. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-4.js +202 -0
  1119. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-5-n.js +110 -0
  1120. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-6-n.js +109 -0
  1121. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-7-n.js +110 -0
  1122. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-8-n.js +110 -0
  1123. data/vendor/tracemonkey/tests/ecma/Statements/12.6.3-9-n.js +109 -0
  1124. data/vendor/tracemonkey/tests/ecma/Statements/12.7-1-n.js +64 -0
  1125. data/vendor/tracemonkey/tests/ecma/Statements/12.8-1-n.js +67 -0
  1126. data/vendor/tracemonkey/tests/ecma/Statements/12.9-1-n.js +63 -0
  1127. data/vendor/tracemonkey/tests/ecma/Statements/jstests.list +32 -0
  1128. data/vendor/tracemonkey/tests/ecma/Statements/shell.js +1 -0
  1129. data/vendor/tracemonkey/tests/ecma/String/15.5.1.js +134 -0
  1130. data/vendor/tracemonkey/tests/ecma/String/15.5.2.js +110 -0
  1131. data/vendor/tracemonkey/tests/ecma/String/15.5.3.1-1.js +71 -0
  1132. data/vendor/tracemonkey/tests/ecma/String/15.5.3.1-2.js +69 -0
  1133. data/vendor/tracemonkey/tests/ecma/String/15.5.3.1-3.js +66 -0
  1134. data/vendor/tracemonkey/tests/ecma/String/15.5.3.1-4.js +66 -0
  1135. data/vendor/tracemonkey/tests/ecma/String/15.5.3.2-1.js +190 -0
  1136. data/vendor/tracemonkey/tests/ecma/String/15.5.3.2-2.js +77 -0
  1137. data/vendor/tracemonkey/tests/ecma/String/15.5.3.2-3.js +121 -0
  1138. data/vendor/tracemonkey/tests/ecma/String/15.5.3.js +66 -0
  1139. data/vendor/tracemonkey/tests/ecma/String/15.5.4.1.js +63 -0
  1140. data/vendor/tracemonkey/tests/ecma/String/15.5.4.10-1.js +217 -0
  1141. data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-1.js +518 -0
  1142. data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-2.js +515 -0
  1143. data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-3.js +514 -0
  1144. data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-4.js +507 -0
  1145. data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-5.js +520 -0
  1146. data/vendor/tracemonkey/tests/ecma/String/15.5.4.11-6.js +516 -0
  1147. data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-1.js +520 -0
  1148. data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-2.js +518 -0
  1149. data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-3.js +559 -0
  1150. data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-4.js +515 -0
  1151. data/vendor/tracemonkey/tests/ecma/String/15.5.4.12-5.js +515 -0
  1152. data/vendor/tracemonkey/tests/ecma/String/15.5.4.2-1.js +72 -0
  1153. data/vendor/tracemonkey/tests/ecma/String/15.5.4.2-2-n.js +73 -0
  1154. data/vendor/tracemonkey/tests/ecma/String/15.5.4.2-3.js +83 -0
  1155. data/vendor/tracemonkey/tests/ecma/String/15.5.4.2.js +87 -0
  1156. data/vendor/tracemonkey/tests/ecma/String/15.5.4.3-1.js +72 -0
  1157. data/vendor/tracemonkey/tests/ecma/String/15.5.4.3-2.js +90 -0
  1158. data/vendor/tracemonkey/tests/ecma/String/15.5.4.3-3-n.js +72 -0
  1159. data/vendor/tracemonkey/tests/ecma/String/15.5.4.4-1.js +92 -0
  1160. data/vendor/tracemonkey/tests/ecma/String/15.5.4.4-2.js +136 -0
  1161. data/vendor/tracemonkey/tests/ecma/String/15.5.4.4-3.js +112 -0
  1162. data/vendor/tracemonkey/tests/ecma/String/15.5.4.4-4.js +124 -0
  1163. data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-1.js +87 -0
  1164. data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-2.js +121 -0
  1165. data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-3.js +131 -0
  1166. data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-4.js +75 -0
  1167. data/vendor/tracemonkey/tests/ecma/String/15.5.4.5-5.js +106 -0
  1168. data/vendor/tracemonkey/tests/ecma/String/15.5.4.6-1.js +155 -0
  1169. data/vendor/tracemonkey/tests/ecma/String/15.5.4.6-2.js +259 -0
  1170. data/vendor/tracemonkey/tests/ecma/String/15.5.4.7-1.js +219 -0
  1171. data/vendor/tracemonkey/tests/ecma/String/15.5.4.7-2.js +217 -0
  1172. data/vendor/tracemonkey/tests/ecma/String/15.5.4.8-1.js +232 -0
  1173. data/vendor/tracemonkey/tests/ecma/String/15.5.4.8-2.js +247 -0
  1174. data/vendor/tracemonkey/tests/ecma/String/15.5.4.8-3.js +204 -0
  1175. data/vendor/tracemonkey/tests/ecma/String/15.5.4.9-1.js +202 -0
  1176. data/vendor/tracemonkey/tests/ecma/String/15.5.4.js +108 -0
  1177. data/vendor/tracemonkey/tests/ecma/String/15.5.5.1.js +88 -0
  1178. data/vendor/tracemonkey/tests/ecma/String/jstests.list +50 -0
  1179. data/vendor/tracemonkey/tests/ecma/String/shell.js +1 -0
  1180. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.2.js +138 -0
  1181. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3-1.js +100 -0
  1182. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3.1-1.js +323 -0
  1183. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3.1-2.js +87 -0
  1184. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3.1-3.js +747 -0
  1185. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.3.js +87 -0
  1186. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.4-1.js +112 -0
  1187. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.4-2.js +112 -0
  1188. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.5-2.js +173 -0
  1189. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.6.js +140 -0
  1190. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.7.js +160 -0
  1191. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.8.1.js +167 -0
  1192. data/vendor/tracemonkey/tests/ecma/TypeConversion/9.9-1.js +119 -0
  1193. data/vendor/tracemonkey/tests/ecma/TypeConversion/jstests.list +14 -0
  1194. data/vendor/tracemonkey/tests/ecma/TypeConversion/shell.js +1 -0
  1195. data/vendor/tracemonkey/tests/ecma/Types/8.1.js +75 -0
  1196. data/vendor/tracemonkey/tests/ecma/Types/8.4.js +130 -0
  1197. data/vendor/tracemonkey/tests/ecma/Types/8.6.2.1-1.js +78 -0
  1198. data/vendor/tracemonkey/tests/ecma/Types/jstests.list +4 -0
  1199. data/vendor/tracemonkey/tests/ecma/Types/shell.js +1 -0
  1200. data/vendor/tracemonkey/tests/ecma/browser.js +62 -0
  1201. data/vendor/tracemonkey/tests/ecma/extensions/10.1.4-9.js +110 -0
  1202. data/vendor/tracemonkey/tests/ecma/extensions/10.1.6.js +127 -0
  1203. data/vendor/tracemonkey/tests/ecma/extensions/10.1.8-1.js +135 -0
  1204. data/vendor/tracemonkey/tests/ecma/extensions/11.6.1-1.js +145 -0
  1205. data/vendor/tracemonkey/tests/ecma/extensions/11.6.1-2.js +136 -0
  1206. data/vendor/tracemonkey/tests/ecma/extensions/11.6.1-3.js +137 -0
  1207. data/vendor/tracemonkey/tests/ecma/extensions/11.6.2-1.js +124 -0
  1208. data/vendor/tracemonkey/tests/ecma/extensions/15-1.js +94 -0
  1209. data/vendor/tracemonkey/tests/ecma/extensions/15-2.js +77 -0
  1210. data/vendor/tracemonkey/tests/ecma/extensions/15.1.2.1-1.js +88 -0
  1211. data/vendor/tracemonkey/tests/ecma/extensions/15.2.1.1.js +82 -0
  1212. data/vendor/tracemonkey/tests/ecma/extensions/15.2.3-1.js +64 -0
  1213. data/vendor/tracemonkey/tests/ecma/extensions/15.2.4.js +66 -0
  1214. data/vendor/tracemonkey/tests/ecma/extensions/15.3.1.1-1.js +82 -0
  1215. data/vendor/tracemonkey/tests/ecma/extensions/15.3.1.1-2.js +82 -0
  1216. data/vendor/tracemonkey/tests/ecma/extensions/15.3.2.1-1.js +72 -0
  1217. data/vendor/tracemonkey/tests/ecma/extensions/15.3.2.1-2.js +72 -0
  1218. data/vendor/tracemonkey/tests/ecma/extensions/15.3.3.1-1.js +67 -0
  1219. data/vendor/tracemonkey/tests/ecma/extensions/15.4.3.js +63 -0
  1220. data/vendor/tracemonkey/tests/ecma/extensions/15.5.3.js +66 -0
  1221. data/vendor/tracemonkey/tests/ecma/extensions/15.5.4.2.js +59 -0
  1222. data/vendor/tracemonkey/tests/ecma/extensions/15.5.4.4-4.js +107 -0
  1223. data/vendor/tracemonkey/tests/ecma/extensions/15.5.4.5-6.js +94 -0
  1224. data/vendor/tracemonkey/tests/ecma/extensions/15.5.4.7-3.js +161 -0
  1225. data/vendor/tracemonkey/tests/ecma/extensions/15.6.3.1-5.js +58 -0
  1226. data/vendor/tracemonkey/tests/ecma/extensions/15.6.3.js +65 -0
  1227. data/vendor/tracemonkey/tests/ecma/extensions/15.6.4-2.js +66 -0
  1228. data/vendor/tracemonkey/tests/ecma/extensions/15.7.3.js +69 -0
  1229. data/vendor/tracemonkey/tests/ecma/extensions/15.7.4.js +90 -0
  1230. data/vendor/tracemonkey/tests/ecma/extensions/15.8-1.js +84 -0
  1231. data/vendor/tracemonkey/tests/ecma/extensions/15.9.5.js +76 -0
  1232. data/vendor/tracemonkey/tests/ecma/extensions/8.6.2.1-1.js +98 -0
  1233. data/vendor/tracemonkey/tests/ecma/extensions/9.9-1.js +102 -0
  1234. data/vendor/tracemonkey/tests/ecma/extensions/jstests.list +34 -0
  1235. data/vendor/tracemonkey/tests/ecma/extensions/shell.js +1 -0
  1236. data/vendor/tracemonkey/tests/ecma/jsref.js +632 -0
  1237. data/vendor/tracemonkey/tests/ecma/jstests.list +18 -0
  1238. data/vendor/tracemonkey/tests/ecma/shell.js +581 -0
  1239. data/vendor/tracemonkey/tests/ecma/template.js +70 -0
  1240. data/vendor/tracemonkey/tests/ecma_2/Exceptions/boolean-001.js +80 -0
  1241. data/vendor/tracemonkey/tests/ecma_2/Exceptions/boolean-002.js +84 -0
  1242. data/vendor/tracemonkey/tests/ecma_2/Exceptions/date-001.js +93 -0
  1243. data/vendor/tracemonkey/tests/ecma_2/Exceptions/date-002.js +87 -0
  1244. data/vendor/tracemonkey/tests/ecma_2/Exceptions/date-003.js +89 -0
  1245. data/vendor/tracemonkey/tests/ecma_2/Exceptions/date-004.js +83 -0
  1246. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-001.js +78 -0
  1247. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-002.js +78 -0
  1248. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-003.js +82 -0
  1249. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-004.js +78 -0
  1250. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-005.js +78 -0
  1251. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-006.js +89 -0
  1252. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-007.js +90 -0
  1253. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-008.js +77 -0
  1254. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-009.js +86 -0
  1255. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-010-n.js +61 -0
  1256. data/vendor/tracemonkey/tests/ecma_2/Exceptions/exception-011-n.js +62 -0
  1257. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-001.js +83 -0
  1258. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-002.js +93 -0
  1259. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-003.js +88 -0
  1260. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-004.js +82 -0
  1261. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-005.js +74 -0
  1262. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-006.js +79 -0
  1263. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-007.js +77 -0
  1264. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-008.js +74 -0
  1265. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-009.js +75 -0
  1266. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-010.js +76 -0
  1267. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-011.js +76 -0
  1268. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-012.js +77 -0
  1269. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-013.js +77 -0
  1270. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-014.js +79 -0
  1271. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-015.js +73 -0
  1272. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-016.js +73 -0
  1273. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-017.js +73 -0
  1274. data/vendor/tracemonkey/tests/ecma_2/Exceptions/expression-019.js +77 -0
  1275. data/vendor/tracemonkey/tests/ecma_2/Exceptions/function-001.js +86 -0
  1276. data/vendor/tracemonkey/tests/ecma_2/Exceptions/global-001.js +78 -0
  1277. data/vendor/tracemonkey/tests/ecma_2/Exceptions/global-002.js +78 -0
  1278. data/vendor/tracemonkey/tests/ecma_2/Exceptions/jstests.list +103 -0
  1279. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-001.js +85 -0
  1280. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-002.js +85 -0
  1281. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-003.js +76 -0
  1282. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-004.js +85 -0
  1283. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-005.js +85 -0
  1284. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-006.js +91 -0
  1285. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-007.js +84 -0
  1286. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-008.js +86 -0
  1287. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-009.js +86 -0
  1288. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-010.js +84 -0
  1289. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-011.js +95 -0
  1290. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-012.js +86 -0
  1291. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-013.js +86 -0
  1292. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-014.js +95 -0
  1293. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-015.js +86 -0
  1294. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-016.js +95 -0
  1295. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-017.js +87 -0
  1296. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-018.js +86 -0
  1297. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-019.js +86 -0
  1298. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-020.js +86 -0
  1299. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-021.js +95 -0
  1300. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-022.js +86 -0
  1301. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-023.js +85 -0
  1302. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-024.js +92 -0
  1303. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-025.js +92 -0
  1304. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-026.js +92 -0
  1305. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-027.js +94 -0
  1306. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-028.js +92 -0
  1307. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-029.js +92 -0
  1308. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-030.js +92 -0
  1309. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-031.js +92 -0
  1310. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-032.js +92 -0
  1311. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-033.js +92 -0
  1312. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-034.js +91 -0
  1313. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-035.js +92 -0
  1314. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-036.js +92 -0
  1315. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-037.js +92 -0
  1316. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-038.js +92 -0
  1317. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-039.js +79 -0
  1318. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-040.js +79 -0
  1319. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-041.js +81 -0
  1320. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-042.js +82 -0
  1321. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-047.js +83 -0
  1322. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-048.js +77 -0
  1323. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-049.js +82 -0
  1324. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-050.js +78 -0
  1325. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-051.js +78 -0
  1326. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-052.js +80 -0
  1327. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-053.js +78 -0
  1328. data/vendor/tracemonkey/tests/ecma_2/Exceptions/lexical-054.js +79 -0
  1329. data/vendor/tracemonkey/tests/ecma_2/Exceptions/number-001.js +86 -0
  1330. data/vendor/tracemonkey/tests/ecma_2/Exceptions/number-002.js +81 -0
  1331. data/vendor/tracemonkey/tests/ecma_2/Exceptions/number-003.js +83 -0
  1332. data/vendor/tracemonkey/tests/ecma_2/Exceptions/shell.js +1 -0
  1333. data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-001.js +80 -0
  1334. data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-002.js +102 -0
  1335. data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-003.js +113 -0
  1336. data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-004.js +85 -0
  1337. data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-005.js +84 -0
  1338. data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-006.js +84 -0
  1339. data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-007.js +75 -0
  1340. data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-008.js +75 -0
  1341. data/vendor/tracemonkey/tests/ecma_2/Exceptions/statement-009.js +74 -0
  1342. data/vendor/tracemonkey/tests/ecma_2/Exceptions/string-001.js +86 -0
  1343. data/vendor/tracemonkey/tests/ecma_2/Exceptions/string-002.js +85 -0
  1344. data/vendor/tracemonkey/tests/ecma_2/Expressions/StrictEquality-001.js +106 -0
  1345. data/vendor/tracemonkey/tests/ecma_2/Expressions/jstests.list +2 -0
  1346. data/vendor/tracemonkey/tests/ecma_2/Expressions/shell.js +1 -0
  1347. data/vendor/tracemonkey/tests/ecma_2/FunctionObjects/apply-001-n.js +65 -0
  1348. data/vendor/tracemonkey/tests/ecma_2/FunctionObjects/call-1.js +75 -0
  1349. data/vendor/tracemonkey/tests/ecma_2/FunctionObjects/jstests.list +3 -0
  1350. data/vendor/tracemonkey/tests/ecma_2/FunctionObjects/shell.js +1 -0
  1351. data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/jstests.list +4 -0
  1352. data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/keywords-001.js +81 -0
  1353. data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/regexp-literals-001.js +77 -0
  1354. data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/regexp-literals-002.js +61 -0
  1355. data/vendor/tracemonkey/tests/ecma_2/LexicalConventions/shell.js +1 -0
  1356. data/vendor/tracemonkey/tests/ecma_2/README +1 -0
  1357. data/vendor/tracemonkey/tests/ecma_2/RegExp/constructor-001.js +99 -0
  1358. data/vendor/tracemonkey/tests/ecma_2/RegExp/exec-001.js +73 -0
  1359. data/vendor/tracemonkey/tests/ecma_2/RegExp/exec-002.js +221 -0
  1360. data/vendor/tracemonkey/tests/ecma_2/RegExp/function-001.js +99 -0
  1361. data/vendor/tracemonkey/tests/ecma_2/RegExp/hex-001.js +102 -0
  1362. data/vendor/tracemonkey/tests/ecma_2/RegExp/jstests.list +15 -0
  1363. data/vendor/tracemonkey/tests/ecma_2/RegExp/multiline-001.js +101 -0
  1364. data/vendor/tracemonkey/tests/ecma_2/RegExp/octal-001.js +111 -0
  1365. data/vendor/tracemonkey/tests/ecma_2/RegExp/octal-002.js +126 -0
  1366. data/vendor/tracemonkey/tests/ecma_2/RegExp/octal-003.js +120 -0
  1367. data/vendor/tracemonkey/tests/ecma_2/RegExp/properties-001.js +124 -0
  1368. data/vendor/tracemonkey/tests/ecma_2/RegExp/properties-002.js +162 -0
  1369. data/vendor/tracemonkey/tests/ecma_2/RegExp/regexp-enumerate-001.js +121 -0
  1370. data/vendor/tracemonkey/tests/ecma_2/RegExp/regress-001.js +78 -0
  1371. data/vendor/tracemonkey/tests/ecma_2/RegExp/shell.js +1 -0
  1372. data/vendor/tracemonkey/tests/ecma_2/RegExp/unicode-001.js +92 -0
  1373. data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-001.js +77 -0
  1374. data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-002.js +104 -0
  1375. data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-003.js +96 -0
  1376. data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-004.js +100 -0
  1377. data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-005.js +106 -0
  1378. data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-006.js +122 -0
  1379. data/vendor/tracemonkey/tests/ecma_2/Statements/dowhile-007.js +130 -0
  1380. data/vendor/tracemonkey/tests/ecma_2/Statements/forin-001.js +330 -0
  1381. data/vendor/tracemonkey/tests/ecma_2/Statements/forin-002.js +109 -0
  1382. data/vendor/tracemonkey/tests/ecma_2/Statements/if-001.js +75 -0
  1383. data/vendor/tracemonkey/tests/ecma_2/Statements/jstests.list +31 -0
  1384. data/vendor/tracemonkey/tests/ecma_2/Statements/label-001.js +75 -0
  1385. data/vendor/tracemonkey/tests/ecma_2/Statements/label-002.js +89 -0
  1386. data/vendor/tracemonkey/tests/ecma_2/Statements/shell.js +1 -0
  1387. data/vendor/tracemonkey/tests/ecma_2/Statements/switch-001.js +98 -0
  1388. data/vendor/tracemonkey/tests/ecma_2/Statements/switch-002.js +96 -0
  1389. data/vendor/tracemonkey/tests/ecma_2/Statements/switch-003.js +90 -0
  1390. data/vendor/tracemonkey/tests/ecma_2/Statements/switch-004.js +127 -0
  1391. data/vendor/tracemonkey/tests/ecma_2/Statements/try-001.js +116 -0
  1392. data/vendor/tracemonkey/tests/ecma_2/Statements/try-003.js +115 -0
  1393. data/vendor/tracemonkey/tests/ecma_2/Statements/try-004.js +87 -0
  1394. data/vendor/tracemonkey/tests/ecma_2/Statements/try-005.js +90 -0
  1395. data/vendor/tracemonkey/tests/ecma_2/Statements/try-006.js +120 -0
  1396. data/vendor/tracemonkey/tests/ecma_2/Statements/try-007.js +125 -0
  1397. data/vendor/tracemonkey/tests/ecma_2/Statements/try-008.js +92 -0
  1398. data/vendor/tracemonkey/tests/ecma_2/Statements/try-009.js +99 -0
  1399. data/vendor/tracemonkey/tests/ecma_2/Statements/try-010.js +106 -0
  1400. data/vendor/tracemonkey/tests/ecma_2/Statements/try-012.js +128 -0
  1401. data/vendor/tracemonkey/tests/ecma_2/Statements/while-001.js +75 -0
  1402. data/vendor/tracemonkey/tests/ecma_2/Statements/while-002.js +119 -0
  1403. data/vendor/tracemonkey/tests/ecma_2/Statements/while-003.js +120 -0
  1404. data/vendor/tracemonkey/tests/ecma_2/Statements/while-004.js +250 -0
  1405. data/vendor/tracemonkey/tests/ecma_2/String/jstests.list +9 -0
  1406. data/vendor/tracemonkey/tests/ecma_2/String/match-001.js +139 -0
  1407. data/vendor/tracemonkey/tests/ecma_2/String/match-002.js +207 -0
  1408. data/vendor/tracemonkey/tests/ecma_2/String/match-003.js +165 -0
  1409. data/vendor/tracemonkey/tests/ecma_2/String/match-004.js +206 -0
  1410. data/vendor/tracemonkey/tests/ecma_2/String/replace-001.js +99 -0
  1411. data/vendor/tracemonkey/tests/ecma_2/String/shell.js +1 -0
  1412. data/vendor/tracemonkey/tests/ecma_2/String/split-001.js +145 -0
  1413. data/vendor/tracemonkey/tests/ecma_2/String/split-002.js +303 -0
  1414. data/vendor/tracemonkey/tests/ecma_2/String/split-003.js +156 -0
  1415. data/vendor/tracemonkey/tests/ecma_2/browser.js +37 -0
  1416. data/vendor/tracemonkey/tests/ecma_2/extensions/constructor-001.js +74 -0
  1417. data/vendor/tracemonkey/tests/ecma_2/extensions/function-001.js +74 -0
  1418. data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-001.js +144 -0
  1419. data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-002.js +160 -0
  1420. data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-003-n.js +121 -0
  1421. data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-004-n.js +121 -0
  1422. data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-005-n.js +122 -0
  1423. data/vendor/tracemonkey/tests/ecma_2/extensions/instanceof-006.js +119 -0
  1424. data/vendor/tracemonkey/tests/ecma_2/extensions/jstests.list +9 -0
  1425. data/vendor/tracemonkey/tests/ecma_2/extensions/shell.js +1 -0
  1426. data/vendor/tracemonkey/tests/ecma_2/instanceof/instanceof-001.js +67 -0
  1427. data/vendor/tracemonkey/tests/ecma_2/instanceof/instanceof-002.js +84 -0
  1428. data/vendor/tracemonkey/tests/ecma_2/instanceof/instanceof-003.js +98 -0
  1429. data/vendor/tracemonkey/tests/ecma_2/instanceof/jstests.list +5 -0
  1430. data/vendor/tracemonkey/tests/ecma_2/instanceof/regress-7635.js +88 -0
  1431. data/vendor/tracemonkey/tests/ecma_2/instanceof/shell.js +1 -0
  1432. data/vendor/tracemonkey/tests/ecma_2/jsref.js +591 -0
  1433. data/vendor/tracemonkey/tests/ecma_2/jstests.list +9 -0
  1434. data/vendor/tracemonkey/tests/ecma_2/shell.js +51 -0
  1435. data/vendor/tracemonkey/tests/ecma_2/template.js +57 -0
  1436. data/vendor/tracemonkey/tests/ecma_3/Array/15.4.4.11-01.js +61 -0
  1437. data/vendor/tracemonkey/tests/ecma_3/Array/15.4.4.3-1.js +88 -0
  1438. data/vendor/tracemonkey/tests/ecma_3/Array/15.4.4.4-001.js +153 -0
  1439. data/vendor/tracemonkey/tests/ecma_3/Array/15.4.5.1-01.js +93 -0
  1440. data/vendor/tracemonkey/tests/ecma_3/Array/15.5.4.8-01.js +76 -0
  1441. data/vendor/tracemonkey/tests/ecma_3/Array/jstests.list +16 -0
  1442. data/vendor/tracemonkey/tests/ecma_3/Array/regress-101488.js +172 -0
  1443. data/vendor/tracemonkey/tests/ecma_3/Array/regress-130451.js +219 -0
  1444. data/vendor/tracemonkey/tests/ecma_3/Array/regress-322135-01.js +73 -0
  1445. data/vendor/tracemonkey/tests/ecma_3/Array/regress-322135-02.js +65 -0
  1446. data/vendor/tracemonkey/tests/ecma_3/Array/regress-322135-03.js +73 -0
  1447. data/vendor/tracemonkey/tests/ecma_3/Array/regress-322135-04.js +71 -0
  1448. data/vendor/tracemonkey/tests/ecma_3/Array/regress-387501.js +94 -0
  1449. data/vendor/tracemonkey/tests/ecma_3/Array/regress-421325.js +67 -0
  1450. data/vendor/tracemonkey/tests/ecma_3/Array/regress-430717.js +65 -0
  1451. data/vendor/tracemonkey/tests/ecma_3/Array/regress-488989.js +68 -0
  1452. data/vendor/tracemonkey/tests/ecma_3/Array/shell.js +1 -0
  1453. data/vendor/tracemonkey/tests/ecma_3/Date/15.9.1.2-01.js +62 -0
  1454. data/vendor/tracemonkey/tests/ecma_3/Date/15.9.3.2-1.js +91 -0
  1455. data/vendor/tracemonkey/tests/ecma_3/Date/15.9.4.3.js +233 -0
  1456. data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.3.js +152 -0
  1457. data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.4.js +185 -0
  1458. data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.5-02.js +88 -0
  1459. data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.5.js +144 -0
  1460. data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.6.js +153 -0
  1461. data/vendor/tracemonkey/tests/ecma_3/Date/15.9.5.7.js +142 -0
  1462. data/vendor/tracemonkey/tests/ecma_3/Date/browser.js +37 -0
  1463. data/vendor/tracemonkey/tests/ecma_3/Date/jstests.list +11 -0
  1464. data/vendor/tracemonkey/tests/ecma_3/Date/regress-452786.js +66 -0
  1465. data/vendor/tracemonkey/tests/ecma_3/Date/shell.js +564 -0
  1466. data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.1.1.js +137 -0
  1467. data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.4.4-1.js +174 -0
  1468. data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.7.6-001.js +130 -0
  1469. data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.7.6-002.js +132 -0
  1470. data/vendor/tracemonkey/tests/ecma_3/Exceptions/15.11.7.6-003.js +132 -0
  1471. data/vendor/tracemonkey/tests/ecma_3/Exceptions/binding-001.js +128 -0
  1472. data/vendor/tracemonkey/tests/ecma_3/Exceptions/jstests.list +11 -0
  1473. data/vendor/tracemonkey/tests/ecma_3/Exceptions/regress-181654.js +155 -0
  1474. data/vendor/tracemonkey/tests/ecma_3/Exceptions/regress-181914.js +194 -0
  1475. data/vendor/tracemonkey/tests/ecma_3/Exceptions/regress-58946.js +71 -0
  1476. data/vendor/tracemonkey/tests/ecma_3/Exceptions/regress-95101.js +118 -0
  1477. data/vendor/tracemonkey/tests/ecma_3/Exceptions/shell.js +1 -0
  1478. data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.1.3-1.js +201 -0
  1479. data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.1.3-2.js +70 -0
  1480. data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.1.3.js +73 -0
  1481. data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.1.4-1.js +85 -0
  1482. data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/10.6.1-01.js +136 -0
  1483. data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/jstests.list +8 -0
  1484. data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/regress-23346.js +71 -0
  1485. data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/regress-448595-01.js +91 -0
  1486. data/vendor/tracemonkey/tests/ecma_3/ExecutionContexts/shell.js +1 -0
  1487. data/vendor/tracemonkey/tests/ecma_3/Expressions/11.10-01.js +76 -0
  1488. data/vendor/tracemonkey/tests/ecma_3/Expressions/11.10-02.js +76 -0
  1489. data/vendor/tracemonkey/tests/ecma_3/Expressions/11.10-03.js +76 -0
  1490. data/vendor/tracemonkey/tests/ecma_3/Expressions/11.6.1-1.js +176 -0
  1491. data/vendor/tracemonkey/tests/ecma_3/Expressions/11.7.1-01.js +76 -0
  1492. data/vendor/tracemonkey/tests/ecma_3/Expressions/11.7.2-01.js +76 -0
  1493. data/vendor/tracemonkey/tests/ecma_3/Expressions/11.7.3-01.js +76 -0
  1494. data/vendor/tracemonkey/tests/ecma_3/Expressions/11.9.6-1.js +213 -0
  1495. data/vendor/tracemonkey/tests/ecma_3/Expressions/jstests.list +9 -0
  1496. data/vendor/tracemonkey/tests/ecma_3/Expressions/shell.js +1 -0
  1497. data/vendor/tracemonkey/tests/ecma_3/FunExpr/fe-001-n.js +58 -0
  1498. data/vendor/tracemonkey/tests/ecma_3/FunExpr/fe-001.js +57 -0
  1499. data/vendor/tracemonkey/tests/ecma_3/FunExpr/fe-002.js +61 -0
  1500. data/vendor/tracemonkey/tests/ecma_3/FunExpr/jstests.list +5 -0
  1501. data/vendor/tracemonkey/tests/ecma_3/FunExpr/regress-528082.js +21 -0
  1502. data/vendor/tracemonkey/tests/ecma_3/FunExpr/shell.js +1 -0
  1503. data/vendor/tracemonkey/tests/ecma_3/Function/15.3.4.3-1.js +210 -0
  1504. data/vendor/tracemonkey/tests/ecma_3/Function/15.3.4.4-1.js +185 -0
  1505. data/vendor/tracemonkey/tests/ecma_3/Function/arguments-001.js +169 -0
  1506. data/vendor/tracemonkey/tests/ecma_3/Function/arguments-002.js +73 -0
  1507. data/vendor/tracemonkey/tests/ecma_3/Function/call-001.js +153 -0
  1508. data/vendor/tracemonkey/tests/ecma_3/Function/jstests.list +17 -0
  1509. data/vendor/tracemonkey/tests/ecma_3/Function/regress-131964.js +196 -0
  1510. data/vendor/tracemonkey/tests/ecma_3/Function/regress-137181.js +113 -0
  1511. data/vendor/tracemonkey/tests/ecma_3/Function/regress-193555.js +136 -0
  1512. data/vendor/tracemonkey/tests/ecma_3/Function/regress-313570.js +63 -0
  1513. data/vendor/tracemonkey/tests/ecma_3/Function/regress-49286.js +137 -0
  1514. data/vendor/tracemonkey/tests/ecma_3/Function/regress-58274.js +226 -0
  1515. data/vendor/tracemonkey/tests/ecma_3/Function/regress-85880.js +173 -0
  1516. data/vendor/tracemonkey/tests/ecma_3/Function/regress-94506.js +163 -0
  1517. data/vendor/tracemonkey/tests/ecma_3/Function/regress-97921.js +152 -0
  1518. data/vendor/tracemonkey/tests/ecma_3/Function/scope-001.js +265 -0
  1519. data/vendor/tracemonkey/tests/ecma_3/Function/scope-002.js +245 -0
  1520. data/vendor/tracemonkey/tests/ecma_3/Function/shell.js +1 -0
  1521. data/vendor/tracemonkey/tests/ecma_3/LexicalConventions/7.4-01.js +73 -0
  1522. data/vendor/tracemonkey/tests/ecma_3/LexicalConventions/7.9.1.js +157 -0
  1523. data/vendor/tracemonkey/tests/ecma_3/LexicalConventions/jstests.list +3 -0
  1524. data/vendor/tracemonkey/tests/ecma_3/LexicalConventions/shell.js +1 -0
  1525. data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.2-01.js +77 -0
  1526. data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.3-01.js +69 -0
  1527. data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.3-02.js +53 -0
  1528. data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.5-1.js +145 -0
  1529. data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.5-2.js +62 -0
  1530. data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.6-1.js +149 -0
  1531. data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.7-1.js +154 -0
  1532. data/vendor/tracemonkey/tests/ecma_3/Number/15.7.4.7-2.js +72 -0
  1533. data/vendor/tracemonkey/tests/ecma_3/Number/jstests.list +10 -0
  1534. data/vendor/tracemonkey/tests/ecma_3/Number/regress-442242-01.js +62 -0
  1535. data/vendor/tracemonkey/tests/ecma_3/Number/shell.js +1 -0
  1536. data/vendor/tracemonkey/tests/ecma_3/NumberFormatting/jstests.list +2 -0
  1537. data/vendor/tracemonkey/tests/ecma_3/NumberFormatting/shell.js +1 -0
  1538. data/vendor/tracemonkey/tests/ecma_3/NumberFormatting/tostring-001.js +60 -0
  1539. data/vendor/tracemonkey/tests/ecma_3/Object/8.6.1-01.js +113 -0
  1540. data/vendor/tracemonkey/tests/ecma_3/Object/8.6.2.6-001.js +113 -0
  1541. data/vendor/tracemonkey/tests/ecma_3/Object/8.6.2.6-002.js +79 -0
  1542. data/vendor/tracemonkey/tests/ecma_3/Object/browser.js +7 -0
  1543. data/vendor/tracemonkey/tests/ecma_3/Object/class-001.js +156 -0
  1544. data/vendor/tracemonkey/tests/ecma_3/Object/class-002.js +146 -0
  1545. data/vendor/tracemonkey/tests/ecma_3/Object/class-003.js +139 -0
  1546. data/vendor/tracemonkey/tests/ecma_3/Object/class-004.js +139 -0
  1547. data/vendor/tracemonkey/tests/ecma_3/Object/class-005.js +124 -0
  1548. data/vendor/tracemonkey/tests/ecma_3/Object/jstests.list +14 -0
  1549. data/vendor/tracemonkey/tests/ecma_3/Object/regress-361274.js +66 -0
  1550. data/vendor/tracemonkey/tests/ecma_3/Object/regress-385393-07.js +67 -0
  1551. data/vendor/tracemonkey/tests/ecma_3/Object/regress-459405.js +71 -0
  1552. data/vendor/tracemonkey/tests/ecma_3/Object/regress-72773.js +97 -0
  1553. data/vendor/tracemonkey/tests/ecma_3/Object/regress-79129-001.js +80 -0
  1554. data/vendor/tracemonkey/tests/ecma_3/Object/shell.js +105 -0
  1555. data/vendor/tracemonkey/tests/ecma_3/Operators/11.13.1-001.js +152 -0
  1556. data/vendor/tracemonkey/tests/ecma_3/Operators/11.13.1-002.js +57 -0
  1557. data/vendor/tracemonkey/tests/ecma_3/Operators/11.4.1-001.js +120 -0
  1558. data/vendor/tracemonkey/tests/ecma_3/Operators/11.4.1-002.js +72 -0
  1559. data/vendor/tracemonkey/tests/ecma_3/Operators/jstests.list +6 -0
  1560. data/vendor/tracemonkey/tests/ecma_3/Operators/order-01.js +108 -0
  1561. data/vendor/tracemonkey/tests/ecma_3/Operators/shell.js +1 -0
  1562. data/vendor/tracemonkey/tests/ecma_3/README +1 -0
  1563. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.2-1.js +181 -0
  1564. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.2.12.js +63 -0
  1565. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.3.1-1.js +136 -0
  1566. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.3.1-2.js +144 -0
  1567. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-1.js +127 -0
  1568. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-2.js +133 -0
  1569. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-3.js +139 -0
  1570. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-4.js +146 -0
  1571. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-5-n.js +139 -0
  1572. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.4.1-6.js +95 -0
  1573. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.6.2-1.js +140 -0
  1574. data/vendor/tracemonkey/tests/ecma_3/RegExp/15.10.6.2-2.js +367 -0
  1575. data/vendor/tracemonkey/tests/ecma_3/RegExp/jstests.list +68 -0
  1576. data/vendor/tracemonkey/tests/ecma_3/RegExp/octal-001.js +136 -0
  1577. data/vendor/tracemonkey/tests/ecma_3/RegExp/octal-002.js +218 -0
  1578. data/vendor/tracemonkey/tests/ecma_3/RegExp/perlstress-001.js +3230 -0
  1579. data/vendor/tracemonkey/tests/ecma_3/RegExp/perlstress-002.js +1842 -0
  1580. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-100199.js +307 -0
  1581. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-105972.js +157 -0
  1582. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-119909.js +92 -0
  1583. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-122076.js +110 -0
  1584. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-123437.js +112 -0
  1585. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-165353.js +122 -0
  1586. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-169497.js +105 -0
  1587. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-169534.js +95 -0
  1588. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-187133.js +142 -0
  1589. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-188206.js +219 -0
  1590. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-191479.js +198 -0
  1591. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-202564.js +101 -0
  1592. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-209067.js +1106 -0
  1593. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-209919.js +174 -0
  1594. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-216591.js +117 -0
  1595. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-220367-001.js +104 -0
  1596. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-223273.js +279 -0
  1597. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-223535.js +133 -0
  1598. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-224676.js +226 -0
  1599. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-225289.js +176 -0
  1600. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-225343.js +125 -0
  1601. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-24712.js +59 -0
  1602. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-285219.js +51 -0
  1603. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-28686.js +57 -0
  1604. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-289669.js +88 -0
  1605. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-307456.js +54 -0
  1606. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-309840.js +58 -0
  1607. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-311414.js +101 -0
  1608. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-312351.js +50 -0
  1609. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-31316.js +96 -0
  1610. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-330684.js +53 -0
  1611. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-334158.js +58 -0
  1612. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-346090.js +63 -0
  1613. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-367888.js +62 -0
  1614. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375642.js +61 -0
  1615. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375711.js +118 -0
  1616. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375715-01-n.js +63 -0
  1617. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375715-02.js +60 -0
  1618. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375715-03.js +60 -0
  1619. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-375715-04.js +68 -0
  1620. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-436700.js +67 -0
  1621. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-465862.js +117 -0
  1622. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-57572.js +150 -0
  1623. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-57631.js +152 -0
  1624. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-67773.js +211 -0
  1625. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-72964.js +121 -0
  1626. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-76683.js +114 -0
  1627. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-78156.js +123 -0
  1628. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-85721.js +276 -0
  1629. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-87231.js +145 -0
  1630. data/vendor/tracemonkey/tests/ecma_3/RegExp/regress-98306.js +99 -0
  1631. data/vendor/tracemonkey/tests/ecma_3/RegExp/shell.js +266 -0
  1632. data/vendor/tracemonkey/tests/ecma_3/Regress/jstests.list +7 -0
  1633. data/vendor/tracemonkey/tests/ecma_3/Regress/regress-385393-04.js +66 -0
  1634. data/vendor/tracemonkey/tests/ecma_3/Regress/regress-419152.js +90 -0
  1635. data/vendor/tracemonkey/tests/ecma_3/Regress/regress-420087.js +64 -0
  1636. data/vendor/tracemonkey/tests/ecma_3/Regress/regress-420610.js +50 -0
  1637. data/vendor/tracemonkey/tests/ecma_3/Regress/regress-441477-01.js +73 -0
  1638. data/vendor/tracemonkey/tests/ecma_3/Regress/regress-469937.js +60 -0
  1639. data/vendor/tracemonkey/tests/ecma_3/Regress/shell.js +1 -0
  1640. data/vendor/tracemonkey/tests/ecma_3/Statements/12.10-01.js +68 -0
  1641. data/vendor/tracemonkey/tests/ecma_3/Statements/12.6.3.js +80 -0
  1642. data/vendor/tracemonkey/tests/ecma_3/Statements/jstests.list +17 -0
  1643. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-121744.js +217 -0
  1644. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-131348.js +184 -0
  1645. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-157509.js +111 -0
  1646. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-194364.js +152 -0
  1647. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-226517.js +112 -0
  1648. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-302439.js +1368 -0
  1649. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-324650.js +5461 -0
  1650. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-444979.js +77 -0
  1651. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-74474-001.js +139 -0
  1652. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-74474-002.js +9097 -0
  1653. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-74474-003.js +9099 -0
  1654. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-83532-001.js +71 -0
  1655. data/vendor/tracemonkey/tests/ecma_3/Statements/regress-83532-002.js +74 -0
  1656. data/vendor/tracemonkey/tests/ecma_3/Statements/shell.js +1 -0
  1657. data/vendor/tracemonkey/tests/ecma_3/Statements/switch-001.js +143 -0
  1658. data/vendor/tracemonkey/tests/ecma_3/String/15.5.4.11.js +532 -0
  1659. data/vendor/tracemonkey/tests/ecma_3/String/15.5.4.14.js +50 -0
  1660. data/vendor/tracemonkey/tests/ecma_3/String/jstests.list +9 -0
  1661. data/vendor/tracemonkey/tests/ecma_3/String/regress-104375.js +116 -0
  1662. data/vendor/tracemonkey/tests/ecma_3/String/regress-189898.js +157 -0
  1663. data/vendor/tracemonkey/tests/ecma_3/String/regress-304376.js +68 -0
  1664. data/vendor/tracemonkey/tests/ecma_3/String/regress-313567.js +56 -0
  1665. data/vendor/tracemonkey/tests/ecma_3/String/regress-392378.js +77 -0
  1666. data/vendor/tracemonkey/tests/ecma_3/String/regress-83293.js +216 -0
  1667. data/vendor/tracemonkey/tests/ecma_3/String/shell.js +1 -0
  1668. data/vendor/tracemonkey/tests/ecma_3/Unicode/jstests.list +10 -0
  1669. data/vendor/tracemonkey/tests/ecma_3/Unicode/regress-352044-01.js +72 -0
  1670. data/vendor/tracemonkey/tests/ecma_3/Unicode/regress-352044-02-n.js +72 -0
  1671. data/vendor/tracemonkey/tests/ecma_3/Unicode/shell.js +1 -0
  1672. data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-001-n.js +62 -0
  1673. data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-001.js +56 -0
  1674. data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-002-n.js +55 -0
  1675. data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-002.js +60 -0
  1676. data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-003.js +71 -0
  1677. data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-004.js +65 -0
  1678. data/vendor/tracemonkey/tests/ecma_3/Unicode/uc-005.js +276 -0
  1679. data/vendor/tracemonkey/tests/ecma_3/browser.js +36 -0
  1680. data/vendor/tracemonkey/tests/ecma_3/extensions/10.1.3-2.js +162 -0
  1681. data/vendor/tracemonkey/tests/ecma_3/extensions/7.9.1.js +83 -0
  1682. data/vendor/tracemonkey/tests/ecma_3/extensions/jstests.list +15 -0
  1683. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-103087.js +178 -0
  1684. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-188206-01.js +108 -0
  1685. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-188206-02.js +158 -0
  1686. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-220367-002.js +112 -0
  1687. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-228087.js +352 -0
  1688. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-274152.js +83 -0
  1689. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-320854.js +53 -0
  1690. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-327170.js +58 -0
  1691. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-368516.js +78 -0
  1692. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-385393-03.js +63 -0
  1693. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-429248.js +67 -0
  1694. data/vendor/tracemonkey/tests/ecma_3/extensions/regress-430740.js +72 -0
  1695. data/vendor/tracemonkey/tests/ecma_3/extensions/shell.js +266 -0
  1696. data/vendor/tracemonkey/tests/ecma_3/jstests.list +18 -0
  1697. data/vendor/tracemonkey/tests/ecma_3/shell.js +40 -0
  1698. data/vendor/tracemonkey/tests/ecma_3/template.js +59 -0
  1699. data/vendor/tracemonkey/tests/ecma_3_1/Object/jstests.list +2 -0
  1700. data/vendor/tracemonkey/tests/ecma_3_1/Object/regress-444787.js +155 -0
  1701. data/vendor/tracemonkey/tests/ecma_3_1/Object/shell.js +1 -0
  1702. data/vendor/tracemonkey/tests/ecma_3_1/README +1 -0
  1703. data/vendor/tracemonkey/tests/ecma_3_1/RegExp/jstests.list +2 -0
  1704. data/vendor/tracemonkey/tests/ecma_3_1/RegExp/regress-305064.js +92 -0
  1705. data/vendor/tracemonkey/tests/ecma_3_1/RegExp/shell.js +1 -0
  1706. data/vendor/tracemonkey/tests/ecma_3_1/browser.js +36 -0
  1707. data/vendor/tracemonkey/tests/ecma_3_1/extensions/jstests.list +1 -0
  1708. data/vendor/tracemonkey/tests/ecma_3_1/extensions/shell.js +1 -0
  1709. data/vendor/tracemonkey/tests/ecma_3_1/jstests.list +3 -0
  1710. data/vendor/tracemonkey/tests/ecma_3_1/shell.js +47 -0
  1711. data/vendor/tracemonkey/tests/ecma_3_1/template.js +59 -0
  1712. data/vendor/tracemonkey/tests/ecma_5/Date/15.9.4.2.js +158 -0
  1713. data/vendor/tracemonkey/tests/ecma_5/Date/jstests.list +2 -0
  1714. data/vendor/tracemonkey/tests/ecma_5/Date/shell.js +1 -0
  1715. data/vendor/tracemonkey/tests/ecma_5/Object/15.2.3.14-01.js +91 -0
  1716. data/vendor/tracemonkey/tests/ecma_5/Object/15.2.3.3-01.js +341 -0
  1717. data/vendor/tracemonkey/tests/ecma_5/Object/jstests.list +3 -0
  1718. data/vendor/tracemonkey/tests/ecma_5/Object/shell.js +1 -0
  1719. data/vendor/tracemonkey/tests/ecma_5/README +1 -0
  1720. data/vendor/tracemonkey/tests/ecma_5/browser.js +36 -0
  1721. data/vendor/tracemonkey/tests/ecma_5/jstests.list +2 -0
  1722. data/vendor/tracemonkey/tests/ecma_5/shell.js +40 -0
  1723. data/vendor/tracemonkey/tests/ecma_5/template.js +59 -0
  1724. data/vendor/tracemonkey/tests/get-universe.sh +52 -0
  1725. data/vendor/tracemonkey/tests/importList.html +22 -0
  1726. data/vendor/tracemonkey/tests/importList.js +94 -0
  1727. data/vendor/tracemonkey/tests/js-test-driver-begin.js +1 -0
  1728. data/vendor/tracemonkey/tests/js-test-driver-end.js +3 -0
  1729. data/vendor/tracemonkey/tests/js-test-driver-quirks.html +23 -0
  1730. data/vendor/tracemonkey/tests/js-test-driver-standards.html +23 -0
  1731. data/vendor/tracemonkey/tests/js1_1/README +1 -0
  1732. data/vendor/tracemonkey/tests/js1_1/browser.js +37 -0
  1733. data/vendor/tracemonkey/tests/js1_1/jsref.js +167 -0
  1734. data/vendor/tracemonkey/tests/js1_1/jstests.list +1 -0
  1735. data/vendor/tracemonkey/tests/js1_1/regress/function-001.js +79 -0
  1736. data/vendor/tracemonkey/tests/js1_1/regress/jstests.list +2 -0
  1737. data/vendor/tracemonkey/tests/js1_1/regress/shell.js +1 -0
  1738. data/vendor/tracemonkey/tests/js1_1/shell.js +39 -0
  1739. data/vendor/tracemonkey/tests/js1_2/Array/array_split_1.js +86 -0
  1740. data/vendor/tracemonkey/tests/js1_2/Array/general1.js +78 -0
  1741. data/vendor/tracemonkey/tests/js1_2/Array/general2.js +93 -0
  1742. data/vendor/tracemonkey/tests/js1_2/Array/jstests.list +9 -0
  1743. data/vendor/tracemonkey/tests/js1_2/Array/shell.js +1 -0
  1744. data/vendor/tracemonkey/tests/js1_2/Array/slice.js +123 -0
  1745. data/vendor/tracemonkey/tests/js1_2/Array/splice1.js +153 -0
  1746. data/vendor/tracemonkey/tests/js1_2/Array/splice2.js +150 -0
  1747. data/vendor/tracemonkey/tests/js1_2/Array/tostring_1.js +126 -0
  1748. data/vendor/tracemonkey/tests/js1_2/Array/tostring_2.js +82 -0
  1749. data/vendor/tracemonkey/tests/js1_2/Objects/jstests.list +2 -0
  1750. data/vendor/tracemonkey/tests/js1_2/Objects/shell.js +1 -0
  1751. data/vendor/tracemonkey/tests/js1_2/Objects/toString-001.js +120 -0
  1752. data/vendor/tracemonkey/tests/js1_2/README +1 -0
  1753. data/vendor/tracemonkey/tests/js1_2/String/charCodeAt.js +72 -0
  1754. data/vendor/tracemonkey/tests/js1_2/String/concat.js +83 -0
  1755. data/vendor/tracemonkey/tests/js1_2/String/jstests.list +5 -0
  1756. data/vendor/tracemonkey/tests/js1_2/String/match.js +63 -0
  1757. data/vendor/tracemonkey/tests/js1_2/String/shell.js +1 -0
  1758. data/vendor/tracemonkey/tests/js1_2/String/slice.js +124 -0
  1759. data/vendor/tracemonkey/tests/js1_2/browser.js +37 -0
  1760. data/vendor/tracemonkey/tests/js1_2/function/Function_object.js +87 -0
  1761. data/vendor/tracemonkey/tests/js1_2/function/Number.js +85 -0
  1762. data/vendor/tracemonkey/tests/js1_2/function/String.js +73 -0
  1763. data/vendor/tracemonkey/tests/js1_2/function/definition-1.js +77 -0
  1764. data/vendor/tracemonkey/tests/js1_2/function/function-001-n.js +77 -0
  1765. data/vendor/tracemonkey/tests/js1_2/function/jstests.list +13 -0
  1766. data/vendor/tracemonkey/tests/js1_2/function/length.js +96 -0
  1767. data/vendor/tracemonkey/tests/js1_2/function/nesting-1.js +65 -0
  1768. data/vendor/tracemonkey/tests/js1_2/function/nesting.js +84 -0
  1769. data/vendor/tracemonkey/tests/js1_2/function/regexparg-1.js +105 -0
  1770. data/vendor/tracemonkey/tests/js1_2/function/regexparg-2-n.js +73 -0
  1771. data/vendor/tracemonkey/tests/js1_2/function/shell.js +1 -0
  1772. data/vendor/tracemonkey/tests/js1_2/function/tostring-1.js +145 -0
  1773. data/vendor/tracemonkey/tests/js1_2/function/tostring-2.js +188 -0
  1774. data/vendor/tracemonkey/tests/js1_2/jsref.js +228 -0
  1775. data/vendor/tracemonkey/tests/js1_2/jstests.list +9 -0
  1776. data/vendor/tracemonkey/tests/js1_2/operator/equality.js +72 -0
  1777. data/vendor/tracemonkey/tests/js1_2/operator/jstests.list +3 -0
  1778. data/vendor/tracemonkey/tests/js1_2/operator/shell.js +1 -0
  1779. data/vendor/tracemonkey/tests/js1_2/operator/strictEquality.js +93 -0
  1780. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_dollar_number.js +111 -0
  1781. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_input.js +104 -0
  1782. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_input_as_array.js +104 -0
  1783. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastIndex.js +85 -0
  1784. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastMatch.js +88 -0
  1785. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastMatch_as_array.js +88 -0
  1786. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastParen.js +102 -0
  1787. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_lastParen_as_array.js +102 -0
  1788. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_leftContext.js +92 -0
  1789. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_leftContext_as_array.js +92 -0
  1790. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_multiline.js +131 -0
  1791. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_multiline_as_array.js +132 -0
  1792. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_object.js +90 -0
  1793. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_rightContext.js +92 -0
  1794. data/vendor/tracemonkey/tests/js1_2/regexp/RegExp_rightContext_as_array.js +92 -0
  1795. data/vendor/tracemonkey/tests/js1_2/regexp/alphanumeric.js +131 -0
  1796. data/vendor/tracemonkey/tests/js1_2/regexp/asterisk.js +107 -0
  1797. data/vendor/tracemonkey/tests/js1_2/regexp/backslash.js +81 -0
  1798. data/vendor/tracemonkey/tests/js1_2/regexp/backspace.js +81 -0
  1799. data/vendor/tracemonkey/tests/js1_2/regexp/beginLine.js +83 -0
  1800. data/vendor/tracemonkey/tests/js1_2/regexp/character_class.js +110 -0
  1801. data/vendor/tracemonkey/tests/js1_2/regexp/compile.js +96 -0
  1802. data/vendor/tracemonkey/tests/js1_2/regexp/control_characters.js +74 -0
  1803. data/vendor/tracemonkey/tests/js1_2/regexp/digit.js +120 -0
  1804. data/vendor/tracemonkey/tests/js1_2/regexp/dot.js +98 -0
  1805. data/vendor/tracemonkey/tests/js1_2/regexp/endLine.js +83 -0
  1806. data/vendor/tracemonkey/tests/js1_2/regexp/everything.js +83 -0
  1807. data/vendor/tracemonkey/tests/js1_2/regexp/exec.js +79 -0
  1808. data/vendor/tracemonkey/tests/js1_2/regexp/flags.js +87 -0
  1809. data/vendor/tracemonkey/tests/js1_2/regexp/global.js +97 -0
  1810. data/vendor/tracemonkey/tests/js1_2/regexp/hexadecimal.js +109 -0
  1811. data/vendor/tracemonkey/tests/js1_2/regexp/ignoreCase.js +114 -0
  1812. data/vendor/tracemonkey/tests/js1_2/regexp/interval.js +117 -0
  1813. data/vendor/tracemonkey/tests/js1_2/regexp/jstests.list +51 -0
  1814. data/vendor/tracemonkey/tests/js1_2/regexp/octal.js +109 -0
  1815. data/vendor/tracemonkey/tests/js1_2/regexp/parentheses.js +109 -0
  1816. data/vendor/tracemonkey/tests/js1_2/regexp/plus.js +89 -0
  1817. data/vendor/tracemonkey/tests/js1_2/regexp/question_mark.js +101 -0
  1818. data/vendor/tracemonkey/tests/js1_2/regexp/regress-6359.js +86 -0
  1819. data/vendor/tracemonkey/tests/js1_2/regexp/regress-9141.js +105 -0
  1820. data/vendor/tracemonkey/tests/js1_2/regexp/shell.js +1 -0
  1821. data/vendor/tracemonkey/tests/js1_2/regexp/simple_form.js +92 -0
  1822. data/vendor/tracemonkey/tests/js1_2/regexp/source.js +90 -0
  1823. data/vendor/tracemonkey/tests/js1_2/regexp/special_characters.js +160 -0
  1824. data/vendor/tracemonkey/tests/js1_2/regexp/string_replace.js +83 -0
  1825. data/vendor/tracemonkey/tests/js1_2/regexp/string_search.js +89 -0
  1826. data/vendor/tracemonkey/tests/js1_2/regexp/string_split.js +94 -0
  1827. data/vendor/tracemonkey/tests/js1_2/regexp/test.js +89 -0
  1828. data/vendor/tracemonkey/tests/js1_2/regexp/toString.js +81 -0
  1829. data/vendor/tracemonkey/tests/js1_2/regexp/vertical_bar.js +98 -0
  1830. data/vendor/tracemonkey/tests/js1_2/regexp/whitespace.js +125 -0
  1831. data/vendor/tracemonkey/tests/js1_2/regexp/word_boundary.js +121 -0
  1832. data/vendor/tracemonkey/tests/js1_2/regress/jstests.list +3 -0
  1833. data/vendor/tracemonkey/tests/js1_2/regress/regress-144834.js +84 -0
  1834. data/vendor/tracemonkey/tests/js1_2/regress/regress-7703.js +102 -0
  1835. data/vendor/tracemonkey/tests/js1_2/regress/shell.js +1 -0
  1836. data/vendor/tracemonkey/tests/js1_2/shell.js +40 -0
  1837. data/vendor/tracemonkey/tests/js1_2/statements/break.js +164 -0
  1838. data/vendor/tracemonkey/tests/js1_2/statements/continue.js +177 -0
  1839. data/vendor/tracemonkey/tests/js1_2/statements/do_while.js +69 -0
  1840. data/vendor/tracemonkey/tests/js1_2/statements/jstests.list +6 -0
  1841. data/vendor/tracemonkey/tests/js1_2/statements/shell.js +1 -0
  1842. data/vendor/tracemonkey/tests/js1_2/statements/switch.js +130 -0
  1843. data/vendor/tracemonkey/tests/js1_2/statements/switch2.js +192 -0
  1844. data/vendor/tracemonkey/tests/js1_2/version120/boolean-001.js +77 -0
  1845. data/vendor/tracemonkey/tests/js1_2/version120/browser.js +37 -0
  1846. data/vendor/tracemonkey/tests/js1_2/version120/jstests.list +3 -0
  1847. data/vendor/tracemonkey/tests/js1_2/version120/regress-99663.js +165 -0
  1848. data/vendor/tracemonkey/tests/js1_2/version120/shell.js +42 -0
  1849. data/vendor/tracemonkey/tests/js1_3/Boolean/boolean-001.js +77 -0
  1850. data/vendor/tracemonkey/tests/js1_3/Boolean/jstests.list +2 -0
  1851. data/vendor/tracemonkey/tests/js1_3/Boolean/shell.js +1 -0
  1852. data/vendor/tracemonkey/tests/js1_3/README +1 -0
  1853. data/vendor/tracemonkey/tests/js1_3/Script/delete-001.js +83 -0
  1854. data/vendor/tracemonkey/tests/js1_3/Script/function-001-n.js +78 -0
  1855. data/vendor/tracemonkey/tests/js1_3/Script/function-002.js +79 -0
  1856. data/vendor/tracemonkey/tests/js1_3/Script/in-001.js +69 -0
  1857. data/vendor/tracemonkey/tests/js1_3/Script/jstests.list +7 -0
  1858. data/vendor/tracemonkey/tests/js1_3/Script/new-001.js +123 -0
  1859. data/vendor/tracemonkey/tests/js1_3/Script/shell.js +1 -0
  1860. data/vendor/tracemonkey/tests/js1_3/Script/switch-001.js +84 -0
  1861. data/vendor/tracemonkey/tests/js1_3/browser.js +36 -0
  1862. data/vendor/tracemonkey/tests/js1_3/extensions/jstests.list +5 -0
  1863. data/vendor/tracemonkey/tests/js1_3/extensions/proto_10.js +156 -0
  1864. data/vendor/tracemonkey/tests/js1_3/extensions/proto_2.js +125 -0
  1865. data/vendor/tracemonkey/tests/js1_3/extensions/proto_5.js +149 -0
  1866. data/vendor/tracemonkey/tests/js1_3/extensions/script-001.js +174 -0
  1867. data/vendor/tracemonkey/tests/js1_3/extensions/shell.js +1 -0
  1868. data/vendor/tracemonkey/tests/js1_3/inherit/jstests.list +11 -0
  1869. data/vendor/tracemonkey/tests/js1_3/inherit/proto_1.js +170 -0
  1870. data/vendor/tracemonkey/tests/js1_3/inherit/proto_10.js +124 -0
  1871. data/vendor/tracemonkey/tests/js1_3/inherit/proto_11.js +120 -0
  1872. data/vendor/tracemonkey/tests/js1_3/inherit/proto_12.js +146 -0
  1873. data/vendor/tracemonkey/tests/js1_3/inherit/proto_3.js +107 -0
  1874. data/vendor/tracemonkey/tests/js1_3/inherit/proto_4.js +159 -0
  1875. data/vendor/tracemonkey/tests/js1_3/inherit/proto_6.js +174 -0
  1876. data/vendor/tracemonkey/tests/js1_3/inherit/proto_7.js +129 -0
  1877. data/vendor/tracemonkey/tests/js1_3/inherit/proto_8.js +127 -0
  1878. data/vendor/tracemonkey/tests/js1_3/inherit/proto_9.js +105 -0
  1879. data/vendor/tracemonkey/tests/js1_3/inherit/shell.js +1 -0
  1880. data/vendor/tracemonkey/tests/js1_3/jsref.js +195 -0
  1881. data/vendor/tracemonkey/tests/js1_3/jstests.list +6 -0
  1882. data/vendor/tracemonkey/tests/js1_3/misc/shell.js +1 -0
  1883. data/vendor/tracemonkey/tests/js1_3/regress/delete-001.js +83 -0
  1884. data/vendor/tracemonkey/tests/js1_3/regress/function-001-n.js +78 -0
  1885. data/vendor/tracemonkey/tests/js1_3/regress/function-002.js +79 -0
  1886. data/vendor/tracemonkey/tests/js1_3/regress/in-001.js +70 -0
  1887. data/vendor/tracemonkey/tests/js1_3/regress/jstests.list +7 -0
  1888. data/vendor/tracemonkey/tests/js1_3/regress/new-001.js +123 -0
  1889. data/vendor/tracemonkey/tests/js1_3/regress/shell.js +1 -0
  1890. data/vendor/tracemonkey/tests/js1_3/regress/switch-001.js +84 -0
  1891. data/vendor/tracemonkey/tests/js1_3/shell.js +40 -0
  1892. data/vendor/tracemonkey/tests/js1_4/Eval/eval-001.js +91 -0
  1893. data/vendor/tracemonkey/tests/js1_4/Eval/eval-002.js +97 -0
  1894. data/vendor/tracemonkey/tests/js1_4/Eval/eval-003.js +101 -0
  1895. data/vendor/tracemonkey/tests/js1_4/Eval/jstests.list +5 -0
  1896. data/vendor/tracemonkey/tests/js1_4/Eval/regress-531037.js +39 -0
  1897. data/vendor/tracemonkey/tests/js1_4/Eval/shell.js +1 -0
  1898. data/vendor/tracemonkey/tests/js1_4/Functions/function-001.js +123 -0
  1899. data/vendor/tracemonkey/tests/js1_4/Functions/jstests.list +2 -0
  1900. data/vendor/tracemonkey/tests/js1_4/Functions/shell.js +1 -0
  1901. data/vendor/tracemonkey/tests/js1_4/README +1 -0
  1902. data/vendor/tracemonkey/tests/js1_4/Regress/date-001-n.js +76 -0
  1903. data/vendor/tracemonkey/tests/js1_4/Regress/function-001.js +96 -0
  1904. data/vendor/tracemonkey/tests/js1_4/Regress/function-002.js +141 -0
  1905. data/vendor/tracemonkey/tests/js1_4/Regress/function-003.js +94 -0
  1906. data/vendor/tracemonkey/tests/js1_4/Regress/function-004-n.js +71 -0
  1907. data/vendor/tracemonkey/tests/js1_4/Regress/jstests.list +8 -0
  1908. data/vendor/tracemonkey/tests/js1_4/Regress/regress-7224.js +90 -0
  1909. data/vendor/tracemonkey/tests/js1_4/Regress/shell.js +1 -0
  1910. data/vendor/tracemonkey/tests/js1_4/Regress/toString-001-n.js +71 -0
  1911. data/vendor/tracemonkey/tests/js1_4/browser.js +37 -0
  1912. data/vendor/tracemonkey/tests/js1_4/jsref.js +166 -0
  1913. data/vendor/tracemonkey/tests/js1_4/jstests.list +3 -0
  1914. data/vendor/tracemonkey/tests/js1_4/shell.js +39 -0
  1915. data/vendor/tracemonkey/tests/js1_5/Array/11.1.4.js +102 -0
  1916. data/vendor/tracemonkey/tests/js1_5/Array/array-001.js +122 -0
  1917. data/vendor/tracemonkey/tests/js1_5/Array/jstests.list +35 -0
  1918. data/vendor/tracemonkey/tests/js1_5/Array/regress-101964.js +119 -0
  1919. data/vendor/tracemonkey/tests/js1_5/Array/regress-107138.js +211 -0
  1920. data/vendor/tracemonkey/tests/js1_5/Array/regress-108440.js +110 -0
  1921. data/vendor/tracemonkey/tests/js1_5/Array/regress-154338.js +124 -0
  1922. data/vendor/tracemonkey/tests/js1_5/Array/regress-157652.js +155 -0
  1923. data/vendor/tracemonkey/tests/js1_5/Array/regress-178722.js +164 -0
  1924. data/vendor/tracemonkey/tests/js1_5/Array/regress-255555.js +66 -0
  1925. data/vendor/tracemonkey/tests/js1_5/Array/regress-299644.js +61 -0
  1926. data/vendor/tracemonkey/tests/js1_5/Array/regress-300858.js +54 -0
  1927. data/vendor/tracemonkey/tests/js1_5/Array/regress-310351.js +87 -0
  1928. data/vendor/tracemonkey/tests/js1_5/Array/regress-311515.js +53 -0
  1929. data/vendor/tracemonkey/tests/js1_5/Array/regress-313153.js +51 -0
  1930. data/vendor/tracemonkey/tests/js1_5/Array/regress-315509-01.js +61 -0
  1931. data/vendor/tracemonkey/tests/js1_5/Array/regress-330812.js +65 -0
  1932. data/vendor/tracemonkey/tests/js1_5/Array/regress-345961.js +69 -0
  1933. data/vendor/tracemonkey/tests/js1_5/Array/regress-348810.js +61 -0
  1934. data/vendor/tracemonkey/tests/js1_5/Array/regress-350256-01.js +78 -0
  1935. data/vendor/tracemonkey/tests/js1_5/Array/regress-350256-02.js +78 -0
  1936. data/vendor/tracemonkey/tests/js1_5/Array/regress-350256-03.js +88 -0
  1937. data/vendor/tracemonkey/tests/js1_5/Array/regress-360681-01.js +66 -0
  1938. data/vendor/tracemonkey/tests/js1_5/Array/regress-360681-02.js +91 -0
  1939. data/vendor/tracemonkey/tests/js1_5/Array/regress-364104.js +107 -0
  1940. data/vendor/tracemonkey/tests/js1_5/Array/regress-422286.js +67 -0
  1941. data/vendor/tracemonkey/tests/js1_5/Array/regress-424954.js +61 -0
  1942. data/vendor/tracemonkey/tests/js1_5/Array/regress-451483.js +64 -0
  1943. data/vendor/tracemonkey/tests/js1_5/Array/regress-451906.js +64 -0
  1944. data/vendor/tracemonkey/tests/js1_5/Array/regress-456845.js +87 -0
  1945. data/vendor/tracemonkey/tests/js1_5/Array/regress-465980-01.js +68 -0
  1946. data/vendor/tracemonkey/tests/js1_5/Array/regress-465980-02.js +202 -0
  1947. data/vendor/tracemonkey/tests/js1_5/Array/regress-94257.js +120 -0
  1948. data/vendor/tracemonkey/tests/js1_5/Array/regress-99120-01.js +84 -0
  1949. data/vendor/tracemonkey/tests/js1_5/Array/regress-99120-02.js +79 -0
  1950. data/vendor/tracemonkey/tests/js1_5/Array/shell.js +1 -0
  1951. data/vendor/tracemonkey/tests/js1_5/Date/jstests.list +8 -0
  1952. data/vendor/tracemonkey/tests/js1_5/Date/regress-188211.js +60 -0
  1953. data/vendor/tracemonkey/tests/js1_5/Date/regress-301738-01.js +130 -0
  1954. data/vendor/tracemonkey/tests/js1_5/Date/regress-301738-02.js +163 -0
  1955. data/vendor/tracemonkey/tests/js1_5/Date/regress-309925-01.js +48 -0
  1956. data/vendor/tracemonkey/tests/js1_5/Date/regress-309925-02.js +48 -0
  1957. data/vendor/tracemonkey/tests/js1_5/Date/regress-346027.js +63 -0
  1958. data/vendor/tracemonkey/tests/js1_5/Date/regress-346363.js +64 -0
  1959. data/vendor/tracemonkey/tests/js1_5/Date/shell.js +1 -0
  1960. data/vendor/tracemonkey/tests/js1_5/Error/jstests.list +4 -0
  1961. data/vendor/tracemonkey/tests/js1_5/Error/regress-354246.js +70 -0
  1962. data/vendor/tracemonkey/tests/js1_5/Error/regress-412324.js +50 -0
  1963. data/vendor/tracemonkey/tests/js1_5/Error/regress-465377.js +114 -0
  1964. data/vendor/tracemonkey/tests/js1_5/Error/shell.js +1 -0
  1965. data/vendor/tracemonkey/tests/js1_5/Exceptions/catchguard-002-n.js +72 -0
  1966. data/vendor/tracemonkey/tests/js1_5/Exceptions/catchguard-003-n.js +76 -0
  1967. data/vendor/tracemonkey/tests/js1_5/Exceptions/errstack-001.js +279 -0
  1968. data/vendor/tracemonkey/tests/js1_5/Exceptions/jstests.list +16 -0
  1969. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-121658.js +158 -0
  1970. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-123002.js +132 -0
  1971. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-232182.js +155 -0
  1972. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-257751.js +127 -0
  1973. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-273931.js +108 -0
  1974. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-315147.js +69 -0
  1975. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-332472.js +58 -0
  1976. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-333728.js +116 -0
  1977. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-342359.js +77 -0
  1978. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-347674.js +96 -0
  1979. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-350650-n.js +63 -0
  1980. data/vendor/tracemonkey/tests/js1_5/Exceptions/regress-350837.js +79 -0
  1981. data/vendor/tracemonkey/tests/js1_5/Exceptions/shell.js +1 -0
  1982. data/vendor/tracemonkey/tests/js1_5/Expressions/jstests.list +6 -0
  1983. data/vendor/tracemonkey/tests/js1_5/Expressions/regress-192288.js +119 -0
  1984. data/vendor/tracemonkey/tests/js1_5/Expressions/regress-394673.js +82 -0
  1985. data/vendor/tracemonkey/tests/js1_5/Expressions/regress-96526-argsub.js +125 -0
  1986. data/vendor/tracemonkey/tests/js1_5/Expressions/regress-96526-delelem.js +125 -0
  1987. data/vendor/tracemonkey/tests/js1_5/Expressions/regress-96526-noargsub.js +125 -0
  1988. data/vendor/tracemonkey/tests/js1_5/Expressions/shell.js +137 -0
  1989. data/vendor/tracemonkey/tests/js1_5/Function/10.1.6-01.js +62 -0
  1990. data/vendor/tracemonkey/tests/js1_5/Function/10.1.6.js +56 -0
  1991. data/vendor/tracemonkey/tests/js1_5/Function/15.3.4.4.js +74 -0
  1992. data/vendor/tracemonkey/tests/js1_5/Function/jstests.list +15 -0
  1993. data/vendor/tracemonkey/tests/js1_5/Function/regress-123371.js +53 -0
  1994. data/vendor/tracemonkey/tests/js1_5/Function/regress-178389.js +62 -0
  1995. data/vendor/tracemonkey/tests/js1_5/Function/regress-222029-001.js +160 -0
  1996. data/vendor/tracemonkey/tests/js1_5/Function/regress-222029-002.js +169 -0
  1997. data/vendor/tracemonkey/tests/js1_5/Function/regress-292215.js +71 -0
  1998. data/vendor/tracemonkey/tests/js1_5/Function/regress-338001.js +74 -0
  1999. data/vendor/tracemonkey/tests/js1_5/Function/regress-338121-01.js +70 -0
  2000. data/vendor/tracemonkey/tests/js1_5/Function/regress-338121-02.js +74 -0
  2001. data/vendor/tracemonkey/tests/js1_5/Function/regress-338121-03.js +75 -0
  2002. data/vendor/tracemonkey/tests/js1_5/Function/regress-344052.js +63 -0
  2003. data/vendor/tracemonkey/tests/js1_5/Function/regress-364023.js +73 -0
  2004. data/vendor/tracemonkey/tests/js1_5/Function/shell.js +1 -0
  2005. data/vendor/tracemonkey/tests/js1_5/GC/jstests.list +26 -0
  2006. data/vendor/tracemonkey/tests/js1_5/GC/regress-104584.js +80 -0
  2007. data/vendor/tracemonkey/tests/js1_5/GC/regress-203278-2.js +113 -0
  2008. data/vendor/tracemonkey/tests/js1_5/GC/regress-203278-3.js +76 -0
  2009. data/vendor/tracemonkey/tests/js1_5/GC/regress-278725.js +65 -0
  2010. data/vendor/tracemonkey/tests/js1_5/GC/regress-306788.js +57 -0
  2011. data/vendor/tracemonkey/tests/js1_5/GC/regress-311497.js +94 -0
  2012. data/vendor/tracemonkey/tests/js1_5/GC/regress-313276.js +73 -0
  2013. data/vendor/tracemonkey/tests/js1_5/GC/regress-313479.js +70 -0
  2014. data/vendor/tracemonkey/tests/js1_5/GC/regress-316885-01.js +66 -0
  2015. data/vendor/tracemonkey/tests/js1_5/GC/regress-316885-02.js +75 -0
  2016. data/vendor/tracemonkey/tests/js1_5/GC/regress-316885-03.js +75 -0
  2017. data/vendor/tracemonkey/tests/js1_5/GC/regress-319980-01.js +160 -0
  2018. data/vendor/tracemonkey/tests/js1_5/GC/regress-324278.js +95 -0
  2019. data/vendor/tracemonkey/tests/js1_5/GC/regress-331719.js +52 -0
  2020. data/vendor/tracemonkey/tests/js1_5/GC/regress-338653.js +74 -0
  2021. data/vendor/tracemonkey/tests/js1_5/GC/regress-341877-01.js +73 -0
  2022. data/vendor/tracemonkey/tests/js1_5/GC/regress-341877-02.js +78 -0
  2023. data/vendor/tracemonkey/tests/js1_5/GC/regress-346794.js +77 -0
  2024. data/vendor/tracemonkey/tests/js1_5/GC/regress-348532.js +83 -0
  2025. data/vendor/tracemonkey/tests/js1_5/GC/regress-352606.js +61 -0
  2026. data/vendor/tracemonkey/tests/js1_5/GC/regress-383269-01.js +94 -0
  2027. data/vendor/tracemonkey/tests/js1_5/GC/regress-383269-02.js +98 -0
  2028. data/vendor/tracemonkey/tests/js1_5/GC/regress-390078.js +69 -0
  2029. data/vendor/tracemonkey/tests/js1_5/GC/regress-418128.js +73 -0
  2030. data/vendor/tracemonkey/tests/js1_5/GC/regress-440558.js +69 -0
  2031. data/vendor/tracemonkey/tests/js1_5/GC/shell.js +1 -0
  2032. data/vendor/tracemonkey/tests/js1_5/GetSet/getset-002.js +86 -0
  2033. data/vendor/tracemonkey/tests/js1_5/GetSet/jstests.list +4 -0
  2034. data/vendor/tracemonkey/tests/js1_5/GetSet/regress-353264.js +50 -0
  2035. data/vendor/tracemonkey/tests/js1_5/GetSet/regress-375976.js +64 -0
  2036. data/vendor/tracemonkey/tests/js1_5/GetSet/shell.js +1 -0
  2037. data/vendor/tracemonkey/tests/js1_5/LexicalConventions/jstests.list +5 -0
  2038. data/vendor/tracemonkey/tests/js1_5/LexicalConventions/lexical-001.js +183 -0
  2039. data/vendor/tracemonkey/tests/js1_5/LexicalConventions/regress-177314.js +110 -0
  2040. data/vendor/tracemonkey/tests/js1_5/LexicalConventions/regress-343675.js +82 -0
  2041. data/vendor/tracemonkey/tests/js1_5/LexicalConventions/regress-469940.js +71 -0
  2042. data/vendor/tracemonkey/tests/js1_5/LexicalConventions/shell.js +1 -0
  2043. data/vendor/tracemonkey/tests/js1_5/Object/jstests.list +11 -0
  2044. data/vendor/tracemonkey/tests/js1_5/Object/regress-137000.js +240 -0
  2045. data/vendor/tracemonkey/tests/js1_5/Object/regress-192105.js +183 -0
  2046. data/vendor/tracemonkey/tests/js1_5/Object/regress-308806-01.js +53 -0
  2047. data/vendor/tracemonkey/tests/js1_5/Object/regress-338709.js +107 -0
  2048. data/vendor/tracemonkey/tests/js1_5/Object/regress-362872-01.js +74 -0
  2049. data/vendor/tracemonkey/tests/js1_5/Object/regress-362872-02.js +55 -0
  2050. data/vendor/tracemonkey/tests/js1_5/Object/regress-382503.js +62 -0
  2051. data/vendor/tracemonkey/tests/js1_5/Object/regress-382532.js +70 -0
  2052. data/vendor/tracemonkey/tests/js1_5/Object/regress-465476.js +96 -0
  2053. data/vendor/tracemonkey/tests/js1_5/Object/regress-90596-003.js +312 -0
  2054. data/vendor/tracemonkey/tests/js1_5/Object/shell.js +1 -0
  2055. data/vendor/tracemonkey/tests/js1_5/README +1 -0
  2056. data/vendor/tracemonkey/tests/js1_5/Regress/jstests.list +363 -0
  2057. data/vendor/tracemonkey/tests/js1_5/Regress/regress-102725.js +99 -0
  2058. data/vendor/tracemonkey/tests/js1_5/Regress/regress-10278.js +79 -0
  2059. data/vendor/tracemonkey/tests/js1_5/Regress/regress-103602.js +168 -0
  2060. data/vendor/tracemonkey/tests/js1_5/Regress/regress-104077.js +509 -0
  2061. data/vendor/tracemonkey/tests/js1_5/Regress/regress-106244.js +71 -0
  2062. data/vendor/tracemonkey/tests/js1_5/Regress/regress-110286.js +156 -0
  2063. data/vendor/tracemonkey/tests/js1_5/Regress/regress-111557.js +10965 -0
  2064. data/vendor/tracemonkey/tests/js1_5/Regress/regress-114491.js +106 -0
  2065. data/vendor/tracemonkey/tests/js1_5/Regress/regress-114493.js +114 -0
  2066. data/vendor/tracemonkey/tests/js1_5/Regress/regress-115436.js +58 -0
  2067. data/vendor/tracemonkey/tests/js1_5/Regress/regress-116228.js +59 -0
  2068. data/vendor/tracemonkey/tests/js1_5/Regress/regress-118849.js +186 -0
  2069. data/vendor/tracemonkey/tests/js1_5/Regress/regress-119719.js +58 -0
  2070. data/vendor/tracemonkey/tests/js1_5/Regress/regress-127243.js +108 -0
  2071. data/vendor/tracemonkey/tests/js1_5/Regress/regress-127557.js +124 -0
  2072. data/vendor/tracemonkey/tests/js1_5/Regress/regress-131510-001.js +74 -0
  2073. data/vendor/tracemonkey/tests/js1_5/Regress/regress-139316.js +80 -0
  2074. data/vendor/tracemonkey/tests/js1_5/Regress/regress-140852.js +66 -0
  2075. data/vendor/tracemonkey/tests/js1_5/Regress/regress-140974.js +140 -0
  2076. data/vendor/tracemonkey/tests/js1_5/Regress/regress-146596.js +159 -0
  2077. data/vendor/tracemonkey/tests/js1_5/Regress/regress-152646.js +127 -0
  2078. data/vendor/tracemonkey/tests/js1_5/Regress/regress-155081-2.js +17554 -0
  2079. data/vendor/tracemonkey/tests/js1_5/Regress/regress-155081.js +17561 -0
  2080. data/vendor/tracemonkey/tests/js1_5/Regress/regress-156354.js +131 -0
  2081. data/vendor/tracemonkey/tests/js1_5/Regress/regress-159334.js +129 -0
  2082. data/vendor/tracemonkey/tests/js1_5/Regress/regress-162392.js +68 -0
  2083. data/vendor/tracemonkey/tests/js1_5/Regress/regress-165201.js +89 -0
  2084. data/vendor/tracemonkey/tests/js1_5/Regress/regress-167328.js +60 -0
  2085. data/vendor/tracemonkey/tests/js1_5/Regress/regress-167658.js +62 -0
  2086. data/vendor/tracemonkey/tests/js1_5/Regress/regress-168347.js +220 -0
  2087. data/vendor/tracemonkey/tests/js1_5/Regress/regress-169559.js +91 -0
  2088. data/vendor/tracemonkey/tests/js1_5/Regress/regress-170193.js +111 -0
  2089. data/vendor/tracemonkey/tests/js1_5/Regress/regress-172699.js +99 -0
  2090. data/vendor/tracemonkey/tests/js1_5/Regress/regress-173067.js +58 -0
  2091. data/vendor/tracemonkey/tests/js1_5/Regress/regress-174709.js +104 -0
  2092. data/vendor/tracemonkey/tests/js1_5/Regress/regress-176125.js +82 -0
  2093. data/vendor/tracemonkey/tests/js1_5/Regress/regress-179524.js +368 -0
  2094. data/vendor/tracemonkey/tests/js1_5/Regress/regress-185165.js +101 -0
  2095. data/vendor/tracemonkey/tests/js1_5/Regress/regress-191633.js +107 -0
  2096. data/vendor/tracemonkey/tests/js1_5/Regress/regress-191668.js +104 -0
  2097. data/vendor/tracemonkey/tests/js1_5/Regress/regress-192414.js +122 -0
  2098. data/vendor/tracemonkey/tests/js1_5/Regress/regress-193418.js +104 -0
  2099. data/vendor/tracemonkey/tests/js1_5/Regress/regress-203278-1.js +64 -0
  2100. data/vendor/tracemonkey/tests/js1_5/Regress/regress-203402.js +95 -0
  2101. data/vendor/tracemonkey/tests/js1_5/Regress/regress-203841.js +164 -0
  2102. data/vendor/tracemonkey/tests/js1_5/Regress/regress-204210.js +150 -0
  2103. data/vendor/tracemonkey/tests/js1_5/Regress/regress-210682.js +101 -0
  2104. data/vendor/tracemonkey/tests/js1_5/Regress/regress-211590.js +88 -0
  2105. data/vendor/tracemonkey/tests/js1_5/Regress/regress-213482.js +62 -0
  2106. data/vendor/tracemonkey/tests/js1_5/Regress/regress-214761.js +78 -0
  2107. data/vendor/tracemonkey/tests/js1_5/Regress/regress-216320.js +1040 -0
  2108. data/vendor/tracemonkey/tests/js1_5/Regress/regress-224956.js +287 -0
  2109. data/vendor/tracemonkey/tests/js1_5/Regress/regress-229006.js +65597 -0
  2110. data/vendor/tracemonkey/tests/js1_5/Regress/regress-230216-1.js +81 -0
  2111. data/vendor/tracemonkey/tests/js1_5/Regress/regress-230216-2.js +70 -0
  2112. data/vendor/tracemonkey/tests/js1_5/Regress/regress-230216-3.js +80 -0
  2113. data/vendor/tracemonkey/tests/js1_5/Regress/regress-233483-2.js +100 -0
  2114. data/vendor/tracemonkey/tests/js1_5/Regress/regress-233483.js +86 -0
  2115. data/vendor/tracemonkey/tests/js1_5/Regress/regress-234389.js +72 -0
  2116. data/vendor/tracemonkey/tests/js1_5/Regress/regress-238881.js +64 -0
  2117. data/vendor/tracemonkey/tests/js1_5/Regress/regress-238945.js +52 -0
  2118. data/vendor/tracemonkey/tests/js1_5/Regress/regress-240317.js +99 -0
  2119. data/vendor/tracemonkey/tests/js1_5/Regress/regress-240577.js +68 -0
  2120. data/vendor/tracemonkey/tests/js1_5/Regress/regress-243174.js +55 -0
  2121. data/vendor/tracemonkey/tests/js1_5/Regress/regress-243389-n.js +58 -0
  2122. data/vendor/tracemonkey/tests/js1_5/Regress/regress-243869.js +72 -0
  2123. data/vendor/tracemonkey/tests/js1_5/Regress/regress-244470.js +1113 -0
  2124. data/vendor/tracemonkey/tests/js1_5/Regress/regress-244619.js +66 -0
  2125. data/vendor/tracemonkey/tests/js1_5/Regress/regress-245113.js +81 -0
  2126. data/vendor/tracemonkey/tests/js1_5/Regress/regress-245308.js +61 -0
  2127. data/vendor/tracemonkey/tests/js1_5/Regress/regress-246911.js +64 -0
  2128. data/vendor/tracemonkey/tests/js1_5/Regress/regress-246964.js +196 -0
  2129. data/vendor/tracemonkey/tests/js1_5/Regress/regress-247179.js +53 -0
  2130. data/vendor/tracemonkey/tests/js1_5/Regress/regress-248444.js +77 -0
  2131. data/vendor/tracemonkey/tests/js1_5/Regress/regress-249211.js +63 -0
  2132. data/vendor/tracemonkey/tests/js1_5/Regress/regress-252892.js +163 -0
  2133. data/vendor/tracemonkey/tests/js1_5/Regress/regress-253150.js +123 -0
  2134. data/vendor/tracemonkey/tests/js1_5/Regress/regress-254296.js +60 -0
  2135. data/vendor/tracemonkey/tests/js1_5/Regress/regress-254974.js +72 -0
  2136. data/vendor/tracemonkey/tests/js1_5/Regress/regress-256501.js +72 -0
  2137. data/vendor/tracemonkey/tests/js1_5/Regress/regress-256617.js +69 -0
  2138. data/vendor/tracemonkey/tests/js1_5/Regress/regress-256798.js +70 -0
  2139. data/vendor/tracemonkey/tests/js1_5/Regress/regress-259935.js +75 -0
  2140. data/vendor/tracemonkey/tests/js1_5/Regress/regress-260541.js +55 -0
  2141. data/vendor/tracemonkey/tests/js1_5/Regress/regress-261886.js +63 -0
  2142. data/vendor/tracemonkey/tests/js1_5/Regress/regress-261887.js +70 -0
  2143. data/vendor/tracemonkey/tests/js1_5/Regress/regress-271716-n.js +60 -0
  2144. data/vendor/tracemonkey/tests/js1_5/Regress/regress-274035.js +63 -0
  2145. data/vendor/tracemonkey/tests/js1_5/Regress/regress-274888.js +73 -0
  2146. data/vendor/tracemonkey/tests/js1_5/Regress/regress-275378.js +81 -0
  2147. data/vendor/tracemonkey/tests/js1_5/Regress/regress-276103.js +60 -0
  2148. data/vendor/tracemonkey/tests/js1_5/Regress/regress-278873.js +61 -0
  2149. data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-1.js +58 -0
  2150. data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-2.js +74 -0
  2151. data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-3.js +79 -0
  2152. data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-4.js +81 -0
  2153. data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769-5.js +64 -0
  2154. data/vendor/tracemonkey/tests/js1_5/Regress/regress-280769.js +73 -0
  2155. data/vendor/tracemonkey/tests/js1_5/Regress/regress-281487.js +69 -0
  2156. data/vendor/tracemonkey/tests/js1_5/Regress/regress-281606.js +80 -0
  2157. data/vendor/tracemonkey/tests/js1_5/Regress/regress-281930.js +54 -0
  2158. data/vendor/tracemonkey/tests/js1_5/Regress/regress-283477.js +61 -0
  2159. data/vendor/tracemonkey/tests/js1_5/Regress/regress-286216.js +63 -0
  2160. data/vendor/tracemonkey/tests/js1_5/Regress/regress-288688.js +81 -0
  2161. data/vendor/tracemonkey/tests/js1_5/Regress/regress-289094.js +61 -0
  2162. data/vendor/tracemonkey/tests/js1_5/Regress/regress-290575.js +90 -0
  2163. data/vendor/tracemonkey/tests/js1_5/Regress/regress-290656.js +65 -0
  2164. data/vendor/tracemonkey/tests/js1_5/Regress/regress-294191.js +63 -0
  2165. data/vendor/tracemonkey/tests/js1_5/Regress/regress-294195-01.js +58 -0
  2166. data/vendor/tracemonkey/tests/js1_5/Regress/regress-294195-02.js +50 -0
  2167. data/vendor/tracemonkey/tests/js1_5/Regress/regress-294302.js +57 -0
  2168. data/vendor/tracemonkey/tests/js1_5/Regress/regress-295052.js +50 -0
  2169. data/vendor/tracemonkey/tests/js1_5/Regress/regress-295666.js +56 -0
  2170. data/vendor/tracemonkey/tests/js1_5/Regress/regress-299209.js +56 -0
  2171. data/vendor/tracemonkey/tests/js1_5/Regress/regress-299641.js +58 -0
  2172. data/vendor/tracemonkey/tests/js1_5/Regress/regress-303213.js +88 -0
  2173. data/vendor/tracemonkey/tests/js1_5/Regress/regress-306633.js +68 -0
  2174. data/vendor/tracemonkey/tests/js1_5/Regress/regress-306727.js +73 -0
  2175. data/vendor/tracemonkey/tests/js1_5/Regress/regress-306794.js +56 -0
  2176. data/vendor/tracemonkey/tests/js1_5/Regress/regress-308085.js +602 -0
  2177. data/vendor/tracemonkey/tests/js1_5/Regress/regress-308566.js +60 -0
  2178. data/vendor/tracemonkey/tests/js1_5/Regress/regress-309242.js +77 -0
  2179. data/vendor/tracemonkey/tests/js1_5/Regress/regress-310295.js +54 -0
  2180. data/vendor/tracemonkey/tests/js1_5/Regress/regress-310607.js +62 -0
  2181. data/vendor/tracemonkey/tests/js1_5/Regress/regress-310993.js +55 -0
  2182. data/vendor/tracemonkey/tests/js1_5/Regress/regress-311071.js +51 -0
  2183. data/vendor/tracemonkey/tests/js1_5/Regress/regress-311629.js +55 -0
  2184. data/vendor/tracemonkey/tests/js1_5/Regress/regress-312260.js +60 -0
  2185. data/vendor/tracemonkey/tests/js1_5/Regress/regress-31255.js +113 -0
  2186. data/vendor/tracemonkey/tests/js1_5/Regress/regress-312588.js +63 -0
  2187. data/vendor/tracemonkey/tests/js1_5/Regress/regress-313967-01.js +112 -0
  2188. data/vendor/tracemonkey/tests/js1_5/Regress/regress-313967-02.js +87 -0
  2189. data/vendor/tracemonkey/tests/js1_5/Regress/regress-314401.js +104 -0
  2190. data/vendor/tracemonkey/tests/js1_5/Regress/regress-315974.js +83 -0
  2191. data/vendor/tracemonkey/tests/js1_5/Regress/regress-315990.js +73 -0
  2192. data/vendor/tracemonkey/tests/js1_5/Regress/regress-317476.js +64 -0
  2193. data/vendor/tracemonkey/tests/js1_5/Regress/regress-317533.js +87 -0
  2194. data/vendor/tracemonkey/tests/js1_5/Regress/regress-317714-01.js +52 -0
  2195. data/vendor/tracemonkey/tests/js1_5/Regress/regress-317714-02.js +53 -0
  2196. data/vendor/tracemonkey/tests/js1_5/Regress/regress-319384.js +61 -0
  2197. data/vendor/tracemonkey/tests/js1_5/Regress/regress-319391.js +73 -0
  2198. data/vendor/tracemonkey/tests/js1_5/Regress/regress-320032.js +60 -0
  2199. data/vendor/tracemonkey/tests/js1_5/Regress/regress-320119.js +148 -0
  2200. data/vendor/tracemonkey/tests/js1_5/Regress/regress-321757.js +143 -0
  2201. data/vendor/tracemonkey/tests/js1_5/Regress/regress-321874.js +241 -0
  2202. data/vendor/tracemonkey/tests/js1_5/Regress/regress-321971.js +56 -0
  2203. data/vendor/tracemonkey/tests/js1_5/Regress/regress-322430.js +70 -0
  2204. data/vendor/tracemonkey/tests/js1_5/Regress/regress-323314-1.js +73 -0
  2205. data/vendor/tracemonkey/tests/js1_5/Regress/regress-325925.js +50 -0
  2206. data/vendor/tracemonkey/tests/js1_5/Regress/regress-326453.js +52 -0
  2207. data/vendor/tracemonkey/tests/js1_5/Regress/regress-326467.js +51 -0
  2208. data/vendor/tracemonkey/tests/js1_5/Regress/regress-328012.js +62 -0
  2209. data/vendor/tracemonkey/tests/js1_5/Regress/regress-328664.js +64 -0
  2210. data/vendor/tracemonkey/tests/js1_5/Regress/regress-328897.js +79 -0
  2211. data/vendor/tracemonkey/tests/js1_5/Regress/regress-329383.js +116 -0
  2212. data/vendor/tracemonkey/tests/js1_5/Regress/regress-329530.js +73 -0
  2213. data/vendor/tracemonkey/tests/js1_5/Regress/regress-330352.js +67 -0
  2214. data/vendor/tracemonkey/tests/js1_5/Regress/regress-330951.js +50 -0
  2215. data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-01.js +57 -0
  2216. data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-02.js +61 -0
  2217. data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-03.js +57 -0
  2218. data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-04.js +61 -0
  2219. data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-05.js +66 -0
  2220. data/vendor/tracemonkey/tests/js1_5/Regress/regress-334807-06.js +70 -0
  2221. data/vendor/tracemonkey/tests/js1_5/Regress/regress-336100.js +55 -0
  2222. data/vendor/tracemonkey/tests/js1_5/Regress/regress-338307.js +62 -0
  2223. data/vendor/tracemonkey/tests/js1_5/Regress/regress-340369.js +58 -0
  2224. data/vendor/tracemonkey/tests/js1_5/Regress/regress-341360.js +88 -0
  2225. data/vendor/tracemonkey/tests/js1_5/Regress/regress-343713.js +54 -0
  2226. data/vendor/tracemonkey/tests/js1_5/Regress/regress-343966.js +65 -0
  2227. data/vendor/tracemonkey/tests/js1_5/Regress/regress-344711-n.js +67 -0
  2228. data/vendor/tracemonkey/tests/js1_5/Regress/regress-344804.js +65 -0
  2229. data/vendor/tracemonkey/tests/js1_5/Regress/regress-344959.js +69 -0
  2230. data/vendor/tracemonkey/tests/js1_5/Regress/regress-346237.js +61 -0
  2231. data/vendor/tracemonkey/tests/js1_5/Regress/regress-346801.js +109 -0
  2232. data/vendor/tracemonkey/tests/js1_5/Regress/regress-347306-01.js +85 -0
  2233. data/vendor/tracemonkey/tests/js1_5/Regress/regress-349482-01.js +62 -0
  2234. data/vendor/tracemonkey/tests/js1_5/Regress/regress-349482-02.js +62 -0
  2235. data/vendor/tracemonkey/tests/js1_5/Regress/regress-349592.js +61 -0
  2236. data/vendor/tracemonkey/tests/js1_5/Regress/regress-349648.js +98 -0
  2237. data/vendor/tracemonkey/tests/js1_5/Regress/regress-350253.js +67 -0
  2238. data/vendor/tracemonkey/tests/js1_5/Regress/regress-350268.js +107 -0
  2239. data/vendor/tracemonkey/tests/js1_5/Regress/regress-350312.js +114 -0
  2240. data/vendor/tracemonkey/tests/js1_5/Regress/regress-350415.js +67 -0
  2241. data/vendor/tracemonkey/tests/js1_5/Regress/regress-350529.js +66 -0
  2242. data/vendor/tracemonkey/tests/js1_5/Regress/regress-350692.js +70 -0
  2243. data/vendor/tracemonkey/tests/js1_5/Regress/regress-351116.js +65 -0
  2244. data/vendor/tracemonkey/tests/js1_5/Regress/regress-351515.js +69 -0
  2245. data/vendor/tracemonkey/tests/js1_5/Regress/regress-352009.js +60 -0
  2246. data/vendor/tracemonkey/tests/js1_5/Regress/regress-352197.js +102 -0
  2247. data/vendor/tracemonkey/tests/js1_5/Regress/regress-352208.js +77 -0
  2248. data/vendor/tracemonkey/tests/js1_5/Regress/regress-352604.js +61 -0
  2249. data/vendor/tracemonkey/tests/js1_5/Regress/regress-354924.js +64 -0
  2250. data/vendor/tracemonkey/tests/js1_5/Regress/regress-355341.js +61 -0
  2251. data/vendor/tracemonkey/tests/js1_5/Regress/regress-355344.js +82 -0
  2252. data/vendor/tracemonkey/tests/js1_5/Regress/regress-355556.js +68 -0
  2253. data/vendor/tracemonkey/tests/js1_5/Regress/regress-355829-01.js +61 -0
  2254. data/vendor/tracemonkey/tests/js1_5/Regress/regress-355829-02.js +74 -0
  2255. data/vendor/tracemonkey/tests/js1_5/Regress/regress-355829-03.js +62 -0
  2256. data/vendor/tracemonkey/tests/js1_5/Regress/regress-356250.js +77 -0
  2257. data/vendor/tracemonkey/tests/js1_5/Regress/regress-356693.js +69 -0
  2258. data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-01.js +74 -0
  2259. data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-02.js +64 -0
  2260. data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-03.js +74 -0
  2261. data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-04.js +64 -0
  2262. data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-05.js +76 -0
  2263. data/vendor/tracemonkey/tests/js1_5/Regress/regress-360969-06.js +65 -0
  2264. data/vendor/tracemonkey/tests/js1_5/Regress/regress-361467.js +65 -0
  2265. data/vendor/tracemonkey/tests/js1_5/Regress/regress-361617.js +66 -0
  2266. data/vendor/tracemonkey/tests/js1_5/Regress/regress-362583.js +77 -0
  2267. data/vendor/tracemonkey/tests/js1_5/Regress/regress-3649-n.js +65 -0
  2268. data/vendor/tracemonkey/tests/js1_5/Regress/regress-366122.js +79 -0
  2269. data/vendor/tracemonkey/tests/js1_5/Regress/regress-366468.js +68 -0
  2270. data/vendor/tracemonkey/tests/js1_5/Regress/regress-366601.js +71 -0
  2271. data/vendor/tracemonkey/tests/js1_5/Regress/regress-367561-01.js +70 -0
  2272. data/vendor/tracemonkey/tests/js1_5/Regress/regress-367561-03.js +69 -0
  2273. data/vendor/tracemonkey/tests/js1_5/Regress/regress-372364.js +80 -0
  2274. data/vendor/tracemonkey/tests/js1_5/Regress/regress-379245.js +72 -0
  2275. data/vendor/tracemonkey/tests/js1_5/Regress/regress-383674.js +91 -0
  2276. data/vendor/tracemonkey/tests/js1_5/Regress/regress-383682.js +67 -0
  2277. data/vendor/tracemonkey/tests/js1_5/Regress/regress-385393-06.js +61 -0
  2278. data/vendor/tracemonkey/tests/js1_5/Regress/regress-387951-01.js +61 -0
  2279. data/vendor/tracemonkey/tests/js1_5/Regress/regress-387951-02.js +61 -0
  2280. data/vendor/tracemonkey/tests/js1_5/Regress/regress-387951-03.js +61 -0
  2281. data/vendor/tracemonkey/tests/js1_5/Regress/regress-39309.js +110 -0
  2282. data/vendor/tracemonkey/tests/js1_5/Regress/regress-396684.js +81 -0
  2283. data/vendor/tracemonkey/tests/js1_5/Regress/regress-398085-01.js +778 -0
  2284. data/vendor/tracemonkey/tests/js1_5/Regress/regress-398085-02.js +761 -0
  2285. data/vendor/tracemonkey/tests/js1_5/Regress/regress-398609.js +72 -0
  2286. data/vendor/tracemonkey/tests/js1_5/Regress/regress-404755.js +83 -0
  2287. data/vendor/tracemonkey/tests/js1_5/Regress/regress-406769.js +188 -0
  2288. data/vendor/tracemonkey/tests/js1_5/Regress/regress-407024.js +53 -0
  2289. data/vendor/tracemonkey/tests/js1_5/Regress/regress-407323.js +75 -0
  2290. data/vendor/tracemonkey/tests/js1_5/Regress/regress-407957.js +63 -0
  2291. data/vendor/tracemonkey/tests/js1_5/Regress/regress-410852.js +71 -0
  2292. data/vendor/tracemonkey/tests/js1_5/Regress/regress-416628.js +142 -0
  2293. data/vendor/tracemonkey/tests/js1_5/Regress/regress-416737-01.js +61 -0
  2294. data/vendor/tracemonkey/tests/js1_5/Regress/regress-416737-02.js +66 -0
  2295. data/vendor/tracemonkey/tests/js1_5/Regress/regress-417893.js +61 -0
  2296. data/vendor/tracemonkey/tests/js1_5/Regress/regress-418504.js +86 -0
  2297. data/vendor/tracemonkey/tests/js1_5/Regress/regress-418540.js +94 -0
  2298. data/vendor/tracemonkey/tests/js1_5/Regress/regress-419018.js +80 -0
  2299. data/vendor/tracemonkey/tests/js1_5/Regress/regress-419803.js +61 -0
  2300. data/vendor/tracemonkey/tests/js1_5/Regress/regress-420919.js +70 -0
  2301. data/vendor/tracemonkey/tests/js1_5/Regress/regress-422348.js +70 -0
  2302. data/vendor/tracemonkey/tests/js1_5/Regress/regress-424311.js +61 -0
  2303. data/vendor/tracemonkey/tests/js1_5/Regress/regress-425360.js +74 -0
  2304. data/vendor/tracemonkey/tests/js1_5/Regress/regress-426827.js +67 -0
  2305. data/vendor/tracemonkey/tests/js1_5/Regress/regress-428366.js +52 -0
  2306. data/vendor/tracemonkey/tests/js1_5/Regress/regress-438415-01.js +60 -0
  2307. data/vendor/tracemonkey/tests/js1_5/Regress/regress-438415-02.js +64 -0
  2308. data/vendor/tracemonkey/tests/js1_5/Regress/regress-449627.js +147 -0
  2309. data/vendor/tracemonkey/tests/js1_5/Regress/regress-449666.js +98 -0
  2310. data/vendor/tracemonkey/tests/js1_5/Regress/regress-450369.js +345 -0
  2311. data/vendor/tracemonkey/tests/js1_5/Regress/regress-450833.js +82 -0
  2312. data/vendor/tracemonkey/tests/js1_5/Regress/regress-451884.js +68 -0
  2313. data/vendor/tracemonkey/tests/js1_5/Regress/regress-451946.js +67 -0
  2314. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452008.js +186 -0
  2315. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452170.js +64 -0
  2316. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452333.js +64 -0
  2317. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452336.js +64 -0
  2318. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452346.js +61 -0
  2319. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452495.js +54 -0
  2320. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452573-01.js +64 -0
  2321. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452573-02.js +64 -0
  2322. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452713.js +64 -0
  2323. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452724-01.js +64 -0
  2324. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452724-02.js +64 -0
  2325. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452742-01.js +84 -0
  2326. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452742-02.js +89 -0
  2327. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452853.js +64 -0
  2328. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452884-01.js +64 -0
  2329. data/vendor/tracemonkey/tests/js1_5/Regress/regress-452884-02.js +64 -0
  2330. data/vendor/tracemonkey/tests/js1_5/Regress/regress-453024.js +78 -0
  2331. data/vendor/tracemonkey/tests/js1_5/Regress/regress-453173.js +66 -0
  2332. data/vendor/tracemonkey/tests/js1_5/Regress/regress-453397.js +81 -0
  2333. data/vendor/tracemonkey/tests/js1_5/Regress/regress-453701.js +64 -0
  2334. data/vendor/tracemonkey/tests/js1_5/Regress/regress-453747.js +72 -0
  2335. data/vendor/tracemonkey/tests/js1_5/Regress/regress-454682.js +68 -0
  2336. data/vendor/tracemonkey/tests/js1_5/Regress/regress-454981.js +69 -0
  2337. data/vendor/tracemonkey/tests/js1_5/Regress/regress-455605.js +65 -0
  2338. data/vendor/tracemonkey/tests/js1_5/Regress/regress-455748.js +65 -0
  2339. data/vendor/tracemonkey/tests/js1_5/Regress/regress-455758-01.js +65 -0
  2340. data/vendor/tracemonkey/tests/js1_5/Regress/regress-455758-02.js +65 -0
  2341. data/vendor/tracemonkey/tests/js1_5/Regress/regress-455775.js +67 -0
  2342. data/vendor/tracemonkey/tests/js1_5/Regress/regress-456470.js +73 -0
  2343. data/vendor/tracemonkey/tests/js1_5/Regress/regress-456477-01.js +65 -0
  2344. data/vendor/tracemonkey/tests/js1_5/Regress/regress-456477-02.js +65 -0
  2345. data/vendor/tracemonkey/tests/js1_5/Regress/regress-456494.js +83 -0
  2346. data/vendor/tracemonkey/tests/js1_5/Regress/regress-456540-01.js +65 -0
  2347. data/vendor/tracemonkey/tests/js1_5/Regress/regress-456540-02.js +65 -0
  2348. data/vendor/tracemonkey/tests/js1_5/Regress/regress-457065-03.js +67 -0
  2349. data/vendor/tracemonkey/tests/js1_5/Regress/regress-457456.js +65 -0
  2350. data/vendor/tracemonkey/tests/js1_5/Regress/regress-457778.js +65 -0
  2351. data/vendor/tracemonkey/tests/js1_5/Regress/regress-458851.js +65 -0
  2352. data/vendor/tracemonkey/tests/js1_5/Regress/regress-459085.js +67 -0
  2353. data/vendor/tracemonkey/tests/js1_5/Regress/regress-459628.js +69 -0
  2354. data/vendor/tracemonkey/tests/js1_5/Regress/regress-459990.js +66 -0
  2355. data/vendor/tracemonkey/tests/js1_5/Regress/regress-460024.js +74 -0
  2356. data/vendor/tracemonkey/tests/js1_5/Regress/regress-460117.js +80 -0
  2357. data/vendor/tracemonkey/tests/js1_5/Regress/regress-461307.js +66 -0
  2358. data/vendor/tracemonkey/tests/js1_5/Regress/regress-461723.js +65 -0
  2359. data/vendor/tracemonkey/tests/js1_5/Regress/regress-462292.js +67 -0
  2360. data/vendor/tracemonkey/tests/js1_5/Regress/regress-462879.js +67 -0
  2361. data/vendor/tracemonkey/tests/js1_5/Regress/regress-462989.js +66 -0
  2362. data/vendor/tracemonkey/tests/js1_5/Regress/regress-463259.js +62 -0
  2363. data/vendor/tracemonkey/tests/js1_5/Regress/regress-463782.js +101 -0
  2364. data/vendor/tracemonkey/tests/js1_5/Regress/regress-464334.js +69 -0
  2365. data/vendor/tracemonkey/tests/js1_5/Regress/regress-464862.js +156 -0
  2366. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465013.js +74 -0
  2367. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465132.js +78 -0
  2368. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465133.js +68 -0
  2369. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465135.js +68 -0
  2370. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465136.js +68 -0
  2371. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465137.js +68 -0
  2372. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465262.js +67 -0
  2373. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465272.js +67 -0
  2374. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465347.js +85 -0
  2375. data/vendor/tracemonkey/tests/js1_5/Regress/regress-465366.js +74 -0
  2376. data/vendor/tracemonkey/tests/js1_5/Regress/regress-466262.js +69 -0
  2377. data/vendor/tracemonkey/tests/js1_5/Regress/regress-466747.js +94 -0
  2378. data/vendor/tracemonkey/tests/js1_5/Regress/regress-469044.js +104 -0
  2379. data/vendor/tracemonkey/tests/js1_5/Regress/regress-470061.js +78 -0
  2380. data/vendor/tracemonkey/tests/js1_5/Regress/regress-470187-01.js +61 -0
  2381. data/vendor/tracemonkey/tests/js1_5/Regress/regress-470187-02.js +61 -0
  2382. data/vendor/tracemonkey/tests/js1_5/Regress/regress-470758-01.js +61 -0
  2383. data/vendor/tracemonkey/tests/js1_5/Regress/regress-470758-02.js +63 -0
  2384. data/vendor/tracemonkey/tests/js1_5/Regress/regress-475645-01.js +82 -0
  2385. data/vendor/tracemonkey/tests/js1_5/Regress/regress-475645-02.js +89 -0
  2386. data/vendor/tracemonkey/tests/js1_5/Regress/regress-476049.js +76 -0
  2387. data/vendor/tracemonkey/tests/js1_5/Regress/regress-476192.js +74 -0
  2388. data/vendor/tracemonkey/tests/js1_5/Regress/regress-477733.js +77 -0
  2389. data/vendor/tracemonkey/tests/js1_5/Regress/regress-477758.js +85 -0
  2390. data/vendor/tracemonkey/tests/js1_5/Regress/regress-478314.js +65 -0
  2391. data/vendor/tracemonkey/tests/js1_5/Regress/regress-479353.js +61 -0
  2392. data/vendor/tracemonkey/tests/js1_5/Regress/regress-480147.js +68 -0
  2393. data/vendor/tracemonkey/tests/js1_5/Regress/regress-480244.js +86 -0
  2394. data/vendor/tracemonkey/tests/js1_5/Regress/regress-481436.js +74 -0
  2395. data/vendor/tracemonkey/tests/js1_5/Regress/regress-482421.js +61 -0
  2396. data/vendor/tracemonkey/tests/js1_5/Regress/regress-483103.js +68 -0
  2397. data/vendor/tracemonkey/tests/js1_5/Regress/regress-501124.js +78 -0
  2398. data/vendor/tracemonkey/tests/js1_5/Regress/regress-504078.js +84 -0
  2399. data/vendor/tracemonkey/tests/js1_5/Regress/regress-506567.js +78 -0
  2400. data/vendor/tracemonkey/tests/js1_5/Regress/regress-57043.js +109 -0
  2401. data/vendor/tracemonkey/tests/js1_5/Regress/regress-58116.js +61 -0
  2402. data/vendor/tracemonkey/tests/js1_5/Regress/regress-68498-001.js +78 -0
  2403. data/vendor/tracemonkey/tests/js1_5/Regress/regress-68498-002.js +101 -0
  2404. data/vendor/tracemonkey/tests/js1_5/Regress/regress-68498-003.js +105 -0
  2405. data/vendor/tracemonkey/tests/js1_5/Regress/regress-68498-004.js +133 -0
  2406. data/vendor/tracemonkey/tests/js1_5/Regress/regress-69607.js +76 -0
  2407. data/vendor/tracemonkey/tests/js1_5/Regress/regress-71107.js +80 -0
  2408. data/vendor/tracemonkey/tests/js1_5/Regress/regress-76054.js +160 -0
  2409. data/vendor/tracemonkey/tests/js1_5/Regress/regress-80981.js +3144 -0
  2410. data/vendor/tracemonkey/tests/js1_5/Regress/regress-82306.js +82 -0
  2411. data/vendor/tracemonkey/tests/js1_5/Regress/regress-89443.js +2153 -0
  2412. data/vendor/tracemonkey/tests/js1_5/Regress/regress-89474.js +85 -0
  2413. data/vendor/tracemonkey/tests/js1_5/Regress/regress-90445.js +329 -0
  2414. data/vendor/tracemonkey/tests/js1_5/Regress/regress-96128-n.js +85 -0
  2415. data/vendor/tracemonkey/tests/js1_5/Regress/regress-96526-001.js +537 -0
  2416. data/vendor/tracemonkey/tests/js1_5/Regress/regress-96526-002.js +63 -0
  2417. data/vendor/tracemonkey/tests/js1_5/Regress/regress-96526-003.js +4438 -0
  2418. data/vendor/tracemonkey/tests/js1_5/Regress/regress-98901.js +3925 -0
  2419. data/vendor/tracemonkey/tests/js1_5/Regress/shell.js +1 -0
  2420. data/vendor/tracemonkey/tests/js1_5/Scope/jstests.list +18 -0
  2421. data/vendor/tracemonkey/tests/js1_5/Scope/regress-154693.js +101 -0
  2422. data/vendor/tracemonkey/tests/js1_5/Scope/regress-181834.js +183 -0
  2423. data/vendor/tracemonkey/tests/js1_5/Scope/regress-184107.js +127 -0
  2424. data/vendor/tracemonkey/tests/js1_5/Scope/regress-185485.js +163 -0
  2425. data/vendor/tracemonkey/tests/js1_5/Scope/regress-191276.js +128 -0
  2426. data/vendor/tracemonkey/tests/js1_5/Scope/regress-192226.js +125 -0
  2427. data/vendor/tracemonkey/tests/js1_5/Scope/regress-202678-001.js +136 -0
  2428. data/vendor/tracemonkey/tests/js1_5/Scope/regress-202678-002.js +137 -0
  2429. data/vendor/tracemonkey/tests/js1_5/Scope/regress-208496-001.js +174 -0
  2430. data/vendor/tracemonkey/tests/js1_5/Scope/regress-208496-002.js +166 -0
  2431. data/vendor/tracemonkey/tests/js1_5/Scope/regress-220362.js +116 -0
  2432. data/vendor/tracemonkey/tests/js1_5/Scope/regress-446026-01.js +84 -0
  2433. data/vendor/tracemonkey/tests/js1_5/Scope/regress-446026-02.js +60 -0
  2434. data/vendor/tracemonkey/tests/js1_5/Scope/regress-77578-001.js +184 -0
  2435. data/vendor/tracemonkey/tests/js1_5/Scope/scope-002.js +142 -0
  2436. data/vendor/tracemonkey/tests/js1_5/Scope/scope-003.js +143 -0
  2437. data/vendor/tracemonkey/tests/js1_5/Scope/scope-004.js +225 -0
  2438. data/vendor/tracemonkey/tests/js1_5/Scope/shell.js +1 -0
  2439. data/vendor/tracemonkey/tests/js1_5/String/jstests.list +9 -0
  2440. data/vendor/tracemonkey/tests/js1_5/String/regress-107771.js +125 -0
  2441. data/vendor/tracemonkey/tests/js1_5/String/regress-112626.js +52 -0
  2442. data/vendor/tracemonkey/tests/js1_5/String/regress-157334-01.js +90 -0
  2443. data/vendor/tracemonkey/tests/js1_5/String/regress-179068.js +159 -0
  2444. data/vendor/tracemonkey/tests/js1_5/String/regress-314890.js +84 -0
  2445. data/vendor/tracemonkey/tests/js1_5/String/regress-322772.js +84 -0
  2446. data/vendor/tracemonkey/tests/js1_5/String/regress-56940-01.js +81 -0
  2447. data/vendor/tracemonkey/tests/js1_5/String/regress-56940-02.js +81 -0
  2448. data/vendor/tracemonkey/tests/js1_5/String/shell.js +1 -0
  2449. data/vendor/tracemonkey/tests/js1_5/browser.js +37 -0
  2450. data/vendor/tracemonkey/tests/js1_5/decompilation/jstests.list +65 -0
  2451. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-344120.js +62 -0
  2452. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-346892.js +62 -0
  2453. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-346902.js +91 -0
  2454. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-346904.js +156 -0
  2455. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-346915.js +64 -0
  2456. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349484.js +69 -0
  2457. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349489.js +69 -0
  2458. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349491.js +79 -0
  2459. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349596.js +63 -0
  2460. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349650.js +65 -0
  2461. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-349663.js +68 -0
  2462. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350242.js +69 -0
  2463. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350263.js +64 -0
  2464. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350271.js +64 -0
  2465. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350666.js +93 -0
  2466. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-350670.js +69 -0
  2467. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351104.js +65 -0
  2468. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351219.js +67 -0
  2469. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351336.js +63 -0
  2470. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351597.js +64 -0
  2471. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351625.js +64 -0
  2472. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351626.js +64 -0
  2473. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351693.js +65 -0
  2474. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351705.js +65 -0
  2475. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-351793.js +65 -0
  2476. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352013.js +93 -0
  2477. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352022.js +63 -0
  2478. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352073.js +69 -0
  2479. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352202.js +64 -0
  2480. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352312.js +69 -0
  2481. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352360.js +70 -0
  2482. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352375.js +62 -0
  2483. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352453.js +63 -0
  2484. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352649.js +63 -0
  2485. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352873-01.js +68 -0
  2486. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-352873-02.js +68 -0
  2487. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-353000.js +63 -0
  2488. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-353120.js +63 -0
  2489. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-353146.js +69 -0
  2490. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-354878.js +62 -0
  2491. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-354910.js +63 -0
  2492. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-355992.js +62 -0
  2493. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-356083.js +66 -0
  2494. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-356248.js +63 -0
  2495. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-371692.js +62 -0
  2496. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-373678.js +62 -0
  2497. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-375639.js +68 -0
  2498. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-375882.js +76 -0
  2499. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-376564.js +67 -0
  2500. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-383721.js +66 -0
  2501. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-406555.js +69 -0
  2502. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-437288-02.js +64 -0
  2503. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-443071-01.js +61 -0
  2504. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-456964-01.js +74 -0
  2505. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-457093-01.js +77 -0
  2506. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-457824.js +66 -0
  2507. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460116-01.js +65 -0
  2508. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460116-02.js +65 -0
  2509. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460116-03.js +65 -0
  2510. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460501.js +71 -0
  2511. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-460870.js +63 -0
  2512. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-461108.js +64 -0
  2513. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-461110.js +64 -0
  2514. data/vendor/tracemonkey/tests/js1_5/decompilation/regress-461111.js +64 -0
  2515. data/vendor/tracemonkey/tests/js1_5/decompilation/shell.js +2 -0
  2516. data/vendor/tracemonkey/tests/js1_5/extensions/catchguard-001-n.js +79 -0
  2517. data/vendor/tracemonkey/tests/js1_5/extensions/catchguard-001.js +83 -0
  2518. data/vendor/tracemonkey/tests/js1_5/extensions/catchguard-002.js +79 -0
  2519. data/vendor/tracemonkey/tests/js1_5/extensions/catchguard-003.js +94 -0
  2520. data/vendor/tracemonkey/tests/js1_5/extensions/getset-001.js +90 -0
  2521. data/vendor/tracemonkey/tests/js1_5/extensions/getset-003.js +211 -0
  2522. data/vendor/tracemonkey/tests/js1_5/extensions/getset-004.js +211 -0
  2523. data/vendor/tracemonkey/tests/js1_5/extensions/getset-005.js +220 -0
  2524. data/vendor/tracemonkey/tests/js1_5/extensions/getset-006.js +194 -0
  2525. data/vendor/tracemonkey/tests/js1_5/extensions/jstests.list +241 -0
  2526. data/vendor/tracemonkey/tests/js1_5/extensions/no-such-method.js +69 -0
  2527. data/vendor/tracemonkey/tests/js1_5/extensions/regress-104077.js +233 -0
  2528. data/vendor/tracemonkey/tests/js1_5/extensions/regress-164697.js +112 -0
  2529. data/vendor/tracemonkey/tests/js1_5/extensions/regress-178722.js +127 -0
  2530. data/vendor/tracemonkey/tests/js1_5/extensions/regress-192465.js +157 -0
  2531. data/vendor/tracemonkey/tests/js1_5/extensions/regress-220584.js +147 -0
  2532. data/vendor/tracemonkey/tests/js1_5/extensions/regress-225831.js +196 -0
  2533. data/vendor/tracemonkey/tests/js1_5/extensions/regress-226078.js +61 -0
  2534. data/vendor/tracemonkey/tests/js1_5/extensions/regress-226507.js +187 -0
  2535. data/vendor/tracemonkey/tests/js1_5/extensions/regress-231518.js +136 -0
  2536. data/vendor/tracemonkey/tests/js1_5/extensions/regress-237461.js +80 -0
  2537. data/vendor/tracemonkey/tests/js1_5/extensions/regress-245148.js +55 -0
  2538. data/vendor/tracemonkey/tests/js1_5/extensions/regress-245795.js +67 -0
  2539. data/vendor/tracemonkey/tests/js1_5/extensions/regress-254375.js +63 -0
  2540. data/vendor/tracemonkey/tests/js1_5/extensions/regress-255245.js +65 -0
  2541. data/vendor/tracemonkey/tests/js1_5/extensions/regress-291213.js +81 -0
  2542. data/vendor/tracemonkey/tests/js1_5/extensions/regress-300079.js +80 -0
  2543. data/vendor/tracemonkey/tests/js1_5/extensions/regress-303277.js +52 -0
  2544. data/vendor/tracemonkey/tests/js1_5/extensions/regress-304897.js +53 -0
  2545. data/vendor/tracemonkey/tests/js1_5/extensions/regress-306738.js +58 -0
  2546. data/vendor/tracemonkey/tests/js1_5/extensions/regress-311161.js +1471 -0
  2547. data/vendor/tracemonkey/tests/js1_5/extensions/regress-311583.js +54 -0
  2548. data/vendor/tracemonkey/tests/js1_5/extensions/regress-311792-01.js +59 -0
  2549. data/vendor/tracemonkey/tests/js1_5/extensions/regress-311792-02.js +73 -0
  2550. data/vendor/tracemonkey/tests/js1_5/extensions/regress-312278.js +75 -0
  2551. data/vendor/tracemonkey/tests/js1_5/extensions/regress-313500.js +62 -0
  2552. data/vendor/tracemonkey/tests/js1_5/extensions/regress-313630.js +71 -0
  2553. data/vendor/tracemonkey/tests/js1_5/extensions/regress-313763.js +79 -0
  2554. data/vendor/tracemonkey/tests/js1_5/extensions/regress-313803.js +57 -0
  2555. data/vendor/tracemonkey/tests/js1_5/extensions/regress-313938.js +87 -0
  2556. data/vendor/tracemonkey/tests/js1_5/extensions/regress-314874.js +73 -0
  2557. data/vendor/tracemonkey/tests/js1_5/extensions/regress-315509-02.js +75 -0
  2558. data/vendor/tracemonkey/tests/js1_5/extensions/regress-319683.js +64 -0
  2559. data/vendor/tracemonkey/tests/js1_5/extensions/regress-322957.js +60 -0
  2560. data/vendor/tracemonkey/tests/js1_5/extensions/regress-325269.js +93 -0
  2561. data/vendor/tracemonkey/tests/js1_5/extensions/regress-327608.js +81 -0
  2562. data/vendor/tracemonkey/tests/js1_5/extensions/regress-328443.js +65 -0
  2563. data/vendor/tracemonkey/tests/js1_5/extensions/regress-328556.js +52 -0
  2564. data/vendor/tracemonkey/tests/js1_5/extensions/regress-330569.js +129 -0
  2565. data/vendor/tracemonkey/tests/js1_5/extensions/regress-333541.js +123 -0
  2566. data/vendor/tracemonkey/tests/js1_5/extensions/regress-335700.js +127 -0
  2567. data/vendor/tracemonkey/tests/js1_5/extensions/regress-336409-1.js +82 -0
  2568. data/vendor/tracemonkey/tests/js1_5/extensions/regress-336409-2.js +82 -0
  2569. data/vendor/tracemonkey/tests/js1_5/extensions/regress-336410-1.js +82 -0
  2570. data/vendor/tracemonkey/tests/js1_5/extensions/regress-336410-2.js +82 -0
  2571. data/vendor/tracemonkey/tests/js1_5/extensions/regress-338804-01.js +102 -0
  2572. data/vendor/tracemonkey/tests/js1_5/extensions/regress-338804-02.js +103 -0
  2573. data/vendor/tracemonkey/tests/js1_5/extensions/regress-338804-03.js +62 -0
  2574. data/vendor/tracemonkey/tests/js1_5/extensions/regress-339685.js +60 -0
  2575. data/vendor/tracemonkey/tests/js1_5/extensions/regress-340199.js +82 -0
  2576. data/vendor/tracemonkey/tests/js1_5/extensions/regress-341956-01.js +101 -0
  2577. data/vendor/tracemonkey/tests/js1_5/extensions/regress-341956-02.js +88 -0
  2578. data/vendor/tracemonkey/tests/js1_5/extensions/regress-341956-03.js +105 -0
  2579. data/vendor/tracemonkey/tests/js1_5/extensions/regress-342960.js +87 -0
  2580. data/vendor/tracemonkey/tests/js1_5/extensions/regress-345967.js +100 -0
  2581. data/vendor/tracemonkey/tests/js1_5/extensions/regress-346494-01.js +123 -0
  2582. data/vendor/tracemonkey/tests/js1_5/extensions/regress-346494.js +141 -0
  2583. data/vendor/tracemonkey/tests/js1_5/extensions/regress-347306-02.js +84 -0
  2584. data/vendor/tracemonkey/tests/js1_5/extensions/regress-348986.js +161 -0
  2585. data/vendor/tracemonkey/tests/js1_5/extensions/regress-349616.js +69 -0
  2586. data/vendor/tracemonkey/tests/js1_5/extensions/regress-350312-01.js +83 -0
  2587. data/vendor/tracemonkey/tests/js1_5/extensions/regress-350312-02.js +145 -0
  2588. data/vendor/tracemonkey/tests/js1_5/extensions/regress-350312-03.js +149 -0
  2589. data/vendor/tracemonkey/tests/js1_5/extensions/regress-350531.js +188 -0
  2590. data/vendor/tracemonkey/tests/js1_5/extensions/regress-351102-01.js +72 -0
  2591. data/vendor/tracemonkey/tests/js1_5/extensions/regress-351102-02.js +78 -0
  2592. data/vendor/tracemonkey/tests/js1_5/extensions/regress-351102-06.js +67 -0
  2593. data/vendor/tracemonkey/tests/js1_5/extensions/regress-351448.js +96 -0
  2594. data/vendor/tracemonkey/tests/js1_5/extensions/regress-351463-01.js +287 -0
  2595. data/vendor/tracemonkey/tests/js1_5/extensions/regress-351973.js +84 -0
  2596. data/vendor/tracemonkey/tests/js1_5/extensions/regress-352060.js +80 -0
  2597. data/vendor/tracemonkey/tests/js1_5/extensions/regress-352094.js +79 -0
  2598. data/vendor/tracemonkey/tests/js1_5/extensions/regress-352261.js +81 -0
  2599. data/vendor/tracemonkey/tests/js1_5/extensions/regress-352281.js +67 -0
  2600. data/vendor/tracemonkey/tests/js1_5/extensions/regress-352291.js +74 -0
  2601. data/vendor/tracemonkey/tests/js1_5/extensions/regress-352372.js +98 -0
  2602. data/vendor/tracemonkey/tests/js1_5/extensions/regress-352455.js +67 -0
  2603. data/vendor/tracemonkey/tests/js1_5/extensions/regress-352604.js +66 -0
  2604. data/vendor/tracemonkey/tests/js1_5/extensions/regress-353214.js +62 -0
  2605. data/vendor/tracemonkey/tests/js1_5/extensions/regress-354297.js +63 -0
  2606. data/vendor/tracemonkey/tests/js1_5/extensions/regress-354541-01.js +68 -0
  2607. data/vendor/tracemonkey/tests/js1_5/extensions/regress-354541-02.js +77 -0
  2608. data/vendor/tracemonkey/tests/js1_5/extensions/regress-354541-03.js +89 -0
  2609. data/vendor/tracemonkey/tests/js1_5/extensions/regress-354541-04.js +94 -0
  2610. data/vendor/tracemonkey/tests/js1_5/extensions/regress-355339.js +65 -0
  2611. data/vendor/tracemonkey/tests/js1_5/extensions/regress-355497.js +94 -0
  2612. data/vendor/tracemonkey/tests/js1_5/extensions/regress-355622.js +67 -0
  2613. data/vendor/tracemonkey/tests/js1_5/extensions/regress-355655.js +78 -0
  2614. data/vendor/tracemonkey/tests/js1_5/extensions/regress-355736.js +72 -0
  2615. data/vendor/tracemonkey/tests/js1_5/extensions/regress-355820.js +64 -0
  2616. data/vendor/tracemonkey/tests/js1_5/extensions/regress-355982.js +76 -0
  2617. data/vendor/tracemonkey/tests/js1_5/extensions/regress-356085.js +62 -0
  2618. data/vendor/tracemonkey/tests/js1_5/extensions/regress-356106.js +61 -0
  2619. data/vendor/tracemonkey/tests/js1_5/extensions/regress-356378.js +69 -0
  2620. data/vendor/tracemonkey/tests/js1_5/extensions/regress-356402.js +56 -0
  2621. data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-01.js +65 -0
  2622. data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-02.js +54 -0
  2623. data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-03.js +64 -0
  2624. data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-04.js +54 -0
  2625. data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-05.js +65 -0
  2626. data/vendor/tracemonkey/tests/js1_5/extensions/regress-358594-06.js +54 -0
  2627. data/vendor/tracemonkey/tests/js1_5/extensions/regress-359024.js +69 -0
  2628. data/vendor/tracemonkey/tests/js1_5/extensions/regress-361346.js +55 -0
  2629. data/vendor/tracemonkey/tests/js1_5/extensions/regress-361360.js +65 -0
  2630. data/vendor/tracemonkey/tests/js1_5/extensions/regress-361552.js +60 -0
  2631. data/vendor/tracemonkey/tests/js1_5/extensions/regress-361558.js +52 -0
  2632. data/vendor/tracemonkey/tests/js1_5/extensions/regress-361571.js +71 -0
  2633. data/vendor/tracemonkey/tests/js1_5/extensions/regress-361856.js +68 -0
  2634. data/vendor/tracemonkey/tests/js1_5/extensions/regress-361964.js +81 -0
  2635. data/vendor/tracemonkey/tests/js1_5/extensions/regress-363258.js +80 -0
  2636. data/vendor/tracemonkey/tests/js1_5/extensions/regress-363988.js +82 -0
  2637. data/vendor/tracemonkey/tests/js1_5/extensions/regress-365527.js +99 -0
  2638. data/vendor/tracemonkey/tests/js1_5/extensions/regress-365692.js +73 -0
  2639. data/vendor/tracemonkey/tests/js1_5/extensions/regress-365869.js +115 -0
  2640. data/vendor/tracemonkey/tests/js1_5/extensions/regress-366288.js +51 -0
  2641. data/vendor/tracemonkey/tests/js1_5/extensions/regress-366292.js +52 -0
  2642. data/vendor/tracemonkey/tests/js1_5/extensions/regress-366396.js +50 -0
  2643. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367118-01.js +74 -0
  2644. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367118-02.js +74 -0
  2645. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367119-01.js +74 -0
  2646. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367119-02.js +74 -0
  2647. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367120-01.js +74 -0
  2648. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367120-02.js +74 -0
  2649. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367121.js +97 -0
  2650. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367501-01.js +68 -0
  2651. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367501-02.js +70 -0
  2652. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367501-03.js +71 -0
  2653. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367501-04.js +71 -0
  2654. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367589.js +81 -0
  2655. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367630.js +77 -0
  2656. data/vendor/tracemonkey/tests/js1_5/extensions/regress-367923.js +83 -0
  2657. data/vendor/tracemonkey/tests/js1_5/extensions/regress-368859.js +70 -0
  2658. data/vendor/tracemonkey/tests/js1_5/extensions/regress-369404.js +81 -0
  2659. data/vendor/tracemonkey/tests/js1_5/extensions/regress-369696-01.js +64 -0
  2660. data/vendor/tracemonkey/tests/js1_5/extensions/regress-369696-02.js +72 -0
  2661. data/vendor/tracemonkey/tests/js1_5/extensions/regress-369696-03.js +80 -0
  2662. data/vendor/tracemonkey/tests/js1_5/extensions/regress-371636.js +88 -0
  2663. data/vendor/tracemonkey/tests/js1_5/extensions/regress-372309.js +80 -0
  2664. data/vendor/tracemonkey/tests/js1_5/extensions/regress-374589.js +67 -0
  2665. data/vendor/tracemonkey/tests/js1_5/extensions/regress-375183.js +95 -0
  2666. data/vendor/tracemonkey/tests/js1_5/extensions/regress-375344.js +67 -0
  2667. data/vendor/tracemonkey/tests/js1_5/extensions/regress-375801.js +69 -0
  2668. data/vendor/tracemonkey/tests/js1_5/extensions/regress-376052.js +104 -0
  2669. data/vendor/tracemonkey/tests/js1_5/extensions/regress-379523.js +71 -0
  2670. data/vendor/tracemonkey/tests/js1_5/extensions/regress-380581.js +70 -0
  2671. data/vendor/tracemonkey/tests/js1_5/extensions/regress-380831.js +81 -0
  2672. data/vendor/tracemonkey/tests/js1_5/extensions/regress-380889.js +73 -0
  2673. data/vendor/tracemonkey/tests/js1_5/extensions/regress-381205.js +52 -0
  2674. data/vendor/tracemonkey/tests/js1_5/extensions/regress-381211.js +62 -0
  2675. data/vendor/tracemonkey/tests/js1_5/extensions/regress-381304.js +113 -0
  2676. data/vendor/tracemonkey/tests/js1_5/extensions/regress-382509.js +118 -0
  2677. data/vendor/tracemonkey/tests/js1_5/extensions/regress-383965.js +57 -0
  2678. data/vendor/tracemonkey/tests/js1_5/extensions/regress-384680.js +67 -0
  2679. data/vendor/tracemonkey/tests/js1_5/extensions/regress-385134.js +67 -0
  2680. data/vendor/tracemonkey/tests/js1_5/extensions/regress-385393-02.js +67 -0
  2681. data/vendor/tracemonkey/tests/js1_5/extensions/regress-385393-09.js +51 -0
  2682. data/vendor/tracemonkey/tests/js1_5/extensions/regress-390597.js +75 -0
  2683. data/vendor/tracemonkey/tests/js1_5/extensions/regress-394967.js +75 -0
  2684. data/vendor/tracemonkey/tests/js1_5/extensions/regress-396326.js +81 -0
  2685. data/vendor/tracemonkey/tests/js1_5/extensions/regress-406572.js +77 -0
  2686. data/vendor/tracemonkey/tests/js1_5/extensions/regress-407019.js +70 -0
  2687. data/vendor/tracemonkey/tests/js1_5/extensions/regress-407501.js +74 -0
  2688. data/vendor/tracemonkey/tests/js1_5/extensions/regress-407720.js +84 -0
  2689. data/vendor/tracemonkey/tests/js1_5/extensions/regress-412926.js +90 -0
  2690. data/vendor/tracemonkey/tests/js1_5/extensions/regress-414755.js +86 -0
  2691. data/vendor/tracemonkey/tests/js1_5/extensions/regress-416354.js +80 -0
  2692. data/vendor/tracemonkey/tests/js1_5/extensions/regress-416460.js +63 -0
  2693. data/vendor/tracemonkey/tests/js1_5/extensions/regress-416834.js +53 -0
  2694. data/vendor/tracemonkey/tests/js1_5/extensions/regress-418730.js +65 -0
  2695. data/vendor/tracemonkey/tests/js1_5/extensions/regress-420612.js +61 -0
  2696. data/vendor/tracemonkey/tests/js1_5/extensions/regress-420869-01.js +73 -0
  2697. data/vendor/tracemonkey/tests/js1_5/extensions/regress-421621.js +54 -0
  2698. data/vendor/tracemonkey/tests/js1_5/extensions/regress-422137.js +67 -0
  2699. data/vendor/tracemonkey/tests/js1_5/extensions/regress-422592.js +103 -0
  2700. data/vendor/tracemonkey/tests/js1_5/extensions/regress-424257.js +69 -0
  2701. data/vendor/tracemonkey/tests/js1_5/extensions/regress-424683-01.js +69 -0
  2702. data/vendor/tracemonkey/tests/js1_5/extensions/regress-426711.js +67 -0
  2703. data/vendor/tracemonkey/tests/js1_5/extensions/regress-427196-01.js +73 -0
  2704. data/vendor/tracemonkey/tests/js1_5/extensions/regress-427196-02.js +70 -0
  2705. data/vendor/tracemonkey/tests/js1_5/extensions/regress-427196-03.js +64 -0
  2706. data/vendor/tracemonkey/tests/js1_5/extensions/regress-429264.js +65 -0
  2707. data/vendor/tracemonkey/tests/js1_5/extensions/regress-431428.js +70 -0
  2708. data/vendor/tracemonkey/tests/js1_5/extensions/regress-432075.js +57 -0
  2709. data/vendor/tracemonkey/tests/js1_5/extensions/regress-434837-01.js +123 -0
  2710. data/vendor/tracemonkey/tests/js1_5/extensions/regress-435345-01.js +132 -0
  2711. data/vendor/tracemonkey/tests/js1_5/extensions/regress-435497-01.js +68 -0
  2712. data/vendor/tracemonkey/tests/js1_5/extensions/regress-435497-02.js +68 -0
  2713. data/vendor/tracemonkey/tests/js1_5/extensions/regress-435497-03.js +68 -0
  2714. data/vendor/tracemonkey/tests/js1_5/extensions/regress-436741.js +68 -0
  2715. data/vendor/tracemonkey/tests/js1_5/extensions/regress-437288-01.js +61 -0
  2716. data/vendor/tracemonkey/tests/js1_5/extensions/regress-44009.js +86 -0
  2717. data/vendor/tracemonkey/tests/js1_5/extensions/regress-443569.js +74 -0
  2718. data/vendor/tracemonkey/tests/js1_5/extensions/regress-446386.js +80 -0
  2719. data/vendor/tracemonkey/tests/js1_5/extensions/regress-449657.js +92 -0
  2720. data/vendor/tracemonkey/tests/js1_5/extensions/regress-452168.js +72 -0
  2721. data/vendor/tracemonkey/tests/js1_5/extensions/regress-452178.js +64 -0
  2722. data/vendor/tracemonkey/tests/js1_5/extensions/regress-452329.js +60 -0
  2723. data/vendor/tracemonkey/tests/js1_5/extensions/regress-452338.js +64 -0
  2724. data/vendor/tracemonkey/tests/js1_5/extensions/regress-452372.js +64 -0
  2725. data/vendor/tracemonkey/tests/js1_5/extensions/regress-452565.js +54 -0
  2726. data/vendor/tracemonkey/tests/js1_5/extensions/regress-453249.js +56 -0
  2727. data/vendor/tracemonkey/tests/js1_5/extensions/regress-454040.js +59 -0
  2728. data/vendor/tracemonkey/tests/js1_5/extensions/regress-454142.js +62 -0
  2729. data/vendor/tracemonkey/tests/js1_5/extensions/regress-454704.js +88 -0
  2730. data/vendor/tracemonkey/tests/js1_5/extensions/regress-455380.js +93 -0
  2731. data/vendor/tracemonkey/tests/js1_5/extensions/regress-455408.js +64 -0
  2732. data/vendor/tracemonkey/tests/js1_5/extensions/regress-455413.js +59 -0
  2733. data/vendor/tracemonkey/tests/js1_5/extensions/regress-459606.js +62 -0
  2734. data/vendor/tracemonkey/tests/js1_5/extensions/regress-462734-02.js +64 -0
  2735. data/vendor/tracemonkey/tests/js1_5/extensions/regress-462734-03.js +63 -0
  2736. data/vendor/tracemonkey/tests/js1_5/extensions/regress-462734-04.js +66 -0
  2737. data/vendor/tracemonkey/tests/js1_5/extensions/regress-465276.js +69 -0
  2738. data/vendor/tracemonkey/tests/js1_5/extensions/regress-469625.js +67 -0
  2739. data/vendor/tracemonkey/tests/js1_5/extensions/regress-469761.js +66 -0
  2740. data/vendor/tracemonkey/tests/js1_5/extensions/regress-472599.js +67 -0
  2741. data/vendor/tracemonkey/tests/js1_5/extensions/regress-472787.js +63 -0
  2742. data/vendor/tracemonkey/tests/js1_5/extensions/regress-476447.js +66 -0
  2743. data/vendor/tracemonkey/tests/js1_5/extensions/regress-479487.js +79 -0
  2744. data/vendor/tracemonkey/tests/js1_5/extensions/regress-479551.js +77 -0
  2745. data/vendor/tracemonkey/tests/js1_5/extensions/regress-480579.js +69 -0
  2746. data/vendor/tracemonkey/tests/js1_5/extensions/regress-481516.js +72 -0
  2747. data/vendor/tracemonkey/tests/js1_5/extensions/regress-488995.js +79 -0
  2748. data/vendor/tracemonkey/tests/js1_5/extensions/regress-50447-1.js +210 -0
  2749. data/vendor/tracemonkey/tests/js1_5/extensions/regress-50447.js +169 -0
  2750. data/vendor/tracemonkey/tests/js1_5/extensions/regress-90596-001.js +299 -0
  2751. data/vendor/tracemonkey/tests/js1_5/extensions/regress-90596-002.js +299 -0
  2752. data/vendor/tracemonkey/tests/js1_5/extensions/regress-96284-001.js +182 -0
  2753. data/vendor/tracemonkey/tests/js1_5/extensions/regress-96284-002.js +182 -0
  2754. data/vendor/tracemonkey/tests/js1_5/extensions/scope-001.js +117 -0
  2755. data/vendor/tracemonkey/tests/js1_5/extensions/shell.js +1 -0
  2756. data/vendor/tracemonkey/tests/js1_5/extensions/toLocaleFormat-01.js +271 -0
  2757. data/vendor/tracemonkey/tests/js1_5/extensions/toLocaleFormat-02.js +138 -0
  2758. data/vendor/tracemonkey/tests/js1_5/jstests.list +15 -0
  2759. data/vendor/tracemonkey/tests/js1_5/shell.js +41 -0
  2760. data/vendor/tracemonkey/tests/js1_5/template.js +59 -0
  2761. data/vendor/tracemonkey/tests/js1_6/Array/filter.js +86 -0
  2762. data/vendor/tracemonkey/tests/js1_6/Array/jstests.list +13 -0
  2763. data/vendor/tracemonkey/tests/js1_6/Array/regress-290592.js +695 -0
  2764. data/vendor/tracemonkey/tests/js1_6/Array/regress-304828.js +272 -0
  2765. data/vendor/tracemonkey/tests/js1_6/Array/regress-305002.js +58 -0
  2766. data/vendor/tracemonkey/tests/js1_6/Array/regress-310425-01.js +60 -0
  2767. data/vendor/tracemonkey/tests/js1_6/Array/regress-310425-02.js +50 -0
  2768. data/vendor/tracemonkey/tests/js1_6/Array/regress-320887.js +57 -0
  2769. data/vendor/tracemonkey/tests/js1_6/Array/regress-352742-01.js +73 -0
  2770. data/vendor/tracemonkey/tests/js1_6/Array/regress-352742-02.js +65 -0
  2771. data/vendor/tracemonkey/tests/js1_6/Array/regress-386030.js +98 -0
  2772. data/vendor/tracemonkey/tests/js1_6/Array/regress-415451.js +57 -0
  2773. data/vendor/tracemonkey/tests/js1_6/Array/regress-415540.js +54 -0
  2774. data/vendor/tracemonkey/tests/js1_6/Array/shell.js +1 -0
  2775. data/vendor/tracemonkey/tests/js1_6/README +1 -0
  2776. data/vendor/tracemonkey/tests/js1_6/Regress/jstests.list +16 -0
  2777. data/vendor/tracemonkey/tests/js1_6/Regress/regress-301574.js +69 -0
  2778. data/vendor/tracemonkey/tests/js1_6/Regress/regress-311157-01.js +57 -0
  2779. data/vendor/tracemonkey/tests/js1_6/Regress/regress-311157-02.js +57 -0
  2780. data/vendor/tracemonkey/tests/js1_6/Regress/regress-314887.js +53 -0
  2781. data/vendor/tracemonkey/tests/js1_6/Regress/regress-320172.js +58 -0
  2782. data/vendor/tracemonkey/tests/js1_6/Regress/regress-350417.js +69 -0
  2783. data/vendor/tracemonkey/tests/js1_6/Regress/regress-351795.js +69 -0
  2784. data/vendor/tracemonkey/tests/js1_6/Regress/regress-352271.js +67 -0
  2785. data/vendor/tracemonkey/tests/js1_6/Regress/regress-353078.js +65 -0
  2786. data/vendor/tracemonkey/tests/js1_6/Regress/regress-355002.js +70 -0
  2787. data/vendor/tracemonkey/tests/js1_6/Regress/regress-372565.js +61 -0
  2788. data/vendor/tracemonkey/tests/js1_6/Regress/regress-378492.js +65 -0
  2789. data/vendor/tracemonkey/tests/js1_6/Regress/regress-382509.js +78 -0
  2790. data/vendor/tracemonkey/tests/js1_6/Regress/regress-475469.js +68 -0
  2791. data/vendor/tracemonkey/tests/js1_6/Regress/regress-476655.js +75 -0
  2792. data/vendor/tracemonkey/tests/js1_6/Regress/shell.js +1 -0
  2793. data/vendor/tracemonkey/tests/js1_6/String/jstests.list +2 -0
  2794. data/vendor/tracemonkey/tests/js1_6/String/regress-306591.js +99 -0
  2795. data/vendor/tracemonkey/tests/js1_6/String/shell.js +1 -0
  2796. data/vendor/tracemonkey/tests/js1_6/browser.js +36 -0
  2797. data/vendor/tracemonkey/tests/js1_6/decompilation/jstests.list +4 -0
  2798. data/vendor/tracemonkey/tests/js1_6/decompilation/regress-352084.js +79 -0
  2799. data/vendor/tracemonkey/tests/js1_6/decompilation/regress-352613-01.js +73 -0
  2800. data/vendor/tracemonkey/tests/js1_6/decompilation/regress-352613-02.js +73 -0
  2801. data/vendor/tracemonkey/tests/js1_6/decompilation/shell.js +1 -0
  2802. data/vendor/tracemonkey/tests/js1_6/extensions/jstests.list +15 -0
  2803. data/vendor/tracemonkey/tests/js1_6/extensions/regress-312385-01.js +155 -0
  2804. data/vendor/tracemonkey/tests/js1_6/extensions/regress-352392.js +71 -0
  2805. data/vendor/tracemonkey/tests/js1_6/extensions/regress-385393-08.js +58 -0
  2806. data/vendor/tracemonkey/tests/js1_6/extensions/regress-414098.js +72 -0
  2807. data/vendor/tracemonkey/tests/js1_6/extensions/regress-455464-01.js +54 -0
  2808. data/vendor/tracemonkey/tests/js1_6/extensions/regress-455464-02.js +64 -0
  2809. data/vendor/tracemonkey/tests/js1_6/extensions/regress-455464-03.js +66 -0
  2810. data/vendor/tracemonkey/tests/js1_6/extensions/regress-455464-04.js +63 -0
  2811. data/vendor/tracemonkey/tests/js1_6/extensions/regress-456826.js +159 -0
  2812. data/vendor/tracemonkey/tests/js1_6/extensions/regress-457521.js +57 -0
  2813. data/vendor/tracemonkey/tests/js1_6/extensions/regress-465443.js +74 -0
  2814. data/vendor/tracemonkey/tests/js1_6/extensions/regress-470310.js +66 -0
  2815. data/vendor/tracemonkey/tests/js1_6/extensions/regress-472508.js +59 -0
  2816. data/vendor/tracemonkey/tests/js1_6/extensions/regress-475144.js +58 -0
  2817. data/vendor/tracemonkey/tests/js1_6/extensions/shell.js +1 -0
  2818. data/vendor/tracemonkey/tests/js1_6/jstests.list +5 -0
  2819. data/vendor/tracemonkey/tests/js1_6/shell.js +47 -0
  2820. data/vendor/tracemonkey/tests/js1_6/template.js +59 -0
  2821. data/vendor/tracemonkey/tests/js1_7/GC/jstests.list +3 -0
  2822. data/vendor/tracemonkey/tests/js1_7/GC/regress-341675.js +68 -0
  2823. data/vendor/tracemonkey/tests/js1_7/GC/regress-381374.js +92 -0
  2824. data/vendor/tracemonkey/tests/js1_7/GC/shell.js +1 -0
  2825. data/vendor/tracemonkey/tests/js1_7/README +1 -0
  2826. data/vendor/tracemonkey/tests/js1_7/block/jstests.list +37 -0
  2827. data/vendor/tracemonkey/tests/js1_7/block/order-of-operation.js +185 -0
  2828. data/vendor/tracemonkey/tests/js1_7/block/regress-341939.js +58 -0
  2829. data/vendor/tracemonkey/tests/js1_7/block/regress-343765.js +129 -0
  2830. data/vendor/tracemonkey/tests/js1_7/block/regress-344139.js +125 -0
  2831. data/vendor/tracemonkey/tests/js1_7/block/regress-344262.js +73 -0
  2832. data/vendor/tracemonkey/tests/js1_7/block/regress-344370.js +61 -0
  2833. data/vendor/tracemonkey/tests/js1_7/block/regress-344601.js +70 -0
  2834. data/vendor/tracemonkey/tests/js1_7/block/regress-345542.js +63 -0
  2835. data/vendor/tracemonkey/tests/js1_7/block/regress-347559.js +110 -0
  2836. data/vendor/tracemonkey/tests/js1_7/block/regress-348685.js +80 -0
  2837. data/vendor/tracemonkey/tests/js1_7/block/regress-349283.js +63 -0
  2838. data/vendor/tracemonkey/tests/js1_7/block/regress-349298.js +71 -0
  2839. data/vendor/tracemonkey/tests/js1_7/block/regress-349507.js +69 -0
  2840. data/vendor/tracemonkey/tests/js1_7/block/regress-349653.js +63 -0
  2841. data/vendor/tracemonkey/tests/js1_7/block/regress-349962.js +60 -0
  2842. data/vendor/tracemonkey/tests/js1_7/block/regress-350279.js +69 -0
  2843. data/vendor/tracemonkey/tests/js1_7/block/regress-350730.js +71 -0
  2844. data/vendor/tracemonkey/tests/js1_7/block/regress-350793-01.js +72 -0
  2845. data/vendor/tracemonkey/tests/js1_7/block/regress-351497.js +69 -0
  2846. data/vendor/tracemonkey/tests/js1_7/block/regress-351606.js +53 -0
  2847. data/vendor/tracemonkey/tests/js1_7/block/regress-351794.js +67 -0
  2848. data/vendor/tracemonkey/tests/js1_7/block/regress-352092.js +71 -0
  2849. data/vendor/tracemonkey/tests/js1_7/block/regress-352185.js +71 -0
  2850. data/vendor/tracemonkey/tests/js1_7/block/regress-352212.js +70 -0
  2851. data/vendor/tracemonkey/tests/js1_7/block/regress-352267.js +61 -0
  2852. data/vendor/tracemonkey/tests/js1_7/block/regress-352422.js +70 -0
  2853. data/vendor/tracemonkey/tests/js1_7/block/regress-352609.js +90 -0
  2854. data/vendor/tracemonkey/tests/js1_7/block/regress-352616.js +95 -0
  2855. data/vendor/tracemonkey/tests/js1_7/block/regress-352624.js +71 -0
  2856. data/vendor/tracemonkey/tests/js1_7/block/regress-352786.js +70 -0
  2857. data/vendor/tracemonkey/tests/js1_7/block/regress-352907.js +70 -0
  2858. data/vendor/tracemonkey/tests/js1_7/block/regress-357754.js +96 -0
  2859. data/vendor/tracemonkey/tests/js1_7/block/regress-358508.js +70 -0
  2860. data/vendor/tracemonkey/tests/js1_7/block/regress-376410.js +70 -0
  2861. data/vendor/tracemonkey/tests/js1_7/block/regress-396900.js +64 -0
  2862. data/vendor/tracemonkey/tests/js1_7/block/regress-411279.js +98 -0
  2863. data/vendor/tracemonkey/tests/js1_7/block/shell.js +1 -0
  2864. data/vendor/tracemonkey/tests/js1_7/browser.js +36 -0
  2865. data/vendor/tracemonkey/tests/js1_7/decompilation/jstests.list +52 -0
  2866. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-346642-01.js +200 -0
  2867. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-348904.js +67 -0
  2868. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349493.js +64 -0
  2869. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349499.js +64 -0
  2870. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349602.js +69 -0
  2871. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349605.js +69 -0
  2872. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349633.js +69 -0
  2873. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-349634.js +64 -0
  2874. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-350704.js +65 -0
  2875. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-350793-02.js +68 -0
  2876. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-350810.js +62 -0
  2877. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-350991.js +87 -0
  2878. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-351070-01.js +102 -0
  2879. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-351070-03.js +173 -0
  2880. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-351496.js +68 -0
  2881. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352008.js +66 -0
  2882. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352011.js +75 -0
  2883. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352015.js +69 -0
  2884. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352022.js +69 -0
  2885. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352025.js +63 -0
  2886. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352026.js +79 -0
  2887. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352068.js +64 -0
  2888. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352079.js +79 -0
  2889. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352198.js +64 -0
  2890. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352217.js +77 -0
  2891. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352266.js +80 -0
  2892. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352268.js +77 -0
  2893. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352269.js +63 -0
  2894. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352272.js +63 -0
  2895. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352283.js +63 -0
  2896. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352402.js +62 -0
  2897. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352415.js +62 -0
  2898. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352441.js +64 -0
  2899. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-352732.js +93 -0
  2900. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355004.js +62 -0
  2901. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355049-01.js +62 -0
  2902. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355049-02.js +62 -0
  2903. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355105.js +62 -0
  2904. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355635.js +62 -0
  2905. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-355786.js +63 -0
  2906. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-356247.js +103 -0
  2907. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-371802.js +63 -0
  2908. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-374713.js +63 -0
  2909. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-375794.js +63 -0
  2910. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-379925.js +63 -0
  2911. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-380506.js +68 -0
  2912. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-381101.js +63 -0
  2913. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-381108.js +64 -0
  2914. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-410571.js +159 -0
  2915. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-410649.js +62 -0
  2916. data/vendor/tracemonkey/tests/js1_7/decompilation/regress-429252.js +70 -0
  2917. data/vendor/tracemonkey/tests/js1_7/decompilation/shell.js +1 -0
  2918. data/vendor/tracemonkey/tests/js1_7/expressions/destructuring-scope.js +96 -0
  2919. data/vendor/tracemonkey/tests/js1_7/expressions/jstests.list +11 -0
  2920. data/vendor/tracemonkey/tests/js1_7/expressions/regress-346203.js +61 -0
  2921. data/vendor/tracemonkey/tests/js1_7/expressions/regress-346645-01.js +68 -0
  2922. data/vendor/tracemonkey/tests/js1_7/expressions/regress-346645-02.js +68 -0
  2923. data/vendor/tracemonkey/tests/js1_7/expressions/regress-346645-03.js +68 -0
  2924. data/vendor/tracemonkey/tests/js1_7/expressions/regress-349624.js +61 -0
  2925. data/vendor/tracemonkey/tests/js1_7/expressions/regress-349818.js +61 -0
  2926. data/vendor/tracemonkey/tests/js1_7/expressions/regress-418051.js +67 -0
  2927. data/vendor/tracemonkey/tests/js1_7/expressions/regress-421806.js +74 -0
  2928. data/vendor/tracemonkey/tests/js1_7/expressions/regress-451340.js +60 -0
  2929. data/vendor/tracemonkey/tests/js1_7/expressions/shell.js +1 -0
  2930. data/vendor/tracemonkey/tests/js1_7/extensions/basic-Iterator.js +198 -0
  2931. data/vendor/tracemonkey/tests/js1_7/extensions/basic-for-each.js +123 -0
  2932. data/vendor/tracemonkey/tests/js1_7/extensions/basic-for-in.js +111 -0
  2933. data/vendor/tracemonkey/tests/js1_7/extensions/destructuring-order.js +185 -0
  2934. data/vendor/tracemonkey/tests/js1_7/extensions/iterator-ctor.js +136 -0
  2935. data/vendor/tracemonkey/tests/js1_7/extensions/jstests.list +65 -0
  2936. data/vendor/tracemonkey/tests/js1_7/extensions/regress-346021.js +78 -0
  2937. data/vendor/tracemonkey/tests/js1_7/extensions/regress-346642-02.js +68 -0
  2938. data/vendor/tracemonkey/tests/js1_7/extensions/regress-346642-06.js +109 -0
  2939. data/vendor/tracemonkey/tests/js1_7/extensions/regress-346773.js +85 -0
  2940. data/vendor/tracemonkey/tests/js1_7/extensions/regress-349619.js +61 -0
  2941. data/vendor/tracemonkey/tests/js1_7/extensions/regress-350312.js +113 -0
  2942. data/vendor/tracemonkey/tests/js1_7/extensions/regress-351070-02.js +102 -0
  2943. data/vendor/tracemonkey/tests/js1_7/extensions/regress-351102-03.js +77 -0
  2944. data/vendor/tracemonkey/tests/js1_7/extensions/regress-351102-04.js +67 -0
  2945. data/vendor/tracemonkey/tests/js1_7/extensions/regress-351102-05.js +67 -0
  2946. data/vendor/tracemonkey/tests/js1_7/extensions/regress-351102-07.js +76 -0
  2947. data/vendor/tracemonkey/tests/js1_7/extensions/regress-352797-01.js +68 -0
  2948. data/vendor/tracemonkey/tests/js1_7/extensions/regress-352885-01.js +62 -0
  2949. data/vendor/tracemonkey/tests/js1_7/extensions/regress-352885-02.js +99 -0
  2950. data/vendor/tracemonkey/tests/js1_7/extensions/regress-353214-01.js +79 -0
  2951. data/vendor/tracemonkey/tests/js1_7/extensions/regress-353214-02.js +63 -0
  2952. data/vendor/tracemonkey/tests/js1_7/extensions/regress-353249.js +67 -0
  2953. data/vendor/tracemonkey/tests/js1_7/extensions/regress-353454.js +70 -0
  2954. data/vendor/tracemonkey/tests/js1_7/extensions/regress-354499-01.js +79 -0
  2955. data/vendor/tracemonkey/tests/js1_7/extensions/regress-354499-02.js +82 -0
  2956. data/vendor/tracemonkey/tests/js1_7/extensions/regress-354945-01.js +63 -0
  2957. data/vendor/tracemonkey/tests/js1_7/extensions/regress-354945-02.js +71 -0
  2958. data/vendor/tracemonkey/tests/js1_7/extensions/regress-355052-01.js +70 -0
  2959. data/vendor/tracemonkey/tests/js1_7/extensions/regress-355052-02.js +70 -0
  2960. data/vendor/tracemonkey/tests/js1_7/extensions/regress-355052-03.js +76 -0
  2961. data/vendor/tracemonkey/tests/js1_7/extensions/regress-355145.js +66 -0
  2962. data/vendor/tracemonkey/tests/js1_7/extensions/regress-355410.js +73 -0
  2963. data/vendor/tracemonkey/tests/js1_7/extensions/regress-355512.js +71 -0
  2964. data/vendor/tracemonkey/tests/js1_7/extensions/regress-355578.js +78 -0
  2965. data/vendor/tracemonkey/tests/js1_7/extensions/regress-355583.js +72 -0
  2966. data/vendor/tracemonkey/tests/js1_7/extensions/regress-363040-01.js +98 -0
  2967. data/vendor/tracemonkey/tests/js1_7/extensions/regress-363040-02.js +97 -0
  2968. data/vendor/tracemonkey/tests/js1_7/extensions/regress-366668-01.js +64 -0
  2969. data/vendor/tracemonkey/tests/js1_7/extensions/regress-366668-02.js +64 -0
  2970. data/vendor/tracemonkey/tests/js1_7/extensions/regress-367629.js +66 -0
  2971. data/vendor/tracemonkey/tests/js1_7/extensions/regress-368213.js +50 -0
  2972. data/vendor/tracemonkey/tests/js1_7/extensions/regress-368224.js +61 -0
  2973. data/vendor/tracemonkey/tests/js1_7/extensions/regress-372364.js +69 -0
  2974. data/vendor/tracemonkey/tests/js1_7/extensions/regress-379482.js +64 -0
  2975. data/vendor/tracemonkey/tests/js1_7/extensions/regress-379566.js +78 -0
  2976. data/vendor/tracemonkey/tests/js1_7/extensions/regress-380933.js +75 -0
  2977. data/vendor/tracemonkey/tests/js1_7/extensions/regress-381301.js +63 -0
  2978. data/vendor/tracemonkey/tests/js1_7/extensions/regress-381303.js +68 -0
  2979. data/vendor/tracemonkey/tests/js1_7/extensions/regress-387955-01.js +73 -0
  2980. data/vendor/tracemonkey/tests/js1_7/extensions/regress-387955-02.js +75 -0
  2981. data/vendor/tracemonkey/tests/js1_7/extensions/regress-392308.js +80 -0
  2982. data/vendor/tracemonkey/tests/js1_7/extensions/regress-396326.js +70 -0
  2983. data/vendor/tracemonkey/tests/js1_7/extensions/regress-429266.js +73 -0
  2984. data/vendor/tracemonkey/tests/js1_7/extensions/regress-453955.js +64 -0
  2985. data/vendor/tracemonkey/tests/js1_7/extensions/regress-455982-01.js +59 -0
  2986. data/vendor/tracemonkey/tests/js1_7/extensions/regress-455982-02.js +59 -0
  2987. data/vendor/tracemonkey/tests/js1_7/extensions/regress-458679.js +85 -0
  2988. data/vendor/tracemonkey/tests/js1_7/extensions/regress-469234.js +65 -0
  2989. data/vendor/tracemonkey/tests/js1_7/extensions/regress-470176.js +71 -0
  2990. data/vendor/tracemonkey/tests/js1_7/extensions/regress-470300-01.js +65 -0
  2991. data/vendor/tracemonkey/tests/js1_7/extensions/regress-470300-02.js +65 -0
  2992. data/vendor/tracemonkey/tests/js1_7/extensions/regress-474771-01.js +67 -0
  2993. data/vendor/tracemonkey/tests/js1_7/extensions/regress-474771-02.js +55 -0
  2994. data/vendor/tracemonkey/tests/js1_7/extensions/regress-477048.js +67 -0
  2995. data/vendor/tracemonkey/tests/js1_7/extensions/shell.js +1 -0
  2996. data/vendor/tracemonkey/tests/js1_7/geniter/326466-01.js +78 -0
  2997. data/vendor/tracemonkey/tests/js1_7/geniter/builtin-Iterator-function.js +122 -0
  2998. data/vendor/tracemonkey/tests/js1_7/geniter/evens.js +58 -0
  2999. data/vendor/tracemonkey/tests/js1_7/geniter/fibonacci-matrix-generator.js +97 -0
  3000. data/vendor/tracemonkey/tests/js1_7/geniter/iterator-toString.js +76 -0
  3001. data/vendor/tracemonkey/tests/js1_7/geniter/jstests.list +49 -0
  3002. data/vendor/tracemonkey/tests/js1_7/geniter/message-value-passing.js +121 -0
  3003. data/vendor/tracemonkey/tests/js1_7/geniter/multiple-close.js +98 -0
  3004. data/vendor/tracemonkey/tests/js1_7/geniter/nested-yield.js +91 -0
  3005. data/vendor/tracemonkey/tests/js1_7/geniter/pi-generator.js +92 -0
  3006. data/vendor/tracemonkey/tests/js1_7/geniter/regress-345736.js +80 -0
  3007. data/vendor/tracemonkey/tests/js1_7/geniter/regress-345855.js +126 -0
  3008. data/vendor/tracemonkey/tests/js1_7/geniter/regress-345879-01.js +66 -0
  3009. data/vendor/tracemonkey/tests/js1_7/geniter/regress-345879-02.js +67 -0
  3010. data/vendor/tracemonkey/tests/js1_7/geniter/regress-347593.js +88 -0
  3011. data/vendor/tracemonkey/tests/js1_7/geniter/regress-347739.js +81 -0
  3012. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-01.js +84 -0
  3013. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-02.js +94 -0
  3014. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-03.js +75 -0
  3015. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-04.js +75 -0
  3016. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349012-05.js +77 -0
  3017. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349023-01.js +75 -0
  3018. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349023-02.js +62 -0
  3019. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349023-03.js +62 -0
  3020. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349331.js +127 -0
  3021. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349362.js +62 -0
  3022. data/vendor/tracemonkey/tests/js1_7/geniter/regress-349851.js +69 -0
  3023. data/vendor/tracemonkey/tests/js1_7/geniter/regress-350621.js +96 -0
  3024. data/vendor/tracemonkey/tests/js1_7/geniter/regress-350809.js +69 -0
  3025. data/vendor/tracemonkey/tests/js1_7/geniter/regress-351120.js +69 -0
  3026. data/vendor/tracemonkey/tests/js1_7/geniter/regress-351514.js +69 -0
  3027. data/vendor/tracemonkey/tests/js1_7/geniter/regress-352197.js +69 -0
  3028. data/vendor/tracemonkey/tests/js1_7/geniter/regress-352605.js +68 -0
  3029. data/vendor/tracemonkey/tests/js1_7/geniter/regress-352876.js +75 -0
  3030. data/vendor/tracemonkey/tests/js1_7/geniter/regress-355834.js +63 -0
  3031. data/vendor/tracemonkey/tests/js1_7/geniter/regress-359062.js +74 -0
  3032. data/vendor/tracemonkey/tests/js1_7/geniter/regress-366941.js +114 -0
  3033. data/vendor/tracemonkey/tests/js1_7/geniter/regress-382335.js +69 -0
  3034. data/vendor/tracemonkey/tests/js1_7/geniter/regress-387871.js +75 -0
  3035. data/vendor/tracemonkey/tests/js1_7/geniter/regress-390918.js +80 -0
  3036. data/vendor/tracemonkey/tests/js1_7/geniter/regress-392310.js +82 -0
  3037. data/vendor/tracemonkey/tests/js1_7/geniter/regress-466206.js +71 -0
  3038. data/vendor/tracemonkey/tests/js1_7/geniter/send-no-rhs.js +90 -0
  3039. data/vendor/tracemonkey/tests/js1_7/geniter/sequential-yields.js +105 -0
  3040. data/vendor/tracemonkey/tests/js1_7/geniter/shell.js +1 -0
  3041. data/vendor/tracemonkey/tests/js1_7/geniter/simple-fib.js +88 -0
  3042. data/vendor/tracemonkey/tests/js1_7/geniter/throw-after-close.js +123 -0
  3043. data/vendor/tracemonkey/tests/js1_7/geniter/throw-forever.js +118 -0
  3044. data/vendor/tracemonkey/tests/js1_7/geniter/unreachable-yield.js +90 -0
  3045. data/vendor/tracemonkey/tests/js1_7/geniter/yield-undefined.js +96 -0
  3046. data/vendor/tracemonkey/tests/js1_7/iterable/jstests.list +15 -0
  3047. data/vendor/tracemonkey/tests/js1_7/iterable/regress-340526-01.js +61 -0
  3048. data/vendor/tracemonkey/tests/js1_7/iterable/regress-340526-02.js +75 -0
  3049. data/vendor/tracemonkey/tests/js1_7/iterable/regress-341496.js +52 -0
  3050. data/vendor/tracemonkey/tests/js1_7/iterable/regress-341499.js +66 -0
  3051. data/vendor/tracemonkey/tests/js1_7/iterable/regress-341510.js +62 -0
  3052. data/vendor/tracemonkey/tests/js1_7/iterable/regress-341815.js +126 -0
  3053. data/vendor/tracemonkey/tests/js1_7/iterable/regress-341821.js +115 -0
  3054. data/vendor/tracemonkey/tests/js1_7/iterable/regress-354750-01.js +75 -0
  3055. data/vendor/tracemonkey/tests/js1_7/iterable/regress-355025.js +61 -0
  3056. data/vendor/tracemonkey/tests/js1_7/iterable/regress-355075-01.js +71 -0
  3057. data/vendor/tracemonkey/tests/js1_7/iterable/regress-355075-02.js +71 -0
  3058. data/vendor/tracemonkey/tests/js1_7/iterable/regress-355090.js +70 -0
  3059. data/vendor/tracemonkey/tests/js1_7/iterable/regress-412467.js +69 -0
  3060. data/vendor/tracemonkey/tests/js1_7/iterable/regress-415922.js +82 -0
  3061. data/vendor/tracemonkey/tests/js1_7/iterable/shell.js +1 -0
  3062. data/vendor/tracemonkey/tests/js1_7/jstests.list +10 -0
  3063. data/vendor/tracemonkey/tests/js1_7/lexical/jstests.list +5 -0
  3064. data/vendor/tracemonkey/tests/js1_7/lexical/regress-336376-01.js +441 -0
  3065. data/vendor/tracemonkey/tests/js1_7/lexical/regress-346642-03.js +169 -0
  3066. data/vendor/tracemonkey/tests/js1_7/lexical/regress-346642-04.js +70 -0
  3067. data/vendor/tracemonkey/tests/js1_7/lexical/regress-351515.js +130 -0
  3068. data/vendor/tracemonkey/tests/js1_7/lexical/shell.js +1 -0
  3069. data/vendor/tracemonkey/tests/js1_7/regexp/jstests.list +2 -0
  3070. data/vendor/tracemonkey/tests/js1_7/regexp/shell.js +1 -0
  3071. data/vendor/tracemonkey/tests/js1_7/regexp/yflag.js +111 -0
  3072. data/vendor/tracemonkey/tests/js1_7/regress/jstests.list +67 -0
  3073. data/vendor/tracemonkey/tests/js1_7/regress/regress-350387.js +70 -0
  3074. data/vendor/tracemonkey/tests/js1_7/regress/regress-351503-01.js +118 -0
  3075. data/vendor/tracemonkey/tests/js1_7/regress/regress-351503-02.js +123 -0
  3076. data/vendor/tracemonkey/tests/js1_7/regress/regress-352640-01.js +67 -0
  3077. data/vendor/tracemonkey/tests/js1_7/regress/regress-352640-02.js +67 -0
  3078. data/vendor/tracemonkey/tests/js1_7/regress/regress-352640-03.js +67 -0
  3079. data/vendor/tracemonkey/tests/js1_7/regress/regress-352640-04.js +67 -0
  3080. data/vendor/tracemonkey/tests/js1_7/regress/regress-352797-02.js +70 -0
  3081. data/vendor/tracemonkey/tests/js1_7/regress/regress-352870-01.js +70 -0
  3082. data/vendor/tracemonkey/tests/js1_7/regress/regress-352870-02.js +69 -0
  3083. data/vendor/tracemonkey/tests/js1_7/regress/regress-352870-03.js +71 -0
  3084. data/vendor/tracemonkey/tests/js1_7/regress/regress-353079.js +62 -0
  3085. data/vendor/tracemonkey/tests/js1_7/regress/regress-355023.js +64 -0
  3086. data/vendor/tracemonkey/tests/js1_7/regress/regress-355832-01.js +63 -0
  3087. data/vendor/tracemonkey/tests/js1_7/regress/regress-355832-02.js +63 -0
  3088. data/vendor/tracemonkey/tests/js1_7/regress/regress-361566.js +60 -0
  3089. data/vendor/tracemonkey/tests/js1_7/regress/regress-363040-01.js +128 -0
  3090. data/vendor/tracemonkey/tests/js1_7/regress/regress-363040-02.js +100 -0
  3091. data/vendor/tracemonkey/tests/js1_7/regress/regress-369666-01.js +92 -0
  3092. data/vendor/tracemonkey/tests/js1_7/regress/regress-369666-02.js +96 -0
  3093. data/vendor/tracemonkey/tests/js1_7/regress/regress-372331.js +88 -0
  3094. data/vendor/tracemonkey/tests/js1_7/regress/regress-373827-01.js +61 -0
  3095. data/vendor/tracemonkey/tests/js1_7/regress/regress-373827-02.js +67 -0
  3096. data/vendor/tracemonkey/tests/js1_7/regress/regress-373828.js +68 -0
  3097. data/vendor/tracemonkey/tests/js1_7/regress/regress-375695.js +60 -0
  3098. data/vendor/tracemonkey/tests/js1_7/regress/regress-379442.js +61 -0
  3099. data/vendor/tracemonkey/tests/js1_7/regress/regress-379483.js +61 -0
  3100. data/vendor/tracemonkey/tests/js1_7/regress/regress-385133-01.js +71 -0
  3101. data/vendor/tracemonkey/tests/js1_7/regress/regress-385133-02.js +69 -0
  3102. data/vendor/tracemonkey/tests/js1_7/regress/regress-385393-05.js +77 -0
  3103. data/vendor/tracemonkey/tests/js1_7/regress/regress-387951.js +61 -0
  3104. data/vendor/tracemonkey/tests/js1_7/regress/regress-406477.js +81 -0
  3105. data/vendor/tracemonkey/tests/js1_7/regress/regress-407727-01.js +50 -0
  3106. data/vendor/tracemonkey/tests/js1_7/regress/regress-407727-02.js +52 -0
  3107. data/vendor/tracemonkey/tests/js1_7/regress/regress-407957.js +63 -0
  3108. data/vendor/tracemonkey/tests/js1_7/regress/regress-410649.js +75 -0
  3109. data/vendor/tracemonkey/tests/js1_7/regress/regress-414553.js +55 -0
  3110. data/vendor/tracemonkey/tests/js1_7/regress/regress-416601.js +70 -0
  3111. data/vendor/tracemonkey/tests/js1_7/regress/regress-416705.js +73 -0
  3112. data/vendor/tracemonkey/tests/js1_7/regress/regress-418641.js +113 -0
  3113. data/vendor/tracemonkey/tests/js1_7/regress/regress-419803.js +64 -0
  3114. data/vendor/tracemonkey/tests/js1_7/regress/regress-420399.js +69 -0
  3115. data/vendor/tracemonkey/tests/js1_7/regress/regress-428706.js +61 -0
  3116. data/vendor/tracemonkey/tests/js1_7/regress/regress-428708.js +61 -0
  3117. data/vendor/tracemonkey/tests/js1_7/regress/regress-452703.js +54 -0
  3118. data/vendor/tracemonkey/tests/js1_7/regress/regress-452960.js +66 -0
  3119. data/vendor/tracemonkey/tests/js1_7/regress/regress-453049.js +64 -0
  3120. data/vendor/tracemonkey/tests/js1_7/regress/regress-453051.js +64 -0
  3121. data/vendor/tracemonkey/tests/js1_7/regress/regress-453411.js +65 -0
  3122. data/vendor/tracemonkey/tests/js1_7/regress/regress-461235.js +65 -0
  3123. data/vendor/tracemonkey/tests/js1_7/regress/regress-461945.js +65 -0
  3124. data/vendor/tracemonkey/tests/js1_7/regress/regress-462071.js +65 -0
  3125. data/vendor/tracemonkey/tests/js1_7/regress/regress-462282.js +65 -0
  3126. data/vendor/tracemonkey/tests/js1_7/regress/regress-462388.js +65 -0
  3127. data/vendor/tracemonkey/tests/js1_7/regress/regress-462407.js +54 -0
  3128. data/vendor/tracemonkey/tests/js1_7/regress/regress-464403.js +68 -0
  3129. data/vendor/tracemonkey/tests/js1_7/regress/regress-465236.js +63 -0
  3130. data/vendor/tracemonkey/tests/js1_7/regress/regress-465424.js +65 -0
  3131. data/vendor/tracemonkey/tests/js1_7/regress/regress-465484.js +63 -0
  3132. data/vendor/tracemonkey/tests/js1_7/regress/regress-469239-01.js +71 -0
  3133. data/vendor/tracemonkey/tests/js1_7/regress/regress-469239-02.js +71 -0
  3134. data/vendor/tracemonkey/tests/js1_7/regress/regress-470223.js +73 -0
  3135. data/vendor/tracemonkey/tests/js1_7/regress/regress-470388-01.js +61 -0
  3136. data/vendor/tracemonkey/tests/js1_7/regress/regress-470388-02.js +66 -0
  3137. data/vendor/tracemonkey/tests/js1_7/regress/regress-470388-03.js +65 -0
  3138. data/vendor/tracemonkey/tests/js1_7/regress/regress-474771.js +79 -0
  3139. data/vendor/tracemonkey/tests/js1_7/regress/shell.js +1 -0
  3140. data/vendor/tracemonkey/tests/js1_7/shell.js +47 -0
  3141. data/vendor/tracemonkey/tests/js1_7/template.js +59 -0
  3142. data/vendor/tracemonkey/tests/js1_8/README +1 -0
  3143. data/vendor/tracemonkey/tests/js1_8/browser.js +36 -0
  3144. data/vendor/tracemonkey/tests/js1_8/decompilation/jstests.list +12 -0
  3145. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-260106.js +64 -0
  3146. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-346749.js +62 -0
  3147. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-381372.js +63 -0
  3148. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-381504.js +78 -0
  3149. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-381963-01.js +63 -0
  3150. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-381963-02.js +65 -0
  3151. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-382981.js +67 -0
  3152. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-443074.js +63 -0
  3153. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-460504.js +63 -0
  3154. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-461233.js +64 -0
  3155. data/vendor/tracemonkey/tests/js1_8/decompilation/regress-469625-01.js +66 -0
  3156. data/vendor/tracemonkey/tests/js1_8/decompilation/shell.js +1 -0
  3157. data/vendor/tracemonkey/tests/js1_8/extensions/dekker.js +98 -0
  3158. data/vendor/tracemonkey/tests/js1_8/extensions/for-in.js +85 -0
  3159. data/vendor/tracemonkey/tests/js1_8/extensions/jstests.list +41 -0
  3160. data/vendor/tracemonkey/tests/js1_8/extensions/lamport.js +126 -0
  3161. data/vendor/tracemonkey/tests/js1_8/extensions/peterson.js +89 -0
  3162. data/vendor/tracemonkey/tests/js1_8/extensions/regress-353116.js +112 -0
  3163. data/vendor/tracemonkey/tests/js1_8/extensions/regress-378789.js +67 -0
  3164. data/vendor/tracemonkey/tests/js1_8/extensions/regress-385393-01.js +67 -0
  3165. data/vendor/tracemonkey/tests/js1_8/extensions/regress-385393-10.js +67 -0
  3166. data/vendor/tracemonkey/tests/js1_8/extensions/regress-385393-11.js +68 -0
  3167. data/vendor/tracemonkey/tests/js1_8/extensions/regress-385729.js +88 -0
  3168. data/vendor/tracemonkey/tests/js1_8/extensions/regress-394709.js +84 -0
  3169. data/vendor/tracemonkey/tests/js1_8/extensions/regress-415721.js +74 -0
  3170. data/vendor/tracemonkey/tests/js1_8/extensions/regress-417131.js +108 -0
  3171. data/vendor/tracemonkey/tests/js1_8/extensions/regress-417817.js +87 -0
  3172. data/vendor/tracemonkey/tests/js1_8/extensions/regress-419091.js +79 -0
  3173. data/vendor/tracemonkey/tests/js1_8/extensions/regress-422269.js +83 -0
  3174. data/vendor/tracemonkey/tests/js1_8/extensions/regress-445818.js +73 -0
  3175. data/vendor/tracemonkey/tests/js1_8/extensions/regress-446169-01.js +82 -0
  3176. data/vendor/tracemonkey/tests/js1_8/extensions/regress-446169-02.js +80 -0
  3177. data/vendor/tracemonkey/tests/js1_8/extensions/regress-452476.js +62 -0
  3178. data/vendor/tracemonkey/tests/js1_8/extensions/regress-452913.js +51 -0
  3179. data/vendor/tracemonkey/tests/js1_8/extensions/regress-454744.js +71 -0
  3180. data/vendor/tracemonkey/tests/js1_8/extensions/regress-455973.js +62 -0
  3181. data/vendor/tracemonkey/tests/js1_8/extensions/regress-465337.js +65 -0
  3182. data/vendor/tracemonkey/tests/js1_8/extensions/regress-465453.js +77 -0
  3183. data/vendor/tracemonkey/tests/js1_8/extensions/regress-469625.js +75 -0
  3184. data/vendor/tracemonkey/tests/js1_8/extensions/regress-471197.js +79 -0
  3185. data/vendor/tracemonkey/tests/js1_8/extensions/regress-472450-03.js +67 -0
  3186. data/vendor/tracemonkey/tests/js1_8/extensions/regress-472450-04.js +69 -0
  3187. data/vendor/tracemonkey/tests/js1_8/extensions/regress-473040.js +56 -0
  3188. data/vendor/tracemonkey/tests/js1_8/extensions/regress-475971.js +90 -0
  3189. data/vendor/tracemonkey/tests/js1_8/extensions/regress-476414-01.js +99 -0
  3190. data/vendor/tracemonkey/tests/js1_8/extensions/regress-476414-02.js +100 -0
  3191. data/vendor/tracemonkey/tests/js1_8/extensions/regress-476427.js +69 -0
  3192. data/vendor/tracemonkey/tests/js1_8/extensions/regress-476869.js +79 -0
  3193. data/vendor/tracemonkey/tests/js1_8/extensions/regress-479252.js +73 -0
  3194. data/vendor/tracemonkey/tests/js1_8/extensions/regress-479381.js +81 -0
  3195. data/vendor/tracemonkey/tests/js1_8/extensions/regress-481989.js +54 -0
  3196. data/vendor/tracemonkey/tests/js1_8/extensions/regress-482263.js +57 -0
  3197. data/vendor/tracemonkey/tests/js1_8/extensions/shell.js +1 -0
  3198. data/vendor/tracemonkey/tests/js1_8/extensions/simple-tree.js +82 -0
  3199. data/vendor/tracemonkey/tests/js1_8/genexps/jstests.list +10 -0
  3200. data/vendor/tracemonkey/tests/js1_8/genexps/regress-347739.js +84 -0
  3201. data/vendor/tracemonkey/tests/js1_8/genexps/regress-349012-01.js +87 -0
  3202. data/vendor/tracemonkey/tests/js1_8/genexps/regress-349326.js +181 -0
  3203. data/vendor/tracemonkey/tests/js1_8/genexps/regress-349331.js +126 -0
  3204. data/vendor/tracemonkey/tests/js1_8/genexps/regress-380237-01.js +234 -0
  3205. data/vendor/tracemonkey/tests/js1_8/genexps/regress-380237-02.js +63 -0
  3206. data/vendor/tracemonkey/tests/js1_8/genexps/regress-380237-03.js +195 -0
  3207. data/vendor/tracemonkey/tests/js1_8/genexps/regress-380237-04.js +329 -0
  3208. data/vendor/tracemonkey/tests/js1_8/genexps/regress-384991.js +92 -0
  3209. data/vendor/tracemonkey/tests/js1_8/genexps/shell.js +1 -0
  3210. data/vendor/tracemonkey/tests/js1_8/jstests.list +4 -0
  3211. data/vendor/tracemonkey/tests/js1_8/regress/jstests.list +85 -0
  3212. data/vendor/tracemonkey/tests/js1_8/regress/regress-366941.js +105 -0
  3213. data/vendor/tracemonkey/tests/js1_8/regress/regress-384412.js +231 -0
  3214. data/vendor/tracemonkey/tests/js1_8/regress/regress-384758.js +69 -0
  3215. data/vendor/tracemonkey/tests/js1_8/regress/regress-404734.js +64 -0
  3216. data/vendor/tracemonkey/tests/js1_8/regress/regress-427798.js +91 -0
  3217. data/vendor/tracemonkey/tests/js1_8/regress/regress-433279-01.js +61 -0
  3218. data/vendor/tracemonkey/tests/js1_8/regress/regress-433279-02.js +66 -0
  3219. data/vendor/tracemonkey/tests/js1_8/regress/regress-433279-03.js +66 -0
  3220. data/vendor/tracemonkey/tests/js1_8/regress/regress-442333-01.js +70 -0
  3221. data/vendor/tracemonkey/tests/js1_8/regress/regress-452491.js +64 -0
  3222. data/vendor/tracemonkey/tests/js1_8/regress/regress-453492.js +61 -0
  3223. data/vendor/tracemonkey/tests/js1_8/regress/regress-455981-01.js +69 -0
  3224. data/vendor/tracemonkey/tests/js1_8/regress/regress-455981-02.js +69 -0
  3225. data/vendor/tracemonkey/tests/js1_8/regress/regress-457065-01.js +67 -0
  3226. data/vendor/tracemonkey/tests/js1_8/regress/regress-457065-02.js +65 -0
  3227. data/vendor/tracemonkey/tests/js1_8/regress/regress-458076.js +65 -0
  3228. data/vendor/tracemonkey/tests/js1_8/regress/regress-459185.js +67 -0
  3229. data/vendor/tracemonkey/tests/js1_8/regress/regress-459186.js +67 -0
  3230. data/vendor/tracemonkey/tests/js1_8/regress/regress-459389.js +153 -0
  3231. data/vendor/tracemonkey/tests/js1_8/regress/regress-461930.js +66 -0
  3232. data/vendor/tracemonkey/tests/js1_8/regress/regress-461932.js +66 -0
  3233. data/vendor/tracemonkey/tests/js1_8/regress/regress-463334-01.js +66 -0
  3234. data/vendor/tracemonkey/tests/js1_8/regress/regress-463334-02.js +68 -0
  3235. data/vendor/tracemonkey/tests/js1_8/regress/regress-463783.js +68 -0
  3236. data/vendor/tracemonkey/tests/js1_8/regress/regress-464092-01.js +61 -0
  3237. data/vendor/tracemonkey/tests/js1_8/regress/regress-464092-02.js +68 -0
  3238. data/vendor/tracemonkey/tests/js1_8/regress/regress-464096.js +67 -0
  3239. data/vendor/tracemonkey/tests/js1_8/regress/regress-464418.js +80 -0
  3240. data/vendor/tracemonkey/tests/js1_8/regress/regress-464978.js +65 -0
  3241. data/vendor/tracemonkey/tests/js1_8/regress/regress-465220.js +78 -0
  3242. data/vendor/tracemonkey/tests/js1_8/regress/regress-465234.js +68 -0
  3243. data/vendor/tracemonkey/tests/js1_8/regress/regress-465239.js +68 -0
  3244. data/vendor/tracemonkey/tests/js1_8/regress/regress-465241.js +68 -0
  3245. data/vendor/tracemonkey/tests/js1_8/regress/regress-465249.js +65 -0
  3246. data/vendor/tracemonkey/tests/js1_8/regress/regress-465261.js +69 -0
  3247. data/vendor/tracemonkey/tests/js1_8/regress/regress-465308.js +66 -0
  3248. data/vendor/tracemonkey/tests/js1_8/regress/regress-465454.js +66 -0
  3249. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-01.js +67 -0
  3250. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-02.js +65 -0
  3251. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-03.js +65 -0
  3252. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-04.js +65 -0
  3253. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-05.js +65 -0
  3254. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-06.js +65 -0
  3255. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-07.js +74 -0
  3256. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-08.js +65 -0
  3257. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-09.js +65 -0
  3258. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-10.js +65 -0
  3259. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-11.js +65 -0
  3260. data/vendor/tracemonkey/tests/js1_8/regress/regress-465460-12.js +65 -0
  3261. data/vendor/tracemonkey/tests/js1_8/regress/regress-465483.js +65 -0
  3262. data/vendor/tracemonkey/tests/js1_8/regress/regress-465567-01.js +64 -0
  3263. data/vendor/tracemonkey/tests/js1_8/regress/regress-465567-02.js +60 -0
  3264. data/vendor/tracemonkey/tests/js1_8/regress/regress-465688.js +63 -0
  3265. data/vendor/tracemonkey/tests/js1_8/regress/regress-466128.js +66 -0
  3266. data/vendor/tracemonkey/tests/js1_8/regress/regress-466787.js +68 -0
  3267. data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-01.js +61 -0
  3268. data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-02.js +67 -0
  3269. data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-03.js +80 -0
  3270. data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-04.js +75 -0
  3271. data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-05.js +64 -0
  3272. data/vendor/tracemonkey/tests/js1_8/regress/regress-467495-06.js +77 -0
  3273. data/vendor/tracemonkey/tests/js1_8/regress/regress-468711.js +65 -0
  3274. data/vendor/tracemonkey/tests/js1_8/regress/regress-469625-02.js +66 -0
  3275. data/vendor/tracemonkey/tests/js1_8/regress/regress-469625-03.js +73 -0
  3276. data/vendor/tracemonkey/tests/js1_8/regress/regress-471373.js +78 -0
  3277. data/vendor/tracemonkey/tests/js1_8/regress/regress-471660.js +72 -0
  3278. data/vendor/tracemonkey/tests/js1_8/regress/regress-472450-01.js +66 -0
  3279. data/vendor/tracemonkey/tests/js1_8/regress/regress-472450-02.js +66 -0
  3280. data/vendor/tracemonkey/tests/js1_8/regress/regress-472528-01.js +74 -0
  3281. data/vendor/tracemonkey/tests/js1_8/regress/regress-472528-02.js +74 -0
  3282. data/vendor/tracemonkey/tests/js1_8/regress/regress-472703.js +73 -0
  3283. data/vendor/tracemonkey/tests/js1_8/regress/regress-474769.js +70 -0
  3284. data/vendor/tracemonkey/tests/js1_8/regress/regress-474771.js +73 -0
  3285. data/vendor/tracemonkey/tests/js1_8/regress/regress-474935.js +75 -0
  3286. data/vendor/tracemonkey/tests/js1_8/regress/regress-476655.js +74 -0
  3287. data/vendor/tracemonkey/tests/js1_8/regress/regress-477234.js +79 -0
  3288. data/vendor/tracemonkey/tests/js1_8/regress/regress-477581.js +68 -0
  3289. data/vendor/tracemonkey/tests/js1_8/regress/regress-478205.js +65 -0
  3290. data/vendor/tracemonkey/tests/js1_8/regress/regress-479353.js +56 -0
  3291. data/vendor/tracemonkey/tests/js1_8/regress/regress-479740.js +71 -0
  3292. data/vendor/tracemonkey/tests/js1_8/regress/regress-481800.js +65 -0
  3293. data/vendor/tracemonkey/tests/js1_8/regress/regress-483749.js +60 -0
  3294. data/vendor/tracemonkey/tests/js1_8/regress/regress-499524.js +48 -0
  3295. data/vendor/tracemonkey/tests/js1_8/regress/regress-532491.js +71 -0
  3296. data/vendor/tracemonkey/tests/js1_8/regress/shell.js +1 -0
  3297. data/vendor/tracemonkey/tests/js1_8/shell.js +47 -0
  3298. data/vendor/tracemonkey/tests/js1_8/template.js +59 -0
  3299. data/vendor/tracemonkey/tests/js1_8_1/JSON/jstests.list +3 -0
  3300. data/vendor/tracemonkey/tests/js1_8_1/JSON/regress-458959.js +65 -0
  3301. data/vendor/tracemonkey/tests/js1_8_1/JSON/regress-459293.js +56 -0
  3302. data/vendor/tracemonkey/tests/js1_8_1/JSON/shell.js +1 -0
  3303. data/vendor/tracemonkey/tests/js1_8_1/README +1 -0
  3304. data/vendor/tracemonkey/tests/js1_8_1/String/jstests.list +2 -0
  3305. data/vendor/tracemonkey/tests/js1_8_1/String/regress-305064.js +177 -0
  3306. data/vendor/tracemonkey/tests/js1_8_1/String/shell.js +1 -0
  3307. data/vendor/tracemonkey/tests/js1_8_1/browser.js +36 -0
  3308. data/vendor/tracemonkey/tests/js1_8_1/decompilation/jstests.list +21 -0
  3309. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-346642-01.js +200 -0
  3310. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-349605.js +69 -0
  3311. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-349634.js +64 -0
  3312. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-350991.js +87 -0
  3313. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-351070-01.js +102 -0
  3314. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-351336.js +63 -0
  3315. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-351626.js +64 -0
  3316. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-352011.js +75 -0
  3317. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-352022.js +69 -0
  3318. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-352026.js +79 -0
  3319. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-352609.js +90 -0
  3320. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-353249.js +67 -0
  3321. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-354878.js +62 -0
  3322. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-371802.js +63 -0
  3323. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-373678-01.js +62 -0
  3324. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-380237-03.js +195 -0
  3325. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-380237-04.js +334 -0
  3326. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-443074.js +63 -0
  3327. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-466905-03.js +87 -0
  3328. data/vendor/tracemonkey/tests/js1_8_1/decompilation/regress-530537.js +41 -0
  3329. data/vendor/tracemonkey/tests/js1_8_1/decompilation/shell.js +1 -0
  3330. data/vendor/tracemonkey/tests/js1_8_1/extensions/jstests.list +13 -0
  3331. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-352281.js +67 -0
  3332. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-353214-02.js +63 -0
  3333. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-437288-01.js +69 -0
  3334. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-452498-162.js +59 -0
  3335. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-452498-193.js +66 -0
  3336. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-452498-196.js +76 -0
  3337. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-452498-224.js +63 -0
  3338. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-466905-04.js +82 -0
  3339. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-466905-05.js +77 -0
  3340. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-477158.js +66 -0
  3341. data/vendor/tracemonkey/tests/js1_8_1/extensions/regress-477187.js +73 -0
  3342. data/vendor/tracemonkey/tests/js1_8_1/extensions/shell.js +1 -0
  3343. data/vendor/tracemonkey/tests/js1_8_1/extensions/strict-warning.js +29 -0
  3344. data/vendor/tracemonkey/tests/js1_8_1/jstests.list +6 -0
  3345. data/vendor/tracemonkey/tests/js1_8_1/regress/jstests.list +82 -0
  3346. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-420399.js +69 -0
  3347. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-006.js +78 -0
  3348. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-027.js +71 -0
  3349. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-030.js +64 -0
  3350. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-038.js +63 -0
  3351. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-039.js +68 -0
  3352. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-040.js +70 -0
  3353. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-050.js +77 -0
  3354. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-051.js +79 -0
  3355. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-052-a.js +72 -0
  3356. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-052.js +82 -0
  3357. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-053.js +111 -0
  3358. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-054.js +73 -0
  3359. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-058.js +64 -0
  3360. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-062.js +77 -0
  3361. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-063.js +68 -0
  3362. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-068.js +129 -0
  3363. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-071.js +64 -0
  3364. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-072.js +64 -0
  3365. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-073.js +71 -0
  3366. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-074.js +67 -0
  3367. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-075.js +65 -0
  3368. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-076.js +64 -0
  3369. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-077.js +67 -0
  3370. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-079.js +65 -0
  3371. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-082.js +190 -0
  3372. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-091.js +65 -0
  3373. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-092.js +73 -0
  3374. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-098.js +73 -0
  3375. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-099-a.js +72 -0
  3376. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-099.js +87 -0
  3377. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-101.js +64 -0
  3378. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-102.js +120 -0
  3379. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-103.js +64 -0
  3380. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-104.js +64 -0
  3381. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-107.js +67 -0
  3382. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-108.js +66 -0
  3383. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-110.js +82 -0
  3384. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-111.js +68 -0
  3385. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-112.js +72 -0
  3386. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-114-a.js +76 -0
  3387. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-114.js +83 -0
  3388. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-116.js +66 -0
  3389. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-117.js +171 -0
  3390. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-118.js +66 -0
  3391. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-119.js +93 -0
  3392. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-121.js +66 -0
  3393. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-123.js +92 -0
  3394. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-129.js +83 -0
  3395. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-130.js +90 -0
  3396. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-131.js +82 -0
  3397. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-135-a.js +68 -0
  3398. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-135.js +120 -0
  3399. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-138.js +77 -0
  3400. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-139.js +74 -0
  3401. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-155.js +67 -0
  3402. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-160.js +72 -0
  3403. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-168-1.js +66 -0
  3404. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-168-2.js +64 -0
  3405. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-176.js +64 -0
  3406. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-178.js +64 -0
  3407. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-181.js +64 -0
  3408. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-184.js +64 -0
  3409. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-185.js +70 -0
  3410. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-187.js +70 -0
  3411. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-191.js +80 -0
  3412. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-452498-192.js +62 -0
  3413. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-466905-01.js +63 -0
  3414. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-466905-02.js +62 -0
  3415. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-01.js +76 -0
  3416. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-02.js +78 -0
  3417. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-03.js +81 -0
  3418. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-04.js +77 -0
  3419. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-479430-05.js +76 -0
  3420. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-495773.js +77 -0
  3421. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-495907.js +69 -0
  3422. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-496922.js +73 -0
  3423. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-507053.js +81 -0
  3424. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-507295.js +76 -0
  3425. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-507424.js +68 -0
  3426. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-509354.js +41 -0
  3427. data/vendor/tracemonkey/tests/js1_8_1/regress/regress-515885.js +6 -0
  3428. data/vendor/tracemonkey/tests/js1_8_1/regress/shell.js +1 -0
  3429. data/vendor/tracemonkey/tests/js1_8_1/shell.js +47 -0
  3430. data/vendor/tracemonkey/tests/js1_8_1/template.js +59 -0
  3431. data/vendor/tracemonkey/tests/js1_8_1/trace/jstests.list +23 -0
  3432. data/vendor/tracemonkey/tests/js1_8_1/trace/math-trace-tests.js +734 -0
  3433. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-451673.js +116 -0
  3434. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-451974-01.js +87 -0
  3435. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-451974-02.js +98 -0
  3436. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-452498-01.js +106 -0
  3437. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-458838.js +96 -0
  3438. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-01.js +108 -0
  3439. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-02.js +108 -0
  3440. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-03.js +108 -0
  3441. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-04.js +108 -0
  3442. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-05.js +108 -0
  3443. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-06.js +108 -0
  3444. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-07.js +108 -0
  3445. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-08.js +108 -0
  3446. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-09.js +108 -0
  3447. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-10.js +108 -0
  3448. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-11.js +108 -0
  3449. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-462459-12.js +108 -0
  3450. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-469927.js +79 -0
  3451. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-470739.js +81 -0
  3452. data/vendor/tracemonkey/tests/js1_8_1/trace/regress-471635.js +89 -0
  3453. data/vendor/tracemonkey/tests/js1_8_1/trace/shell.js +1 -0
  3454. data/vendor/tracemonkey/{trace-test.js → tests/js1_8_1/trace/trace-test.js} +1261 -1454
  3455. data/vendor/tracemonkey/tests/jsDriver.pl +1537 -0
  3456. data/vendor/tracemonkey/tests/jsreftest.html +19 -0
  3457. data/vendor/tracemonkey/tests/jstests.list +15 -0
  3458. data/vendor/tracemonkey/tests/known-failures.pl +720 -0
  3459. data/vendor/tracemonkey/tests/menufoot.html +8 -0
  3460. data/vendor/tracemonkey/tests/menuhead.html +58 -0
  3461. data/vendor/tracemonkey/tests/menuhead.js +761 -0
  3462. data/vendor/tracemonkey/tests/mkhtml.pl +84 -0
  3463. data/vendor/tracemonkey/tests/mklistpage.pl +443 -0
  3464. data/vendor/tracemonkey/tests/most.tests +892 -0
  3465. data/vendor/tracemonkey/tests/pattern-expander.pl +181 -0
  3466. data/vendor/tracemonkey/tests/pattern-extracter.pl +227 -0
  3467. data/vendor/tracemonkey/tests/performance-1.8.0.tests +19 -0
  3468. data/vendor/tracemonkey/tests/performance-1.8.1.tests +19 -0
  3469. data/vendor/tracemonkey/tests/performance-1.9.0.tests +19 -0
  3470. data/vendor/tracemonkey/tests/performance-1.9.1.tests +19 -0
  3471. data/vendor/tracemonkey/tests/performance-1.9.2.tests +19 -0
  3472. data/vendor/tracemonkey/tests/performance.tests +18 -0
  3473. data/vendor/tracemonkey/tests/post-process-logs.pl +602 -0
  3474. data/vendor/tracemonkey/tests/process-logs.sh +203 -0
  3475. data/vendor/tracemonkey/tests/remove-fixed-failures.sh +82 -0
  3476. data/vendor/tracemonkey/tests/runRhinoTests.pl +447 -0
  3477. data/vendor/tracemonkey/tests/runtests.pl +495 -0
  3478. data/vendor/tracemonkey/tests/runtests.sh +262 -0
  3479. data/vendor/tracemonkey/tests/runtests2.pl +3 -0
  3480. data/vendor/tracemonkey/tests/shell.js +928 -0
  3481. data/vendor/tracemonkey/tests/slow-n-1.8.1-browser.tests +62 -0
  3482. data/vendor/tracemonkey/tests/slow-n-1.8.1.tests +35 -0
  3483. data/vendor/tracemonkey/tests/slow-n-1.9.0-browser.tests +51 -0
  3484. data/vendor/tracemonkey/tests/slow-n-1.9.0.tests +21 -0
  3485. data/vendor/tracemonkey/tests/slow-n-1.9.1-browser.tests +49 -0
  3486. data/vendor/tracemonkey/tests/slow-n-1.9.1.tests +25 -0
  3487. data/vendor/tracemonkey/tests/slow-n-1.9.2-browser.tests +50 -0
  3488. data/vendor/tracemonkey/tests/slow-n-1.9.2.tests +24 -0
  3489. data/vendor/tracemonkey/tests/slow-n.tests +30 -0
  3490. data/vendor/tracemonkey/tests/spidermonkey-gc.tests +28 -0
  3491. data/vendor/tracemonkey/tests/spidermonkey-n-1.8.0.tests +95 -0
  3492. data/vendor/tracemonkey/tests/spidermonkey-n-1.8.1.tests +95 -0
  3493. data/vendor/tracemonkey/tests/spidermonkey-n-1.9.0.tests +99 -0
  3494. data/vendor/tracemonkey/tests/spidermonkey-n-1.9.1.tests +152 -0
  3495. data/vendor/tracemonkey/tests/spidermonkey-n-1.9.2.tests +152 -0
  3496. data/vendor/tracemonkey/tests/spidermonkey-n-1.9.3.tests +152 -0
  3497. data/vendor/tracemonkey/tests/spidermonkey-n.tests +90 -0
  3498. data/vendor/tracemonkey/tests/template.js +73 -0
  3499. data/vendor/tracemonkey/tests/test.sh +531 -0
  3500. data/vendor/tracemonkey/tests/user.js +33 -0
  3501. data/vendor/tracemonkey/tests/userhookeach.js +198 -0
  3502. data/vendor/tracemonkey/trace-test/README +70 -0
  3503. data/vendor/tracemonkey/trace-test/lib/andTestHelper.js +9 -0
  3504. data/vendor/tracemonkey/{mandelbrot-results.js → trace-test/lib/mandelbrot-results.js} +0 -0
  3505. data/vendor/tracemonkey/trace-test/lib/orTestHelper.js +9 -0
  3506. data/vendor/tracemonkey/trace-test/lib/prolog.js +37 -0
  3507. data/vendor/tracemonkey/trace-test/lib/range.js +18 -0
  3508. data/vendor/tracemonkey/trace-test/progressbar.py +35 -0
  3509. data/vendor/tracemonkey/trace-test/tests/basic/FPQuadCmp.js +6 -0
  3510. data/vendor/tracemonkey/trace-test/tests/basic/argumentsPassedToBuiltin.js +14 -0
  3511. data/vendor/tracemonkey/trace-test/tests/basic/arith.js +11 -0
  3512. data/vendor/tracemonkey/trace-test/tests/basic/arityMismatchExtraArg.js +13 -0
  3513. data/vendor/tracemonkey/trace-test/tests/basic/arityMismatchMissingArg.js +8 -0
  3514. data/vendor/tracemonkey/trace-test/tests/basic/bitwiseAnd.js +10 -0
  3515. data/vendor/tracemonkey/trace-test/tests/basic/bitwiseGlobal.js +8 -0
  3516. data/vendor/tracemonkey/trace-test/tests/basic/bug464403.js +7 -0
  3517. data/vendor/tracemonkey/trace-test/tests/basic/bug465902.js +13 -0
  3518. data/vendor/tracemonkey/trace-test/tests/basic/bug504587-1.js +13 -0
  3519. data/vendor/tracemonkey/trace-test/tests/basic/bug507180.js +69 -0
  3520. data/vendor/tracemonkey/trace-test/tests/basic/bug509639.js +3 -0
  3521. data/vendor/tracemonkey/trace-test/tests/basic/bug509982.js +15 -0
  3522. data/vendor/tracemonkey/trace-test/tests/basic/bug510434.js +2 -0
  3523. data/vendor/tracemonkey/trace-test/tests/basic/bug510437-2.js +13 -0
  3524. data/vendor/tracemonkey/trace-test/tests/basic/bug510437.js +12 -0
  3525. data/vendor/tracemonkey/trace-test/tests/basic/bug510642.js +14 -0
  3526. data/vendor/tracemonkey/trace-test/tests/basic/bug510655.js +15 -0
  3527. data/vendor/tracemonkey/trace-test/tests/basic/bug511214.js +18 -0
  3528. data/vendor/tracemonkey/trace-test/tests/basic/bug511241.js +15 -0
  3529. data/vendor/tracemonkey/trace-test/tests/basic/bug513038.js +16 -0
  3530. data/vendor/tracemonkey/trace-test/tests/basic/bug516009.js +20 -0
  3531. data/vendor/tracemonkey/trace-test/tests/basic/bug517721.js +8 -0
  3532. data/vendor/tracemonkey/trace-test/tests/basic/bug525028.js +16 -0
  3533. data/vendor/tracemonkey/trace-test/tests/basic/bug531037.js +22 -0
  3534. data/vendor/tracemonkey/trace-test/tests/basic/bug531513.js +23 -0
  3535. data/vendor/tracemonkey/trace-test/tests/basic/bug532568-2.js +20 -0
  3536. data/vendor/tracemonkey/trace-test/tests/basic/bug532568.js +19 -0
  3537. data/vendor/tracemonkey/trace-test/tests/basic/bug532823.js +23 -0
  3538. data/vendor/tracemonkey/trace-test/tests/basic/bug535760.js +13 -0
  3539. data/vendor/tracemonkey/trace-test/tests/basic/bug539553-2.js +7 -0
  3540. data/vendor/tracemonkey/trace-test/tests/basic/bug539553-3.js +11 -0
  3541. data/vendor/tracemonkey/trace-test/tests/basic/bug539553.js +11 -0
  3542. data/vendor/tracemonkey/trace-test/tests/basic/call.js +28 -0
  3543. data/vendor/tracemonkey/{call.js → trace-test/tests/basic/call2.js} +1 -1
  3544. data/vendor/tracemonkey/trace-test/tests/basic/createMandelSet.js +242 -0
  3545. data/vendor/tracemonkey/trace-test/tests/basic/deep2.js +11 -0
  3546. data/vendor/tracemonkey/trace-test/tests/basic/deepForInLoop.js +12 -0
  3547. data/vendor/tracemonkey/trace-test/tests/basic/dependentStrings.js +11 -0
  3548. data/vendor/tracemonkey/trace-test/tests/basic/doMath.js +60 -0
  3549. data/vendor/tracemonkey/trace-test/tests/basic/equalInt.js +29 -0
  3550. data/vendor/tracemonkey/trace-test/tests/basic/fannkuch.js +17 -0
  3551. data/vendor/tracemonkey/trace-test/tests/basic/forVarInWith.js +12 -0
  3552. data/vendor/tracemonkey/trace-test/tests/basic/getelem.js +30 -0
  3553. data/vendor/tracemonkey/trace-test/tests/basic/getprop.js +16 -0
  3554. data/vendor/tracemonkey/trace-test/tests/basic/globalGet.js +6 -0
  3555. data/vendor/tracemonkey/trace-test/tests/basic/globalSet.js +4 -0
  3556. data/vendor/tracemonkey/trace-test/tests/basic/ifInsideLoop.js +12 -0
  3557. data/vendor/tracemonkey/trace-test/tests/basic/inArrayTest.js +9 -0
  3558. data/vendor/tracemonkey/trace-test/tests/basic/inObjectTest.js +13 -0
  3559. data/vendor/tracemonkey/trace-test/tests/basic/innerLoopIntOuterDouble.js +11 -0
  3560. data/vendor/tracemonkey/trace-test/tests/basic/inner_double_outer_int.js +10 -0
  3561. data/vendor/tracemonkey/trace-test/tests/basic/jitstatsArchFlags.js +14 -0
  3562. data/vendor/tracemonkey/trace-test/tests/basic/joinTest.js +15 -0
  3563. data/vendor/tracemonkey/trace-test/tests/basic/matchInLoop.js +8 -0
  3564. data/vendor/tracemonkey/{math-trace-tests.js → trace-test/tests/basic/math-trace-tests.js} +25 -12
  3565. data/vendor/tracemonkey/trace-test/tests/basic/merge_type_maps.js +9 -0
  3566. data/vendor/tracemonkey/trace-test/tests/basic/missingArgTest.js +12 -0
  3567. data/vendor/tracemonkey/trace-test/tests/basic/missingArgTest2.js +26 -0
  3568. data/vendor/tracemonkey/trace-test/tests/basic/mod.js +14 -0
  3569. data/vendor/tracemonkey/trace-test/tests/basic/name-inactive-del.js +28 -0
  3570. data/vendor/tracemonkey/trace-test/tests/basic/name-inactive-eval-del.js +10 -0
  3571. data/vendor/tracemonkey/trace-test/tests/basic/name-inactive-inferflags.js +18 -0
  3572. data/vendor/tracemonkey/trace-test/tests/basic/name-inactive.js +20 -0
  3573. data/vendor/tracemonkey/trace-test/tests/basic/name.js +9 -0
  3574. data/vendor/tracemonkey/trace-test/tests/basic/nestedExit2.js +17 -0
  3575. data/vendor/tracemonkey/trace-test/tests/basic/nestedExitLoop.js +14 -0
  3576. data/vendor/tracemonkey/trace-test/tests/basic/newArrayTest.js +8 -0
  3577. data/vendor/tracemonkey/trace-test/tests/basic/newTest.js +14 -0
  3578. data/vendor/tracemonkey/trace-test/tests/basic/nonEmptyStack1.js +13 -0
  3579. data/vendor/tracemonkey/trace-test/tests/basic/nonEmptyStack2.js +10 -0
  3580. data/vendor/tracemonkey/trace-test/tests/basic/orNaNTest1.js +3 -0
  3581. data/vendor/tracemonkey/trace-test/tests/basic/orNaNTest2.js +3 -0
  3582. data/vendor/tracemonkey/trace-test/tests/basic/outerline.js +15 -0
  3583. data/vendor/tracemonkey/trace-test/tests/basic/parseIntTests.js +21 -0
  3584. data/vendor/tracemonkey/trace-test/tests/basic/parsingNumbers.js +23 -0
  3585. data/vendor/tracemonkey/trace-test/tests/basic/putargsNoReturn.js +6 -0
  3586. data/vendor/tracemonkey/trace-test/tests/basic/putargsReturn.js +7 -0
  3587. data/vendor/tracemonkey/trace-test/tests/basic/regexpLastIndex.js +13 -0
  3588. data/vendor/tracemonkey/trace-test/tests/basic/setArgumentsLength.js +14 -0
  3589. data/vendor/tracemonkey/trace-test/tests/basic/setArgumentsLength2.js +12 -0
  3590. data/vendor/tracemonkey/trace-test/tests/basic/setCall.js +26 -0
  3591. data/vendor/tracemonkey/trace-test/tests/basic/setCallEvalMiddle.js +17 -0
  3592. data/vendor/tracemonkey/trace-test/tests/basic/setCallEvalMiddle2.js +18 -0
  3593. data/vendor/tracemonkey/trace-test/tests/basic/setCallGlobal.js +14 -0
  3594. data/vendor/tracemonkey/trace-test/tests/basic/setelem.js +12 -0
  3595. data/vendor/tracemonkey/trace-test/tests/basic/setprop.js +10 -0
  3596. data/vendor/tracemonkey/trace-test/tests/basic/shapelessCalleeTest.js +67 -0
  3597. data/vendor/tracemonkey/trace-test/tests/basic/stringConvert.js +18 -0
  3598. data/vendor/tracemonkey/trace-test/tests/basic/stringSplitIntoArrayTest.js +9 -0
  3599. data/vendor/tracemonkey/trace-test/tests/basic/stringSplitTest.js +9 -0
  3600. data/vendor/tracemonkey/trace-test/tests/basic/strings.js +21 -0
  3601. data/vendor/tracemonkey/trace-test/tests/basic/testAbortedImacroDecompilation.js +7 -0
  3602. data/vendor/tracemonkey/trace-test/tests/basic/testAddAnyInconvertibleObject.js +33 -0
  3603. data/vendor/tracemonkey/trace-test/tests/basic/testAddInconvertibleObjectAny.js +39 -0
  3604. data/vendor/tracemonkey/trace-test/tests/basic/testAddInconvertibleObjectInconvertibleObject.js +38 -0
  3605. data/vendor/tracemonkey/trace-test/tests/basic/testAddNull.js +13 -0
  3606. data/vendor/tracemonkey/trace-test/tests/basic/testAddUndefined.js +5 -0
  3607. data/vendor/tracemonkey/trace-test/tests/basic/testApply.js +7 -0
  3608. data/vendor/tracemonkey/trace-test/tests/basic/testApplyCall.js +42 -0
  3609. data/vendor/tracemonkey/trace-test/tests/basic/testApplyUnbox.js +11 -0
  3610. data/vendor/tracemonkey/trace-test/tests/basic/testArrayComp1.js +6 -0
  3611. data/vendor/tracemonkey/trace-test/tests/basic/testArrayComp2.js +7 -0
  3612. data/vendor/tracemonkey/trace-test/tests/basic/testArrayDensityChange.js +17 -0
  3613. data/vendor/tracemonkey/trace-test/tests/basic/testArrayNaNIndex.js +7 -0
  3614. data/vendor/tracemonkey/trace-test/tests/basic/testArrayNamedProp.js +5 -0
  3615. data/vendor/tracemonkey/trace-test/tests/basic/testArrayPushPop.js +11 -0
  3616. data/vendor/tracemonkey/trace-test/tests/basic/testAtomize.js +10 -0
  3617. data/vendor/tracemonkey/trace-test/tests/basic/testBitOrAnyInconvertibleObject.js +33 -0
  3618. data/vendor/tracemonkey/trace-test/tests/basic/testBitOrInconvertibleObjectAny.js +33 -0
  3619. data/vendor/tracemonkey/trace-test/tests/basic/testBitOrInconvertibleObjectInconvertibleObject.js +38 -0
  3620. data/vendor/tracemonkey/trace-test/tests/basic/testBitwise.js +12 -0
  3621. data/vendor/tracemonkey/trace-test/tests/basic/testBoxDoubleWithDoubleSizedInt.js +10 -0
  3622. data/vendor/tracemonkey/trace-test/tests/basic/testBranchCse.js +7 -0
  3623. data/vendor/tracemonkey/trace-test/tests/basic/testBranchingLoop.js +11 -0
  3624. data/vendor/tracemonkey/trace-test/tests/basic/testBranchingUnstableLoop.js +11 -0
  3625. data/vendor/tracemonkey/trace-test/tests/basic/testBranchingUnstableLoopCounter.js +11 -0
  3626. data/vendor/tracemonkey/trace-test/tests/basic/testBranchingUnstableObject.js +13 -0
  3627. data/vendor/tracemonkey/trace-test/tests/basic/testBreak.js +6 -0
  3628. data/vendor/tracemonkey/trace-test/tests/basic/testBug458838.js +18 -0
  3629. data/vendor/tracemonkey/trace-test/tests/basic/testBug462388.js +6 -0
  3630. data/vendor/tracemonkey/trace-test/tests/basic/testBug462407.js +6 -0
  3631. data/vendor/tracemonkey/trace-test/tests/basic/testBug463490.js +18 -0
  3632. data/vendor/tracemonkey/trace-test/tests/basic/testBug465261.js +7 -0
  3633. data/vendor/tracemonkey/trace-test/tests/basic/testBug465272.js +6 -0
  3634. data/vendor/tracemonkey/trace-test/tests/basic/testBug465483.js +7 -0
  3635. data/vendor/tracemonkey/trace-test/tests/basic/testBug465688.js +6 -0
  3636. data/vendor/tracemonkey/trace-test/tests/basic/testBug466128.js +9 -0
  3637. data/vendor/tracemonkey/trace-test/tests/basic/testBug466262.js +11 -0
  3638. data/vendor/tracemonkey/trace-test/tests/basic/testBug474769.js +10 -0
  3639. data/vendor/tracemonkey/trace-test/tests/basic/testBug501690.js +14 -0
  3640. data/vendor/tracemonkey/trace-test/tests/basic/testBug502914.js +19 -0
  3641. data/vendor/tracemonkey/trace-test/tests/basic/testBug504520.js +11 -0
  3642. data/vendor/tracemonkey/trace-test/tests/basic/testBug504520Harder.js +32 -0
  3643. data/vendor/tracemonkey/trace-test/tests/basic/testBug507425.js +14 -0
  3644. data/vendor/tracemonkey/trace-test/tests/basic/testBug532363.js +2 -0
  3645. data/vendor/tracemonkey/trace-test/tests/basic/testCallElem.js +17 -0
  3646. data/vendor/tracemonkey/trace-test/tests/basic/testCallPick.js +18 -0
  3647. data/vendor/tracemonkey/trace-test/tests/basic/testCallProtoMethod.js +14 -0
  3648. data/vendor/tracemonkey/trace-test/tests/basic/testCaseAbort.js +19 -0
  3649. data/vendor/tracemonkey/trace-test/tests/basic/testCaseTypeMismatchBadness.js +22 -0
  3650. data/vendor/tracemonkey/trace-test/tests/basic/testChangingObjectWithLength.js +37 -0
  3651. data/vendor/tracemonkey/trace-test/tests/basic/testClosingRecursion.js +13 -0
  3652. data/vendor/tracemonkey/trace-test/tests/basic/testClosureIncrSideExit.js +17 -0
  3653. data/vendor/tracemonkey/trace-test/tests/basic/testClosures.js +18 -0
  3654. data/vendor/tracemonkey/trace-test/tests/basic/testComparisons.js +988 -0
  3655. data/vendor/tracemonkey/trace-test/tests/basic/testConstIf.js +6 -0
  3656. data/vendor/tracemonkey/trace-test/tests/basic/testConstSwitch.js +13 -0
  3657. data/vendor/tracemonkey/trace-test/tests/basic/testConstSwitch2.js +6 -0
  3658. data/vendor/tracemonkey/trace-test/tests/basic/testConstantBooleanExpr.js +6 -0
  3659. data/vendor/tracemonkey/trace-test/tests/basic/testConstructorBail.js +4 -0
  3660. data/vendor/tracemonkey/trace-test/tests/basic/testContinue.js +11 -0
  3661. data/vendor/tracemonkey/trace-test/tests/basic/testContinueWithLabel.js +16 -0
  3662. data/vendor/tracemonkey/trace-test/tests/basic/testContinueWithLabel2.js +7 -0
  3663. data/vendor/tracemonkey/trace-test/tests/basic/testContinueWithLabel3.js +6 -0
  3664. data/vendor/tracemonkey/trace-test/tests/basic/testContinueWithLabel4.js +25 -0
  3665. data/vendor/tracemonkey/trace-test/tests/basic/testConvertibleObjectEqUndefined.js +33 -0
  3666. data/vendor/tracemonkey/trace-test/tests/basic/testCustomIterator.js +26 -0
  3667. data/vendor/tracemonkey/trace-test/tests/basic/testDateNow.js +15 -0
  3668. data/vendor/tracemonkey/trace-test/tests/basic/testDecayingInnerLoop.js +9 -0
  3669. data/vendor/tracemonkey/trace-test/tests/basic/testDeepBail1.js +6 -0
  3670. data/vendor/tracemonkey/trace-test/tests/basic/testDeepBailFromHasInstance.js +12 -0
  3671. data/vendor/tracemonkey/trace-test/tests/basic/testDeepPropertyShadowing.js +17 -0
  3672. data/vendor/tracemonkey/trace-test/tests/basic/testDenseArrayProp.js +12 -0
  3673. data/vendor/tracemonkey/trace-test/tests/basic/testDestructuring.js +9 -0
  3674. data/vendor/tracemonkey/trace-test/tests/basic/testDifferingArgc.js +18 -0
  3675. data/vendor/tracemonkey/trace-test/tests/basic/testDivOverflow.js +6 -0
  3676. data/vendor/tracemonkey/trace-test/tests/basic/testDivision.js +10 -0
  3677. data/vendor/tracemonkey/trace-test/tests/basic/testDivisionFloat.js +10 -0
  3678. data/vendor/tracemonkey/trace-test/tests/basic/testDivisionWithNegative1.js +6 -0
  3679. data/vendor/tracemonkey/trace-test/tests/basic/testDoubleComparison.js +16 -0
  3680. data/vendor/tracemonkey/trace-test/tests/basic/testDoubleToStr.js +9 -0
  3681. data/vendor/tracemonkey/trace-test/tests/basic/testEliminatedGuardWithinAnchor.js +12 -0
  3682. data/vendor/tracemonkey/trace-test/tests/basic/testEqFalseEmptyString.js +6 -0
  3683. data/vendor/tracemonkey/trace-test/tests/basic/testFewerGlobalsInInnerTree.js +14 -0
  3684. data/vendor/tracemonkey/trace-test/tests/basic/testFloatArrayIndex.js +9 -0
  3685. data/vendor/tracemonkey/trace-test/tests/basic/testForEach.js +11 -0
  3686. data/vendor/tracemonkey/trace-test/tests/basic/testForInLoopChangeIteratorType.js +11 -0
  3687. data/vendor/tracemonkey/trace-test/tests/basic/testFunctionIdentityChange.js +21 -0
  3688. data/vendor/tracemonkey/trace-test/tests/basic/testGCWhileRecording.js +12 -0
  3689. data/vendor/tracemonkey/trace-test/tests/basic/testGeneratorDeepBail.js +11 -0
  3690. data/vendor/tracemonkey/trace-test/tests/basic/testGetCallObj.js +11 -0
  3691. data/vendor/tracemonkey/trace-test/tests/basic/testGetThis.js +7 -0
  3692. data/vendor/tracemonkey/trace-test/tests/basic/testGlobalMultitrees1.js +11 -0
  3693. data/vendor/tracemonkey/trace-test/tests/basic/testGlobalProtoAccess.js +5 -0
  3694. data/vendor/tracemonkey/trace-test/tests/basic/testGlobalShapeChangeAfterDeepBail.js +15 -0
  3695. data/vendor/tracemonkey/trace-test/tests/basic/testGrowDenseArray.js +7 -0
  3696. data/vendor/tracemonkey/trace-test/tests/basic/testHOTLOOPCorrectness.js +14 -0
  3697. data/vendor/tracemonkey/trace-test/tests/basic/testHOTLOOPSize.js +4 -0
  3698. data/vendor/tracemonkey/trace-test/tests/basic/testHeavy.js +14 -0
  3699. data/vendor/tracemonkey/trace-test/tests/basic/testHeavy2.js +20 -0
  3700. data/vendor/tracemonkey/trace-test/tests/basic/testHolePushing.js +13 -0
  3701. data/vendor/tracemonkey/trace-test/tests/basic/testINITELEM.js +8 -0
  3702. data/vendor/tracemonkey/trace-test/tests/basic/testIn.js +19 -0
  3703. data/vendor/tracemonkey/trace-test/tests/basic/testIncDec.js +19 -0
  3704. data/vendor/tracemonkey/trace-test/tests/basic/testInitelemWithFloatIndex.js +3 -0
  3705. data/vendor/tracemonkey/trace-test/tests/basic/testInitelemWithSetter.js +3 -0
  3706. data/vendor/tracemonkey/trace-test/tests/basic/testInnerMissingArgs.js +21 -0
  3707. data/vendor/tracemonkey/trace-test/tests/basic/testInnerSwitchBreak.js +24 -0
  3708. data/vendor/tracemonkey/trace-test/tests/basic/testInt32ToId.js +39 -0
  3709. data/vendor/tracemonkey/trace-test/tests/basic/testIntFloor.js +8 -0
  3710. data/vendor/tracemonkey/trace-test/tests/basic/testIntOverflow.js +15 -0
  3711. data/vendor/tracemonkey/trace-test/tests/basic/testIntUnderflow.js +15 -0
  3712. data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentery8.js +6 -0
  3713. data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry.js +6 -0
  3714. data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry2.js +11 -0
  3715. data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry3.js +7 -0
  3716. data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry4.js +6 -0
  3717. data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry5.js +9 -0
  3718. data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry6.js +7 -0
  3719. data/vendor/tracemonkey/trace-test/tests/basic/testInterpreterReentry7.js +11 -0
  3720. data/vendor/tracemonkey/trace-test/tests/basic/testInvalidCharCodeAt.js +12 -0
  3721. data/vendor/tracemonkey/trace-test/tests/basic/testInvertNullAfterNegateNull.js +7 -0
  3722. data/vendor/tracemonkey/trace-test/tests/basic/testLambdaCtor.js +14 -0
  3723. data/vendor/tracemonkey/trace-test/tests/basic/testLambdaInitedVar.js +8 -0
  3724. data/vendor/tracemonkey/trace-test/tests/basic/testLengthInString.js +12 -0
  3725. data/vendor/tracemonkey/trace-test/tests/basic/testLengthOnNonNativeProto.js +20 -0
  3726. data/vendor/tracemonkey/trace-test/tests/basic/testLetWithUnstableGlobal.js +11 -0
  3727. data/vendor/tracemonkey/trace-test/tests/basic/testLirBufOOM.js +34 -0
  3728. data/vendor/tracemonkey/trace-test/tests/basic/testLogicalNotNaN.js +8 -0
  3729. data/vendor/tracemonkey/trace-test/tests/basic/testLongNumToString.js +7 -0
  3730. data/vendor/tracemonkey/trace-test/tests/basic/testLoopWithUndefined1.js +12 -0
  3731. data/vendor/tracemonkey/trace-test/tests/basic/testLoopWithUndefined2.js +20 -0
  3732. data/vendor/tracemonkey/trace-test/tests/basic/testLoopingAccumulator.js +21 -0
  3733. data/vendor/tracemonkey/trace-test/tests/basic/testMatchAsCondition.js +8 -0
  3734. data/vendor/tracemonkey/trace-test/tests/basic/testMatchStringObject.js +8 -0
  3735. data/vendor/tracemonkey/trace-test/tests/basic/testMethodInit.js +15 -0
  3736. data/vendor/tracemonkey/trace-test/tests/basic/testMethodInitSafety.js +14 -0
  3737. data/vendor/tracemonkey/trace-test/tests/basic/testMethodSet.js +18 -0
  3738. data/vendor/tracemonkey/trace-test/tests/basic/testModuloWithNegative1.js +11 -0
  3739. data/vendor/tracemonkey/trace-test/tests/basic/testModuloWithNegative2.js +7 -0
  3740. data/vendor/tracemonkey/trace-test/tests/basic/testMoreArgcThanNargs.js +14 -0
  3741. data/vendor/tracemonkey/trace-test/tests/basic/testMoreClosures.js +14 -0
  3742. data/vendor/tracemonkey/trace-test/tests/basic/testMulOverflow.js +6 -0
  3743. data/vendor/tracemonkey/trace-test/tests/basic/testMultipleArgumentsObjects.js +12 -0
  3744. data/vendor/tracemonkey/trace-test/tests/basic/testNEWINIT.js +8 -0
  3745. data/vendor/tracemonkey/trace-test/tests/basic/testNEWINIT_DOUBLE.js +6 -0
  3746. data/vendor/tracemonkey/trace-test/tests/basic/testNativeArgsRooting.js +14 -0
  3747. data/vendor/tracemonkey/trace-test/tests/basic/testNativeLog.js +8 -0
  3748. data/vendor/tracemonkey/trace-test/tests/basic/testNativeMax.js +20 -0
  3749. data/vendor/tracemonkey/trace-test/tests/basic/testNativeSetter.js +14 -0
  3750. data/vendor/tracemonkey/trace-test/tests/basic/testNegZero1.js +9 -0
  3751. data/vendor/tracemonkey/trace-test/tests/basic/testNegativeArrayLength.js +10 -0
  3752. data/vendor/tracemonkey/trace-test/tests/basic/testNegativeGETELEMIndex.js +6 -0
  3753. data/vendor/tracemonkey/trace-test/tests/basic/testNestedClosures.js +23 -0
  3754. data/vendor/tracemonkey/trace-test/tests/basic/testNestedDeepBail.js +19 -0
  3755. data/vendor/tracemonkey/trace-test/tests/basic/testNestedEscapingLambdas.js +31 -0
  3756. data/vendor/tracemonkey/trace-test/tests/basic/testNestedExitStackOuter.js +29 -0
  3757. data/vendor/tracemonkey/trace-test/tests/basic/testNestedForIn.js +9 -0
  3758. data/vendor/tracemonkey/trace-test/tests/basic/testNewArrayCount.js +11 -0
  3759. data/vendor/tracemonkey/trace-test/tests/basic/testNewArrayCount2.js +7 -0
  3760. data/vendor/tracemonkey/trace-test/tests/basic/testNewDate.js +17 -0
  3761. data/vendor/tracemonkey/trace-test/tests/basic/testNewString.js +27 -0
  3762. data/vendor/tracemonkey/trace-test/tests/basic/testNewWithNonNativeProto.js +14 -0
  3763. data/vendor/tracemonkey/trace-test/tests/basic/testNonStubGetter.js +7 -0
  3764. data/vendor/tracemonkey/trace-test/tests/basic/testNot.js +8 -0
  3765. data/vendor/tracemonkey/trace-test/tests/basic/testNullCallee.js +16 -0
  3766. data/vendor/tracemonkey/trace-test/tests/basic/testNullRelCmp.js +6 -0
  3767. data/vendor/tracemonkey/trace-test/tests/basic/testNullToString.js +18 -0
  3768. data/vendor/tracemonkey/trace-test/tests/basic/testNumToString.js +18 -0
  3769. data/vendor/tracemonkey/trace-test/tests/basic/testNumberToString.js +6 -0
  3770. data/vendor/tracemonkey/trace-test/tests/basic/testObjectLength.js +15 -0
  3771. data/vendor/tracemonkey/trace-test/tests/basic/testObjectOrderedCmp.js +7 -0
  3772. data/vendor/tracemonkey/trace-test/tests/basic/testObjectOrderedCmp2.js +7 -0
  3773. data/vendor/tracemonkey/trace-test/tests/basic/testObjectToNumber.js +8 -0
  3774. data/vendor/tracemonkey/trace-test/tests/basic/testObjectToString.js +8 -0
  3775. data/vendor/tracemonkey/trace-test/tests/basic/testObjectVsPrototype.js +12 -0
  3776. data/vendor/tracemonkey/trace-test/tests/basic/testOwnPropertyWithInOperator.js +12 -0
  3777. data/vendor/tracemonkey/trace-test/tests/basic/testPrimitiveConstructorPrototype.js +7 -0
  3778. data/vendor/tracemonkey/trace-test/tests/basic/testPropagatedFunArgs.js +34 -0
  3779. data/vendor/tracemonkey/trace-test/tests/basic/testRUNLOOPCorrectness.js +15 -0
  3780. data/vendor/tracemonkey/trace-test/tests/basic/testReallyDeepNestedExit.js +38 -0
  3781. data/vendor/tracemonkey/trace-test/tests/basic/testRebranding.js +10 -0
  3782. data/vendor/tracemonkey/trace-test/tests/basic/testRebranding2.js +21 -0
  3783. data/vendor/tracemonkey/trace-test/tests/basic/testRegExpTest.js +10 -0
  3784. data/vendor/tracemonkey/trace-test/tests/basic/testRegexpGet.js +8 -0
  3785. data/vendor/tracemonkey/trace-test/tests/basic/testReplace2.js +7 -0
  3786. data/vendor/tracemonkey/trace-test/tests/basic/testResumeOp.js +8 -0
  3787. data/vendor/tracemonkey/trace-test/tests/basic/testReverseArgTypes.js +5 -0
  3788. data/vendor/tracemonkey/trace-test/tests/basic/testSetPropNeitherMissNorHit.js +5 -0
  3789. data/vendor/tracemonkey/trace-test/tests/basic/testSetPropertyFail.js +22 -0
  3790. data/vendor/tracemonkey/trace-test/tests/basic/testSetProtoRegeneratesObjectShape.js +24 -0
  3791. data/vendor/tracemonkey/trace-test/tests/basic/testSetelemWithFloatIndex.js +4 -0
  3792. data/vendor/tracemonkey/trace-test/tests/basic/testShiftLeft.js +38 -0
  3793. data/vendor/tracemonkey/trace-test/tests/basic/testShiftRightArithmetic.js +35 -0
  3794. data/vendor/tracemonkey/trace-test/tests/basic/testShiftRightLogical.js +38 -0
  3795. data/vendor/tracemonkey/trace-test/tests/basic/testSideExitInConstructor.js +39 -0
  3796. data/vendor/tracemonkey/trace-test/tests/basic/testSlowArrayLength.js +15 -0
  3797. data/vendor/tracemonkey/trace-test/tests/basic/testSlowArrayPop.js +12 -0
  3798. data/vendor/tracemonkey/trace-test/tests/basic/testSlowArrayPopMultiFrame.js +24 -0
  3799. data/vendor/tracemonkey/trace-test/tests/basic/testSlowArrayPopNestedTrees.js +36 -0
  3800. data/vendor/tracemonkey/trace-test/tests/basic/testSlowNativeBail.js +10 -0
  3801. data/vendor/tracemonkey/trace-test/tests/basic/testSlowNativeCtor.js +7 -0
  3802. data/vendor/tracemonkey/trace-test/tests/basic/testStrict.js +11 -0
  3803. data/vendor/tracemonkey/trace-test/tests/basic/testString.js +18 -0
  3804. data/vendor/tracemonkey/trace-test/tests/basic/testStringConstructorWithExtraArg.js +6 -0
  3805. data/vendor/tracemonkey/trace-test/tests/basic/testStringLengthNoTinyId.js +64 -0
  3806. data/vendor/tracemonkey/trace-test/tests/basic/testStringObjectLength.js +7 -0
  3807. data/vendor/tracemonkey/trace-test/tests/basic/testStringResolve.js +9 -0
  3808. data/vendor/tracemonkey/trace-test/tests/basic/testStringToInt32.js +6 -0
  3809. data/vendor/tracemonkey/trace-test/tests/basic/testStringify.js +20 -0
  3810. data/vendor/tracemonkey/trace-test/tests/basic/testSubstring.js +7 -0
  3811. data/vendor/tracemonkey/trace-test/tests/basic/testSwitch.js +25 -0
  3812. data/vendor/tracemonkey/trace-test/tests/basic/testSwitchString.js +28 -0
  3813. data/vendor/tracemonkey/trace-test/tests/basic/testSwitchUndefined.js +15 -0
  3814. data/vendor/tracemonkey/trace-test/tests/basic/testTableSwitch1.js +22 -0
  3815. data/vendor/tracemonkey/trace-test/tests/basic/testTableSwitch2.js +27 -0
  3816. data/vendor/tracemonkey/trace-test/tests/basic/testThinForEach.js +10 -0
  3817. data/vendor/tracemonkey/trace-test/tests/basic/testThinLoopDemote.js +20 -0
  3818. data/vendor/tracemonkey/trace-test/tests/basic/testThrowingObjectEqUndefined.js +18 -0
  3819. data/vendor/tracemonkey/trace-test/tests/basic/testToStringBeforeValueOf.js +13 -0
  3820. data/vendor/tracemonkey/trace-test/tests/basic/testToUpperToLower.js +9 -0
  3821. data/vendor/tracemonkey/trace-test/tests/basic/testTrueShiftTrue.js +16 -0
  3822. data/vendor/tracemonkey/trace-test/tests/basic/testTypeUnstableForIn.js +10 -0
  3823. data/vendor/tracemonkey/trace-test/tests/basic/testTypeofHole.js +8 -0
  3824. data/vendor/tracemonkey/trace-test/tests/basic/testUnaryImacros.js +26 -0
  3825. data/vendor/tracemonkey/trace-test/tests/basic/testUndefinedBooleanCmp.js +24 -0
  3826. data/vendor/tracemonkey/trace-test/tests/basic/testUndefinedCmp.js +6 -0
  3827. data/vendor/tracemonkey/trace-test/tests/basic/testUndefinedPropertyAccess.js +15 -0
  3828. data/vendor/tracemonkey/trace-test/tests/basic/testUndemotableBinaryOp.js +6 -0
  3829. data/vendor/tracemonkey/trace-test/tests/basic/testUndemoteLateGlobalSlots.js +11 -0
  3830. data/vendor/tracemonkey/trace-test/tests/basic/testWeirdDateParse.js +46 -0
  3831. data/vendor/tracemonkey/trace-test/tests/basic/testWhileObjectOrNull.js +18 -0
  3832. data/vendor/tracemonkey/trace-test/tests/basic/test_JSOP_ARGCNT.js +27 -0
  3833. data/vendor/tracemonkey/trace-test/tests/basic/test_JSOP_ARGSUB.js +27 -0
  3834. data/vendor/tracemonkey/trace-test/tests/basic/testif.js +11 -0
  3835. data/vendor/tracemonkey/trace-test/tests/basic/testincops.js +24 -0
  3836. data/vendor/tracemonkey/trace-test/tests/basic/trees.js +10 -0
  3837. data/vendor/tracemonkey/trace-test/tests/basic/truthies.js +29 -0
  3838. data/vendor/tracemonkey/trace-test/tests/basic/typeofTest.js +8 -0
  3839. data/vendor/tracemonkey/trace-test/tests/basic/unboxint.js +8 -0
  3840. data/vendor/tracemonkey/trace-test/tests/basic/xprop.js +8 -0
  3841. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-3d-morph.js +5 -1
  3842. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-3d-raytrace.js +1 -3
  3843. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-access-binary-trees.js +1 -1
  3844. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-access-fannkuch.js +1 -1
  3845. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-access-nbody.js +1 -1
  3846. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-access-nsieve.js +1 -1
  3847. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-bitops-3bit-bits-in-byte.js +1 -1
  3848. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-bitops-bits-in-byte.js +1 -1
  3849. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-bitops-bitwise-and.js +1 -1
  3850. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-bitops-nsieve-bits.js +1 -1
  3851. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-controlflow-recursive.js +1 -1
  3852. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-date-format-tofte.js +1 -1
  3853. data/vendor/tracemonkey/trace-test/tests/sunspider/check-date-format-xparb.js +422 -0
  3854. data/vendor/tracemonkey/{correct → trace-test/tests/sunspider}/check-mont.js +1 -1
  3855. data/vendor/tracemonkey/trace-test/trace-test.py +330 -0
  3856. data/vendor/tracemonkey/tracevis/README +50 -0
  3857. data/vendor/tracemonkey/tracevis/acts.py +64 -0
  3858. data/vendor/tracemonkey/tracevis/binlog.py +140 -0
  3859. data/vendor/tracemonkey/tracevis/config.py +5 -0
  3860. data/vendor/tracemonkey/tracevis/tree.py +282 -0
  3861. data/vendor/tracemonkey/tracevis/vis.py +233 -0
  3862. data/vendor/tracemonkey/{config/revdepth-nt.pl → vprof/manifest.mk} +8 -17
  3863. data/vendor/tracemonkey/vprof/testVprofMT.c +125 -0
  3864. data/vendor/tracemonkey/vprof/vprof.h +10 -12
  3865. data/vendor/tracemonkey/xpconnect/idl/nsIXPCScriptable.idl +2 -2
  3866. data/vendor/tracemonkey/xpconnect/idl/nsIXPConnect.idl +43 -22
  3867. data/vendor/tracemonkey/xpconnect/idl/xpcIJSWeakReference.idl +0 -0
  3868. data/vendor/tracemonkey/xpconnect/idl/xpcexception.idl +12 -1
  3869. data/vendor/tracemonkey/xpconnect/loader/XPCOMUtils.jsm +49 -3
  3870. data/vendor/tracemonkey/xpconnect/loader/mozJSComponentLoader.cpp +10 -20
  3871. data/vendor/tracemonkey/xpconnect/shell/Makefile.in +2 -1
  3872. data/vendor/tracemonkey/xpconnect/shell/xpcshell.cpp +120 -40
  3873. data/vendor/tracemonkey/xpconnect/src/Makefile.in +10 -7
  3874. data/vendor/tracemonkey/xpconnect/src/XPCChromeObjectWrapper.cpp +769 -0
  3875. data/vendor/tracemonkey/xpconnect/src/XPCCrossOriginWrapper.cpp +25 -19
  3876. data/vendor/tracemonkey/xpconnect/src/XPCDispConvert.cpp +4 -0
  3877. data/vendor/tracemonkey/xpconnect/src/XPCDispInlines.h +4 -5
  3878. data/vendor/tracemonkey/xpconnect/src/XPCDispPrivate.h +2 -10
  3879. data/vendor/tracemonkey/xpconnect/src/XPCDispTypeInfo.cpp +7 -12
  3880. data/vendor/tracemonkey/xpconnect/src/XPCIDispatchExtension.cpp +0 -198
  3881. data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.cpp +16 -9
  3882. data/vendor/tracemonkey/xpconnect/src/XPCNativeWrapper.h +1 -1
  3883. data/vendor/tracemonkey/xpconnect/src/XPCSafeJSObjectWrapper.cpp +143 -269
  3884. data/vendor/tracemonkey/xpconnect/src/XPCSystemOnlyWrapper.cpp +9 -1
  3885. data/vendor/tracemonkey/xpconnect/src/XPCWrapper.cpp +3 -2
  3886. data/vendor/tracemonkey/xpconnect/src/XPCWrapper.h +19 -4
  3887. data/vendor/tracemonkey/xpconnect/src/dom_quickstubs.qsconf +44 -48
  3888. data/vendor/tracemonkey/xpconnect/src/nsDispatchSupport.cpp +6 -3
  3889. data/vendor/tracemonkey/xpconnect/src/nsXPConnect.cpp +325 -202
  3890. data/vendor/tracemonkey/xpconnect/src/qsgen.py +67 -71
  3891. data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.cpp +0 -0
  3892. data/vendor/tracemonkey/xpconnect/src/xpcJSWeakReference.h +0 -0
  3893. data/vendor/tracemonkey/xpconnect/src/xpccallcontext.cpp +82 -13
  3894. data/vendor/tracemonkey/xpconnect/src/xpccomponents.cpp +36 -28
  3895. data/vendor/tracemonkey/xpconnect/src/xpcconvert.cpp +139 -44
  3896. data/vendor/tracemonkey/xpconnect/src/xpcdebug.cpp +7 -0
  3897. data/vendor/tracemonkey/xpconnect/src/xpcexception.cpp +13 -7
  3898. data/vendor/tracemonkey/xpconnect/src/xpcforwards.h +0 -1
  3899. data/vendor/tracemonkey/xpconnect/src/xpcinlines.h +27 -10
  3900. data/vendor/tracemonkey/xpconnect/src/xpcjsid.cpp +47 -35
  3901. data/vendor/tracemonkey/xpconnect/src/xpcjsruntime.cpp +48 -67
  3902. data/vendor/tracemonkey/xpconnect/src/xpclog.cpp +35 -0
  3903. data/vendor/tracemonkey/xpconnect/src/xpclog.h +55 -0
  3904. data/vendor/tracemonkey/xpconnect/src/xpcprivate.h +322 -75
  3905. data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.cpp +142 -114
  3906. data/vendor/tracemonkey/xpconnect/src/xpcquickstubs.h +25 -49
  3907. data/vendor/tracemonkey/xpconnect/src/xpcstring.cpp +14 -7
  3908. data/vendor/tracemonkey/xpconnect/src/xpcthreadcontext.cpp +6 -6
  3909. data/vendor/tracemonkey/xpconnect/src/xpcthrower.cpp +10 -3
  3910. data/vendor/tracemonkey/xpconnect/src/xpcvariant.cpp +9 -8
  3911. data/vendor/tracemonkey/xpconnect/src/xpcwrappedjs.cpp +15 -14
  3912. data/vendor/tracemonkey/xpconnect/src/xpcwrappedjsclass.cpp +109 -111
  3913. data/vendor/tracemonkey/xpconnect/src/xpcwrappednative.cpp +498 -118
  3914. data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeinfo.cpp +5 -6
  3915. data/vendor/tracemonkey/xpconnect/src/xpcwrappednativejsops.cpp +188 -25
  3916. data/vendor/tracemonkey/xpconnect/src/xpcwrappednativeproto.cpp +6 -3
  3917. data/vendor/tracemonkey/xpconnect/src/xpcwrappednativescope.cpp +46 -27
  3918. data/vendor/tracemonkey/xpconnect/tests/TestXPC.cpp +118 -115
  3919. data/vendor/tracemonkey/xpconnect/tests/chrome/Makefile.in +2 -0
  3920. data/vendor/tracemonkey/xpconnect/tests/chrome/bug503926.xul +28 -0
  3921. data/vendor/tracemonkey/xpconnect/tests/chrome/test_bug503926.xul +43 -0
  3922. data/vendor/tracemonkey/xpconnect/tests/idispatch/Tests/jsDriver.pl +1 -61
  3923. data/vendor/tracemonkey/xpconnect/tests/js/old/xpctest_observer.js +1 -2
  3924. data/vendor/tracemonkey/xpconnect/tests/mochitest/Makefile.in +3 -0
  3925. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug390488.html +1 -1
  3926. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug393269.html +1 -1
  3927. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug396851.html +1 -1
  3928. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug428021.html +1 -1
  3929. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug446584.html +1 -1
  3930. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug448587.html +1 -1
  3931. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug462428.html +1 -1
  3932. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug478438.html +1 -1
  3933. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug484107.html +1 -1
  3934. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug502959.html +38 -0
  3935. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_bug503926.html +30 -0
  3936. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_cows.html +179 -0
  3937. data/vendor/tracemonkey/xpconnect/tests/mochitest/test_wrappers.html +9 -0
  3938. data/vendor/tracemonkey/xpconnect/tests/unit/test_iterate.js +54 -0
  3939. data/vendor/tracemonkey/xpconnect/tests/unit/test_js_weak_references.js +0 -0
  3940. data/vendor/tracemonkey/xpconnect/tests/unit/test_xpcomutils.js +135 -0
  3941. data/vendor/tracemonkey/xpconnect/tools/src/nsXPCToolsCompiler.cpp +1 -1
  3942. data/vendor/tracemonkey/xpconnect/tools/src/xpctools_private.h +1 -1
  3943. metadata +3711 -35
  3944. data/vendor/tracemonkey/build/autoconf/update-makefile.sh +0 -118
  3945. data/vendor/tracemonkey/correct.sh +0 -23
  3946. data/vendor/tracemonkey/correct/check-date-format-xparb.js +0 -421
  3947. data/vendor/tracemonkey/if.js +0 -13
  3948. data/vendor/tracemonkey/js3240.rc +0 -79
  3949. data/vendor/tracemonkey/jsOS240.def +0 -654
  3950. data/vendor/tracemonkey/math-partial-sums.js +0 -32
  3951. data/vendor/tracemonkey/md5.js +0 -289
  3952. data/vendor/tracemonkey/nanojit/NativeThumb.cpp +0 -1322
  3953. data/vendor/tracemonkey/nanojit/NativeThumb.h +0 -525
  3954. data/vendor/tracemonkey/nanojit/TraceTreeDrawer.cpp +0 -306
@@ -1,4 +1,5 @@
1
- /* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 40 -*- */
1
+ /* -*- Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- */
2
+ /* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */
2
3
  /* ***** BEGIN LICENSE BLOCK *****
3
4
  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
4
5
  *
@@ -39,19 +40,16 @@
39
40
 
40
41
  #include "nanojit.h"
41
42
 
42
- #ifdef AVMPLUS_PORTING_API
43
- #include "portapi_nanojit.h"
44
- #endif
45
-
46
43
  #ifdef UNDER_CE
47
44
  #include <cmnintrin.h>
45
+ extern "C" bool blx_lr_broken();
48
46
  #endif
49
47
 
50
48
  #if defined(AVMPLUS_LINUX)
51
49
  #include <signal.h>
52
50
  #include <setjmp.h>
53
51
  #include <asm/unistd.h>
54
- extern "C" void __clear_cache(char *BEG, char *END);
52
+ extern "C" void __clear_cache(void *BEG, void *END);
55
53
  #endif
56
54
 
57
55
  // assume EABI, except under CE
@@ -77,9 +75,403 @@ const Register Assembler::argRegs[] = { R0, R1, R2, R3 };
77
75
  const Register Assembler::retRegs[] = { R0, R1 };
78
76
  const Register Assembler::savedRegs[] = { R4, R5, R6, R7, R8, R9, R10 };
79
77
 
78
+ // --------------------------------
79
+ // ARM-specific utility functions.
80
+ // --------------------------------
81
+
82
+ #ifdef DEBUG
83
+ // Return true if enc is a valid Operand 2 encoding and thus can be used as-is
84
+ // in an ARM arithmetic operation that accepts such encoding.
85
+ //
86
+ // This utility does not know (or determine) the actual value that the encoded
87
+ // value represents, and thus cannot be used to ensure the correct operation of
88
+ // encOp2Imm, but it does ensure that the encoded value can be used to encode a
89
+ // valid ARM instruction. decOp2Imm can be used if you also need to check that
90
+ // a literal is correctly encoded (and thus that encOp2Imm is working
91
+ // correctly).
92
+ inline bool
93
+ Assembler::isOp2Imm(uint32_t enc)
94
+ {
95
+ return ((enc & 0xfff) == enc);
96
+ }
97
+
98
+ // Decodes operand 2 immediate values (for debug output and assertions).
99
+ inline uint32_t
100
+ Assembler::decOp2Imm(uint32_t enc)
101
+ {
102
+ NanoAssert(isOp2Imm(enc));
103
+
104
+ uint32_t imm8 = enc & 0xff;
105
+ uint32_t rot = 32 - ((enc >> 7) & 0x1e);
106
+
107
+ return imm8 << (rot & 0x1f);
108
+ }
109
+ #endif
110
+
111
+ // Calculate the number of leading zeroes in data.
112
+ inline uint32_t
113
+ Assembler::CountLeadingZeroes(uint32_t data)
114
+ {
115
+ uint32_t leading_zeroes;
116
+
117
+ // We can't do CLZ on anything earlier than ARMv5. Architectures as early
118
+ // as that aren't supported, but assert that we aren't running on one
119
+ // anyway.
120
+ // If ARMv4 support is required in the future for some reason, we can do a
121
+ // run-time check on config.arch and fall back to the C routine, but for
122
+ // now we can avoid the cost of the check as we don't intend to support
123
+ // ARMv4 anyway.
124
+ NanoAssert(ARM_ARCH >= 5);
125
+
126
+ #if defined(__ARMCC__)
127
+ // ARMCC can do this with an intrinsic.
128
+ leading_zeroes = __clz(data);
129
+
130
+ // current Android GCC compiler incorrectly refuses to compile 'clz' for armv5
131
+ // (even though this is a legal instruction there). Since we currently only compile for ARMv5
132
+ // for emulation, we don't care too much (but we DO care for ARMv6+ since those are "real"
133
+ // devices).
134
+ #elif defined(__GNUC__) && !(defined(ANDROID) && __ARM_ARCH__ <= 5)
135
+ // GCC can use inline assembler to insert a CLZ instruction.
136
+ __asm (
137
+ " clz %0, %1 \n"
138
+ : "=r" (leading_zeroes)
139
+ : "r" (data)
140
+ );
141
+ #elif defined(WINCE)
142
+ // WinCE can do this with an intrinsic.
143
+ leading_zeroes = _CountLeadingZeros(data);
144
+ #else
145
+ // Other platforms must fall back to a C routine. This won't be as
146
+ // efficient as the CLZ instruction, but it is functional.
147
+ uint32_t try_shift;
148
+
149
+ leading_zeroes = 0;
150
+
151
+ // This loop does a bisection search rather than the obvious rotation loop.
152
+ // This should be faster, though it will still be no match for CLZ.
153
+ for (try_shift = 16; try_shift != 0; try_shift /= 2) {
154
+ uint32_t shift = leading_zeroes + try_shift;
155
+ if (((data << shift) >> shift) == data) {
156
+ leading_zeroes = shift;
157
+ }
158
+ }
159
+ #endif
160
+
161
+ // Assert that the operation worked!
162
+ NanoAssert(((0xffffffff >> leading_zeroes) & data) == data);
163
+
164
+ return leading_zeroes;
165
+ }
166
+
167
+ // The ARM instruction set allows some flexibility to the second operand of
168
+ // most arithmetic operations. When operand 2 is an immediate value, it takes
169
+ // the form of an 8-bit value rotated by an even value in the range 0-30.
170
+ //
171
+ // Some values that can be encoded this scheme — such as 0xf000000f — are
172
+ // probably fairly rare in practice and require extra code to detect, so this
173
+ // function implements a fast CLZ-based heuristic to detect any value that can
174
+ // be encoded using just a shift, and not a full rotation. For example,
175
+ // 0xff000000 and 0x000000ff are both detected, but 0xf000000f is not.
176
+ //
177
+ // This function will return true to indicate that the encoding was successful,
178
+ // or false to indicate that the literal could not be encoded as an operand 2
179
+ // immediate. If successful, the encoded value will be written to *enc.
180
+ inline bool
181
+ Assembler::encOp2Imm(uint32_t literal, uint32_t * enc)
182
+ {
183
+ // The number of leading zeroes in the literal. This is used to calculate
184
+ // the rotation component of the encoding.
185
+ uint32_t leading_zeroes;
186
+
187
+ // Components of the operand 2 encoding.
188
+ uint32_t rot;
189
+ uint32_t imm8;
190
+
191
+ // Check the literal to see if it is a simple 8-bit value. I suspect that
192
+ // most literals are in fact small values, so doing this check early should
193
+ // give a decent speed-up.
194
+ if (literal < 256)
195
+ {
196
+ *enc = literal;
197
+ return true;
198
+ }
199
+
200
+ // Determine the number of leading zeroes in the literal. This is used to
201
+ // calculate the required rotation.
202
+ leading_zeroes = CountLeadingZeroes(literal);
203
+
204
+ // We've already done a check to see if the literal is an 8-bit value, so
205
+ // leading_zeroes must be less than (and not equal to) (32-8)=24. However,
206
+ // if it is greater than 24, this algorithm will break, so debug code
207
+ // should use an assertion here to check that we have a value that we
208
+ // expect.
209
+ NanoAssert(leading_zeroes < 24);
210
+
211
+ // Assuming that we have a field of no more than 8 bits for a valid
212
+ // literal, we can calculate the required rotation by subtracting
213
+ // leading_zeroes from (32-8):
214
+ //
215
+ // Example:
216
+ // 0: Known to be zero.
217
+ // 1: Known to be one.
218
+ // X: Either zero or one.
219
+ // .: Zero in a valid operand 2 literal.
220
+ //
221
+ // Literal: [ 1XXXXXXX ........ ........ ........ ]
222
+ // leading_zeroes = 0
223
+ // Therefore rot (left) = 24.
224
+ // Encoded 8-bit literal: [ 1XXXXXXX ]
225
+ //
226
+ // Literal: [ ........ ..1XXXXX XX...... ........ ]
227
+ // leading_zeroes = 10
228
+ // Therefore rot (left) = 14.
229
+ // Encoded 8-bit literal: [ 1XXXXXXX ]
230
+ //
231
+ // Note, however, that we can only encode even shifts, and so
232
+ // "rot=24-leading_zeroes" is not sufficient by itself. By ignoring
233
+ // zero-bits in odd bit positions, we can ensure that we get a valid
234
+ // encoding.
235
+ //
236
+ // Example:
237
+ // Literal: [ 01XXXXXX ........ ........ ........ ]
238
+ // leading_zeroes = 1
239
+ // Therefore rot (left) = round_up(23) = 24.
240
+ // Encoded 8-bit literal: [ 01XXXXXX ]
241
+ rot = 24 - (leading_zeroes & ~1);
242
+
243
+ // The imm8 component of the operand 2 encoding can be calculated from the
244
+ // rot value.
245
+ imm8 = literal >> rot;
246
+
247
+ // The validity of the literal can be checked by reversing the
248
+ // calculation. It is much easier to decode the immediate than it is to
249
+ // encode it!
250
+ if (literal != (imm8 << rot)) {
251
+ // The encoding is not valid, so report the failure. Calling code
252
+ // should use some other method of loading the value (such as LDR).
253
+ return false;
254
+ }
255
+
256
+ // The operand is valid, so encode it.
257
+ // Note that the ARM encoding is actually described by a rotate to the
258
+ // _right_, so rot must be negated here. Calculating a left shift (rather
259
+ // than calculating a right rotation) simplifies the above code.
260
+ *enc = ((-rot << 7) & 0xf00) | imm8;
261
+
262
+ // Assert that the operand was properly encoded.
263
+ NanoAssert(decOp2Imm(*enc) == literal);
264
+
265
+ return true;
266
+ }
267
+
268
+ // Encode "rd = rn + imm" using an appropriate instruction sequence.
269
+ // Set stat to 1 to update the status flags. Otherwise, set it to 0 or omit it.
270
+ // (The declaration in NativeARM.h defines the default value of stat as 0.)
271
+ //
272
+ // It is not valid to call this function if:
273
+ // (rd == IP) AND (rn == IP) AND !encOp2Imm(imm) AND !encOp2Imm(-imm)
274
+ // Where: if (encOp2Imm(imm)), imm can be encoded as an ARM operand 2 using the
275
+ // encOp2Imm method.
276
+ void
277
+ Assembler::asm_add_imm(Register rd, Register rn, int32_t imm, int stat /* =0 */)
278
+ {
279
+ // Operand 2 encoding of the immediate.
280
+ uint32_t op2imm;
281
+
282
+ NanoAssert(IsGpReg(rd));
283
+ NanoAssert(IsGpReg(rn));
284
+ NanoAssert((stat & 1) == stat);
285
+
286
+ // Try to encode the value directly as an operand 2 immediate value, then
287
+ // fall back to loading the value into a register.
288
+ if (encOp2Imm(imm, &op2imm)) {
289
+ ADDis(rd, rn, op2imm, stat);
290
+ } else if (encOp2Imm(-imm, &op2imm)) {
291
+ // We could not encode the value for ADD, so try to encode it for SUB.
292
+ // Note that this is valid even if stat is set, _unless_ imm is 0, but
293
+ // that case is caught above.
294
+ NanoAssert(imm != 0);
295
+ SUBis(rd, rn, op2imm, stat);
296
+ } else {
297
+ // We couldn't encode the value directly, so use an intermediate
298
+ // register to encode the value. We will use IP to do this unless rn is
299
+ // IP; in that case we can reuse rd. This allows every case other than
300
+ // "ADD IP, IP, =#imm".
301
+ Register rm = (rn == IP) ? (rd) : (IP);
302
+ NanoAssert(rn != rm);
303
+
304
+ ADDs(rd, rn, rm, stat);
305
+ asm_ld_imm(rm, imm);
306
+ }
307
+ }
308
+
309
+ // Encode "rd = rn - imm" using an appropriate instruction sequence.
310
+ // Set stat to 1 to update the status flags. Otherwise, set it to 0 or omit it.
311
+ // (The declaration in NativeARM.h defines the default value of stat as 0.)
312
+ //
313
+ // It is not valid to call this function if:
314
+ // (rd == IP) AND (rn == IP) AND !encOp2Imm(imm) AND !encOp2Imm(-imm)
315
+ // Where: if (encOp2Imm(imm)), imm can be encoded as an ARM operand 2 using the
316
+ // encOp2Imm method.
317
+ void
318
+ Assembler::asm_sub_imm(Register rd, Register rn, int32_t imm, int stat /* =0 */)
319
+ {
320
+ // Operand 2 encoding of the immediate.
321
+ uint32_t op2imm;
322
+
323
+ NanoAssert(IsGpReg(rd));
324
+ NanoAssert(IsGpReg(rn));
325
+ NanoAssert((stat & 1) == stat);
326
+
327
+ // Try to encode the value directly as an operand 2 immediate value, then
328
+ // fall back to loading the value into a register.
329
+ if (encOp2Imm(imm, &op2imm)) {
330
+ SUBis(rd, rn, op2imm, stat);
331
+ } else if (encOp2Imm(-imm, &op2imm)) {
332
+ // We could not encode the value for SUB, so try to encode it for ADD.
333
+ // Note that this is valid even if stat is set, _unless_ imm is 0, but
334
+ // that case is caught above.
335
+ NanoAssert(imm != 0);
336
+ ADDis(rd, rn, op2imm, stat);
337
+ } else {
338
+ // We couldn't encode the value directly, so use an intermediate
339
+ // register to encode the value. We will use IP to do this unless rn is
340
+ // IP; in that case we can reuse rd. This allows every case other than
341
+ // "SUB IP, IP, =#imm".
342
+ Register rm = (rn == IP) ? (rd) : (IP);
343
+ NanoAssert(rn != rm);
344
+
345
+ SUBs(rd, rn, rm, stat);
346
+ asm_ld_imm(rm, imm);
347
+ }
348
+ }
349
+
350
+ // Encode "rd = rn & imm" using an appropriate instruction sequence.
351
+ // Set stat to 1 to update the status flags. Otherwise, set it to 0 or omit it.
352
+ // (The declaration in NativeARM.h defines the default value of stat as 0.)
353
+ //
354
+ // It is not valid to call this function if:
355
+ // (rd == IP) AND (rn == IP) AND !encOp2Imm(imm) AND !encOp2Imm(~imm)
356
+ // Where: if (encOp2Imm(imm)), imm can be encoded as an ARM operand 2 using the
357
+ // encOp2Imm method.
358
+ void
359
+ Assembler::asm_and_imm(Register rd, Register rn, int32_t imm, int stat /* =0 */)
360
+ {
361
+ // Operand 2 encoding of the immediate.
362
+ uint32_t op2imm;
363
+
364
+ NanoAssert(IsGpReg(rd));
365
+ NanoAssert(IsGpReg(rn));
366
+ NanoAssert((stat & 1) == stat);
367
+
368
+ // Try to encode the value directly as an operand 2 immediate value, then
369
+ // fall back to loading the value into a register.
370
+ if (encOp2Imm(imm, &op2imm)) {
371
+ ANDis(rd, rn, op2imm, stat);
372
+ } else if (encOp2Imm(~imm, &op2imm)) {
373
+ // Use BIC with the inverted immediate.
374
+ BICis(rd, rn, op2imm, stat);
375
+ } else {
376
+ // We couldn't encode the value directly, so use an intermediate
377
+ // register to encode the value. We will use IP to do this unless rn is
378
+ // IP; in that case we can reuse rd. This allows every case other than
379
+ // "AND IP, IP, =#imm".
380
+ Register rm = (rn == IP) ? (rd) : (IP);
381
+ NanoAssert(rn != rm);
382
+
383
+ ANDs(rd, rn, rm, stat);
384
+ asm_ld_imm(rm, imm);
385
+ }
386
+ }
387
+
388
+ // Encode "rd = rn | imm" using an appropriate instruction sequence.
389
+ // Set stat to 1 to update the status flags. Otherwise, set it to 0 or omit it.
390
+ // (The declaration in NativeARM.h defines the default value of stat as 0.)
391
+ //
392
+ // It is not valid to call this function if:
393
+ // (rd == IP) AND (rn == IP) AND !encOp2Imm(imm)
394
+ // Where: if (encOp2Imm(imm)), imm can be encoded as an ARM operand 2 using the
395
+ // encOp2Imm method.
396
+ void
397
+ Assembler::asm_orr_imm(Register rd, Register rn, int32_t imm, int stat /* =0 */)
398
+ {
399
+ // Operand 2 encoding of the immediate.
400
+ uint32_t op2imm;
401
+
402
+ NanoAssert(IsGpReg(rd));
403
+ NanoAssert(IsGpReg(rn));
404
+ NanoAssert((stat & 1) == stat);
405
+
406
+ // Try to encode the value directly as an operand 2 immediate value, then
407
+ // fall back to loading the value into a register.
408
+ if (encOp2Imm(imm, &op2imm)) {
409
+ ORRis(rd, rn, op2imm, stat);
410
+ } else {
411
+ // We couldn't encode the value directly, so use an intermediate
412
+ // register to encode the value. We will use IP to do this unless rn is
413
+ // IP; in that case we can reuse rd. This allows every case other than
414
+ // "ORR IP, IP, =#imm".
415
+ Register rm = (rn == IP) ? (rd) : (IP);
416
+ NanoAssert(rn != rm);
417
+
418
+ ORRs(rd, rn, rm, stat);
419
+ asm_ld_imm(rm, imm);
420
+ }
421
+ }
422
+
423
+ // Encode "rd = rn ^ imm" using an appropriate instruction sequence.
424
+ // Set stat to 1 to update the status flags. Otherwise, set it to 0 or omit it.
425
+ // (The declaration in NativeARM.h defines the default value of stat as 0.)
426
+ //
427
+ // It is not valid to call this function if:
428
+ // (rd == IP) AND (rn == IP) AND !encOp2Imm(imm)
429
+ // Where: if (encOp2Imm(imm)), imm can be encoded as an ARM operand 2 using the
430
+ // encOp2Imm method.
431
+ void
432
+ Assembler::asm_eor_imm(Register rd, Register rn, int32_t imm, int stat /* =0 */)
433
+ {
434
+ // Operand 2 encoding of the immediate.
435
+ uint32_t op2imm;
436
+
437
+ NanoAssert(IsGpReg(rd));
438
+ NanoAssert(IsGpReg(rn));
439
+ NanoAssert((stat & 1) == stat);
440
+
441
+ // Try to encode the value directly as an operand 2 immediate value, then
442
+ // fall back to loading the value into a register.
443
+ if (encOp2Imm(imm, &op2imm)) {
444
+ EORis(rd, rn, op2imm, stat);
445
+ } else {
446
+ // We couldn't encoder the value directly, so use an intermediate
447
+ // register to encode the value. We will use IP to do this unless rn is
448
+ // IP; in that case we can reuse rd. This allows every case other than
449
+ // "EOR IP, IP, =#imm".
450
+ Register rm = (rn == IP) ? (rd) : (IP);
451
+ NanoAssert(rn != rm);
452
+
453
+ EORs(rd, rn, rm, stat);
454
+ asm_ld_imm(rm, imm);
455
+ }
456
+ }
457
+
458
+ // --------------------------------
459
+ // Assembler functions.
460
+ // --------------------------------
461
+
80
462
  void
81
463
  Assembler::nInit(AvmCore*)
82
464
  {
465
+ #ifdef UNDER_CE
466
+ blx_lr_bug = blx_lr_broken();
467
+ #else
468
+ blx_lr_bug = 0;
469
+ #endif
470
+ }
471
+
472
+ void Assembler::nBeginAssembly()
473
+ {
474
+ max_out_args = 0;
83
475
  }
84
476
 
85
477
  NIns*
@@ -91,17 +483,11 @@ Assembler::genPrologue()
91
483
 
92
484
  // NJ_RESV_OFFSET is space at the top of the stack for us
93
485
  // to use for parameter passing (8 bytes at the moment)
94
- uint32_t stackNeeded = STACK_GRANULARITY * _activation.highwatermark + NJ_STACK_OFFSET;
486
+ uint32_t stackNeeded = max_out_args + STACK_GRANULARITY * _activation.tos;
95
487
  uint32_t savingCount = 2;
96
488
 
97
489
  uint32_t savingMask = rmask(FP) | rmask(LR);
98
490
 
99
- if (!_thisfrag->lirbuf->explicitSavedRegs) {
100
- for (int i = 0; i < NumSavedRegs; ++i)
101
- savingMask |= rmask(savedRegs[i]);
102
- savingCount += NumSavedRegs;
103
- }
104
-
105
491
  // so for alignment purposes we've pushed return addr and fp
106
492
  uint32_t stackPushed = STACK_GRANULARITY * savingCount;
107
493
  uint32_t aligned = alignUp(stackNeeded + stackPushed, NJ_ALIGN_STACK);
@@ -109,10 +495,10 @@ Assembler::genPrologue()
109
495
 
110
496
  // Make room on stack for what we are doing
111
497
  if (amt)
112
- SUBi(SP, SP, amt);
498
+ asm_sub_imm(SP, SP, amt);
113
499
 
114
- verbose_only( verbose_outputf(" %p:",_nIns); )
115
- verbose_only( verbose_output(" patch entry"); )
500
+ verbose_only( asm_output("## %p:",(void*)_nIns); )
501
+ verbose_only( asm_output("## patch entry"); )
116
502
  NIns *patchEntry = _nIns;
117
503
 
118
504
  MOV(FP, SP);
@@ -123,66 +509,68 @@ Assembler::genPrologue()
123
509
  void
124
510
  Assembler::nFragExit(LInsp guard)
125
511
  {
126
- SideExit* exit = guard->record()->exit;
127
- Fragment *frag = exit->target;
128
- GuardRecord *lr;
512
+ SideExit * exit = guard->record()->exit;
513
+ Fragment * frag = exit->target;
129
514
 
130
- if (frag && frag->fragEntry) {
515
+ bool target_is_known = frag && frag->fragEntry;
516
+
517
+ if (target_is_known) {
518
+ // The target exists so we can simply emit a branch to its location.
131
519
  JMP_far(frag->fragEntry);
132
- lr = 0;
133
520
  } else {
134
- // target doesn't exit yet. emit jump to epilog, and set up to patch later.
135
- lr = guard->record();
521
+ // The target doesn't exit yet, so emit a jump to the epilogue. If the
522
+ // target is created later on, the jump will be patched.
523
+
524
+ GuardRecord *gr = guard->record();
525
+
526
+ if (!_epilogue)
527
+ _epilogue = genEpilogue();
136
528
 
137
- // jump to the epilogue; JMP_far will insert an extra dummy insn for later
138
- // patching.
529
+ // Jump to the epilogue. This may get patched later, but JMP_far always
530
+ // emits two instructions even when only one is required, so patching
531
+ // will work correctly.
139
532
  JMP_far(_epilogue);
140
533
 
141
- // stick the jmp pointer to the start of the sequence
142
- lr->jmp = _nIns;
143
- }
534
+ asm_ld_imm(R0, int(gr));
144
535
 
145
- // pop the stack frame first
146
- MOV(SP, FP);
536
+ // Set the jmp pointer to the start of the sequence so that patched
537
+ // branches can skip the LDi sequence.
538
+ gr->jmp = _nIns;
539
+ }
147
540
 
148
541
  #ifdef NJ_VERBOSE
149
- if (_frago->core()->config.show_stats) {
542
+ if (config.show_stats) {
150
543
  // load R1 with Fragment *fromFrag, target fragment
151
544
  // will make use of this when calling fragenter().
152
545
  int fromfrag = int((Fragment*)_thisfrag);
153
- LDi(argRegs[1], fromfrag);
546
+ asm_ld_imm(argRegs[1], fromfrag);
154
547
  }
155
548
  #endif
156
549
 
157
- // return value is GuardRecord*; note that this goes into
158
- // R2, not R0 -- genEpilogue will move it into R0. Otherwise
159
- // we want R0 to have the original value that it had at the
160
- // start of trace.
161
- LDi(R2, int(lr));
550
+ // Pop the stack frame.
551
+ MOV(SP, FP);
162
552
  }
163
553
 
164
554
  NIns*
165
555
  Assembler::genEpilogue()
166
556
  {
167
- BX(LR); // return
557
+ // On ARMv5+, loading directly to PC correctly handles interworking.
558
+ // Note that we don't support anything older than ARMv5.
559
+ NanoAssert(ARM_ARCH >= 5);
168
560
 
169
- RegisterMask savingMask = rmask(FP) | rmask(LR);
170
-
171
- if (!_thisfrag->lirbuf->explicitSavedRegs)
172
- for (int i = 0; i < NumSavedRegs; ++i)
173
- savingMask |= rmask(savedRegs[i]);
561
+ RegisterMask savingMask = rmask(FP) | rmask(PC);
174
562
 
175
563
  POP_mask(savingMask); // regs
176
564
 
177
- MOV(SP,FP);
178
-
179
- // this is needed if we jump here from nFragExit
180
- MOV(R0,R2); // return LinkRecord*
181
-
182
565
  return _nIns;
183
566
  }
184
567
 
185
- /* gcc/linux use the ARM EABI; Windows CE uses the legacy abi.
568
+ /*
569
+ * asm_arg will encode the specified argument according to the current ABI, and
570
+ * will update r and stkd as appropriate so that the next argument can be
571
+ * encoded.
572
+ *
573
+ * Linux has used ARM's EABI for some time. Windows CE uses the legacy ABI.
186
574
  *
187
575
  * Under EABI:
188
576
  * - doubles are 64-bit aligned both in registers and on the stack.
@@ -200,268 +588,341 @@ Assembler::genEpilogue()
200
588
  * - both doubles and 32-bit arguments are placed on stack with 32-bit
201
589
  * alignment.
202
590
  */
203
-
204
- void
205
- Assembler::asm_arg(ArgSize sz, LInsp p, Register r)
591
+ void
592
+ Assembler::asm_arg(ArgSize sz, LInsp arg, Register& r, int& stkd)
206
593
  {
207
- // should never be called -- the ARM-specific longer form of
208
- // asm_arg is used on ARM.
209
- NanoAssert(0);
594
+ // The stack pointer must always be at least aligned to 4 bytes.
595
+ NanoAssert((stkd & 3) == 0);
596
+
597
+ if (sz == ARGSIZE_F) {
598
+ // This task is fairly complex and so is delegated to asm_arg_64.
599
+ asm_arg_64(arg, r, stkd);
600
+ } else if (sz & ARGSIZE_MASK_INT) {
601
+ // pre-assign registers R0-R3 for arguments (if they fit)
602
+ if (r < R4) {
603
+ asm_regarg(sz, arg, r);
604
+ r = nextreg(r);
605
+ } else {
606
+ asm_stkarg(arg, stkd);
607
+ stkd += 4;
608
+ }
609
+ } else {
610
+ NanoAssert(sz == ARGSIZE_Q);
611
+ // shouldn't have 64 bit int params on ARM
612
+ NanoAssert(false);
613
+ }
210
614
  }
211
615
 
212
- /*
213
- * asm_arg will update r and stkd to indicate where the next
214
- * argument should go. If r == UnknownReg, then the argument
215
- * is placed on the stack at stkd, and stkd is updated.
216
- *
217
- * Note that this currently doesn't actually use stkd on input,
218
- * except for figuring out alignment; it always pushes to SP.
219
- * See TODO in asm_call.
220
- */
616
+ // Encode a 64-bit floating-point argument using the appropriate ABI.
617
+ // This function operates in the same way as asm_arg, except that it will only
618
+ // handle arguments where (ArgSize)sz == ARGSIZE_F.
221
619
  void
222
- Assembler::asm_arg(ArgSize sz, LInsp arg, Register& r, int& stkd)
620
+ Assembler::asm_arg_64(LInsp arg, Register& r, int& stkd)
223
621
  {
224
- if (sz == ARGSIZE_F) {
622
+ // The stack pointer must always be at least aligned to 4 bytes.
623
+ NanoAssert((stkd & 3) == 0);
624
+ // The only use for this function when we are using soft floating-point
625
+ // is for LIR_qjoin.
626
+ NanoAssert(ARM_VFP || arg->isop(LIR_qjoin));
627
+
628
+ Register fp_reg = UnknownReg;
629
+
630
+ if (ARM_VFP) {
631
+ fp_reg = findRegFor(arg, FpRegs);
632
+ NanoAssert(fp_reg != UnknownReg);
633
+ }
634
+
635
+ #ifdef NJ_ARM_EABI
636
+ // EABI requires that 64-bit arguments are aligned on even-numbered
637
+ // registers, as R0:R1 or R2:R3. If the register base is at an
638
+ // odd-numbered register, advance it. Note that this will push r past
639
+ // R3 if r is R3 to start with, and will force the argument to go on
640
+ // the stack.
641
+ if ((r == R1) || (r == R3)) {
642
+ r = nextreg(r);
643
+ }
644
+ #endif
645
+
646
+ if (r < R3) {
647
+ Register ra = r;
648
+ Register rb = nextreg(r);
649
+ r = nextreg(rb);
650
+
225
651
  #ifdef NJ_ARM_EABI
226
- NanoAssert(r == UnknownReg || r == R0 || r == R2);
652
+ // EABI requires that 64-bit arguments are aligned on even-numbered
653
+ // registers, as R0:R1 or R2:R3.
654
+ NanoAssert( ((ra == R0) && (rb == R1)) || ((ra == R2) && (rb == R3)) );
655
+ #endif
227
656
 
228
- // if we're about to put this on the stack, make sure the
229
- // stack is 64-bit aligned
230
- if (r == UnknownReg && (stkd&7) != 0) {
231
- SUBi(SP, SP, 4);
657
+ // Put the argument in ra and rb. If the argument is in a VFP register,
658
+ // use FMRRD to move it to ra and rb. Otherwise, let asm_regarg deal
659
+ // with the argument as if it were two 32-bit arguments.
660
+ if (ARM_VFP) {
661
+ FMRRD(ra, rb, fp_reg);
662
+ } else {
663
+ asm_regarg(ARGSIZE_LO, arg->oprnd1(), ra);
664
+ asm_regarg(ARGSIZE_LO, arg->oprnd2(), rb);
665
+ }
666
+
667
+ #ifndef NJ_ARM_EABI
668
+ } else if (r == R3) {
669
+ // We only have one register left, but the legacy ABI requires that we
670
+ // put 32 bits of the argument in the register (R3) and the remaining
671
+ // 32 bits on the stack.
672
+ Register ra = r;
673
+ r = nextreg(r);
674
+
675
+ // This really just checks that nextreg() works properly, as we know
676
+ // that r was previously R3.
677
+ NanoAssert(r == R4);
678
+
679
+ // We're splitting the argument between registers and the stack. This
680
+ // must be the first time that the stack is used, so stkd must be at 0.
681
+ NanoAssert(stkd == 0);
682
+
683
+ if (ARM_VFP) {
684
+ // TODO: We could optimize the this to store directly from
685
+ // the VFP register to memory using "FMRRD ra, fp_reg[31:0]" and
686
+ // "STR fp_reg[63:32], [SP, #stkd]".
687
+
688
+ // Load from the floating-point register as usual, but use IP
689
+ // as a swap register.
690
+ STR(IP, SP, 0);
691
+ stkd += 4;
692
+ FMRRD(ra, IP, fp_reg);
693
+ } else {
694
+ // Without VFP, we can simply use asm_regarg and asm_stkarg to
695
+ // encode the two 32-bit words as we don't need to load from a VFP
696
+ // register.
697
+ asm_regarg(ARGSIZE_LO, arg->oprnd1(), ra);
698
+ asm_stkarg(arg->oprnd2(), 0);
232
699
  stkd += 4;
233
700
  }
234
701
  #endif
702
+ } else {
703
+ // The argument won't fit in registers, so pass on to asm_stkarg.
704
+ #ifdef NJ_ARM_EABI
705
+ // EABI requires that 64-bit arguments are 64-bit aligned.
706
+ if ((stkd & 7) != 0) {
707
+ // stkd will always be aligned to at least 4 bytes; this was
708
+ // asserted on entry to this function.
709
+ stkd += 4;
710
+ }
711
+ #endif
712
+ asm_stkarg(arg, stkd);
713
+ stkd += 8;
714
+ }
715
+ }
235
716
 
236
- Reservation* argRes = getresv(arg);
237
-
238
- // handle qjoin first; won't ever show up if VFP is available
239
- if (arg->isop(LIR_qjoin)) {
240
- asm_arg(ARGSIZE_LO, arg->oprnd1(), r, stkd);
241
- asm_arg(ARGSIZE_LO, arg->oprnd2(), r, stkd);
242
- } else if (!argRes || argRes->reg == UnknownReg || !AvmCore::config.vfp) {
243
- // if we don't have a register allocated,
244
- // or we're not vfp, just read from memory.
245
- if (arg->isop(LIR_quad)) {
246
- const int32_t* p = (const int32_t*) (arg-2);
247
-
248
- // XXX use some load-multiple action here from our const pool?
249
- for (int k = 0; k < 2; k++) {
250
- if (r != UnknownReg) {
251
- asm_ld_imm(r, *p++);
252
- r = nextreg(r);
253
- if (r == R4)
254
- r = UnknownReg;
255
- } else {
256
- STR_preindex(IP, SP, -4);
257
- asm_ld_imm(IP, *p++);
258
- stkd += 4;
259
- }
260
- }
261
- } else {
262
- int d = findMemFor(arg);
263
-
264
- for (int k = 0; k < 2; k++) {
265
- if (r != UnknownReg) {
266
- LDR(r, FP, d + k*4);
267
- r = nextreg(r);
268
- if (r == R4)
269
- r = UnknownReg;
270
- } else {
271
- STR_preindex(IP, SP, -4);
272
- LDR(IP, FP, d + k*4);
273
- stkd += 4;
274
- }
275
- }
276
- }
717
+ void
718
+ Assembler::asm_regarg(ArgSize sz, LInsp p, Register r)
719
+ {
720
+ NanoAssert(r != UnknownReg);
721
+ if (sz & ARGSIZE_MASK_INT)
722
+ {
723
+ // arg goes in specific register
724
+ if (p->isconst()) {
725
+ asm_ld_imm(r, p->imm32());
277
726
  } else {
278
- // handle the VFP with-register case
279
- Register sr = argRes->reg;
280
- if (r != UnknownReg && r < R3) {
281
- FMRRD(r, nextreg(r), sr);
282
-
283
- // make sure the next register is correct on return
284
- if (r == R0)
285
- r = R2;
286
- else
287
- r = UnknownReg;
288
- } else if (r == R3) {
289
- // legacy ABI only
290
- STR_preindex(IP, SP, -4);
291
- FMRDL(IP, sr);
292
- FMRDH(r, sr);
293
- stkd += 4;
294
-
295
- r = UnknownReg;
296
- } else {
297
- FSTD(sr, SP, 0);
298
- SUB(SP, SP, 8);
299
- stkd += 8;
300
- r = UnknownReg;
301
- }
302
- }
303
- } else if (sz == ARGSIZE_LO) {
304
- if (r != UnknownReg) {
305
- if (arg->isconst()) {
306
- asm_ld_imm(r, arg->constval());
307
- } else {
308
- Reservation* argRes = getresv(arg);
309
- if (argRes) {
310
- if (argRes->reg == UnknownReg) {
311
- // load it into the arg reg
312
- int d = findMemFor(arg);
313
- if (arg->isop(LIR_alloc)) {
314
- asm_add_imm(r, FP, d);
315
- } else {
316
- LDR(r, FP, d);
317
- }
727
+ Reservation* rA = getresv(p);
728
+ if (rA) {
729
+ if (rA->reg == UnknownReg) {
730
+ // load it into the arg reg
731
+ int d = findMemFor(p);
732
+ if (p->isop(LIR_alloc)) {
733
+ asm_add_imm(r, FP, d, 0);
318
734
  } else {
319
- MOV(r, argRes->reg);
735
+ LDR(r, FP, d);
320
736
  }
321
737
  } else {
322
- findSpecificRegFor(arg, r);
738
+ // it must be in a saved reg
739
+ MOV(r, rA->reg);
323
740
  }
324
741
  }
742
+ else {
743
+ // this is the last use, so fine to assign it
744
+ // to the scratch reg, it's dead after this point.
745
+ findSpecificRegFor(p, r);
746
+ }
747
+ }
748
+ }
749
+ else if (sz == ARGSIZE_Q) {
750
+ // 64 bit integer argument - should never happen on ARM
751
+ NanoAssert(false);
752
+ }
753
+ else
754
+ {
755
+ NanoAssert(sz == ARGSIZE_F);
756
+ // fpu argument in register - should never happen since FPU
757
+ // args are converted to two 32-bit ints on ARM
758
+ NanoAssert(false);
759
+ }
760
+ }
761
+
762
+ void
763
+ Assembler::asm_stkarg(LInsp arg, int stkd)
764
+ {
765
+ Reservation* argRes = getresv(arg);
766
+ bool isQuad = arg->isQuad();
325
767
 
326
- if (r < R3)
327
- r = nextreg(r);
328
- else
329
- r = UnknownReg;
768
+ if (argRes && (argRes->reg != UnknownReg)) {
769
+ // The argument resides somewhere in registers, so we simply need to
770
+ // push it onto the stack.
771
+ if (!ARM_VFP || !isQuad) {
772
+ NanoAssert(IsGpReg(argRes->reg));
773
+
774
+ STR(argRes->reg, SP, stkd);
330
775
  } else {
331
- int d = findMemFor(arg);
332
- STR_preindex(IP, SP, -4);
776
+ // According to the comments in asm_arg_64, LIR_qjoin
777
+ // can have a 64-bit argument even if VFP is disabled. However,
778
+ // asm_arg_64 will split the argument and issue two 32-bit
779
+ // arguments to asm_stkarg so we can ignore that case here and
780
+ // assert that we will never get 64-bit arguments unless VFP is
781
+ // available.
782
+ NanoAssert(ARM_VFP);
783
+ NanoAssert(IsFpReg(argRes->reg));
784
+
785
+ #ifdef NJ_ARM_EABI
786
+ // EABI requires that 64-bit arguments are 64-bit aligned.
787
+ NanoAssert((stkd & 7) == 0);
788
+ #endif
789
+
790
+ FSTD(argRes->reg, SP, stkd);
791
+ }
792
+ } else {
793
+ // The argument does not reside in registers, so we need to get some
794
+ // memory for it and then copy it onto the stack.
795
+ int d = findMemFor(arg);
796
+ if (!isQuad) {
797
+ STR(IP, SP, stkd);
333
798
  if (arg->isop(LIR_alloc)) {
334
799
  asm_add_imm(IP, FP, d);
335
800
  } else {
336
801
  LDR(IP, FP, d);
337
802
  }
338
- stkd += 4;
803
+ } else {
804
+ #ifdef NJ_ARM_EABI
805
+ // EABI requires that 64-bit arguments are 64-bit aligned.
806
+ NanoAssert((stkd & 7) == 0);
807
+ #endif
808
+
809
+ STR(IP, SP, stkd+4);
810
+ LDR(IP, FP, d+4);
811
+ STR(IP, SP, stkd);
812
+ LDR(IP, FP, d);
339
813
  }
340
- } else {
341
- NanoAssert(0);
342
814
  }
343
815
  }
344
816
 
345
817
  void
346
818
  Assembler::asm_call(LInsp ins)
347
819
  {
348
- const CallInfo* call = ins->callInfo();
349
- Reservation *callRes = getresv(ins);
350
-
351
- uint32_t atypes = call->_argtypes;
352
- uint32_t roffset = 0;
353
-
354
- // skip return type
355
- ArgSize rsize = (ArgSize)(atypes & 3);
356
-
357
- atypes >>= 2;
358
-
359
- // if we're using VFP, and the return type is a double,
360
- // it'll come back in R0/R1. We need to either place it
361
- // in the result fp reg, or store it.
362
-
363
- if (AvmCore::config.vfp && rsize == ARGSIZE_F) {
364
- NanoAssert(ins->opcode() == LIR_fcall);
365
- NanoAssert(callRes);
366
-
367
- Register rr = callRes->reg;
368
- int d = disp(callRes);
369
- freeRsrcOf(ins, rr != UnknownReg);
820
+ const CallInfo* call = ins->callInfo();
821
+ ArgSize sizes[MAXARGS];
822
+ uint32_t argc = call->get_sizes(sizes);
823
+ bool indirect = call->isIndirect();
824
+
825
+ // If we aren't using VFP, assert that the LIR operation is an integer
826
+ // function call.
827
+ NanoAssert(ARM_VFP || ins->isop(LIR_icall));
828
+
829
+ // If we're using VFP, and the return type is a double, it'll come back in
830
+ // R0/R1. We need to either place it in the result fp reg, or store it.
831
+ // See comments in asm_prep_fcall() for more details as to why this is
832
+ // necessary here for floating point calls, but not for integer calls.
833
+ if (ARM_VFP && ins->isUsed()) {
834
+ // Determine the size (and type) of the instruction result.
835
+ ArgSize rsize = (ArgSize)(call->_argtypes & ARGSIZE_MASK_ANY);
836
+
837
+ // If the result size is a floating-point value, treat the result
838
+ // specially, as described previously.
839
+ if (rsize == ARGSIZE_F) {
840
+ Reservation * callRes = getresv(ins);
841
+ Register rr = callRes->reg;
842
+
843
+ NanoAssert(ins->opcode() == LIR_fcall);
844
+
845
+ if (rr == UnknownReg) {
846
+ int d = disp(callRes);
847
+ NanoAssert(d != 0);
848
+ freeRsrcOf(ins, false);
849
+
850
+ // The result doesn't have a register allocated, so store the
851
+ // result (in R0,R1) directly to its stack slot.
852
+ STR(R0, FP, d+0);
853
+ STR(R1, FP, d+4);
854
+ } else {
855
+ NanoAssert(IsFpReg(rr));
370
856
 
371
- if (rr != UnknownReg) {
372
- NanoAssert(IsFpReg(rr));
373
- FMDRR(rr,R0,R1);
374
- } else {
375
- NanoAssert(d);
376
- STR(R0, FP, d+0);
377
- STR(R1, FP, d+4);
857
+ // Copy the result to the (VFP) result register.
858
+ prepResultReg(ins, rmask(rr));
859
+ FMDRR(rr, R0, R1);
860
+ }
378
861
  }
379
862
  }
380
863
 
381
- // make the call
382
- BL((NIns*)(call->_address));
383
-
384
- ArgSize sizes[MAXARGS];
385
- uint32_t argc = call->get_sizes(sizes);
386
-
387
- Register r = R0;
388
- int stkd = 0;
389
-
390
- // XXX TODO we should go through the args and figure out how much
391
- // stack space we'll need, allocate it up front, and then do
392
- // SP-relative stores using stkd instead of doing STR_preindex for
393
- // every stack write like we currently do in asm_arg.
394
-
395
- for(uint32_t i = 0; i < argc; i++) {
396
- uint32_t j = argc - i - 1;
397
- ArgSize sz = sizes[j];
398
- LInsp arg = ins->arg(j);
399
-
400
- NanoAssert(r < R4 || r == UnknownReg);
401
-
402
- #ifdef NJ_ARM_EABI
403
- if (sz == ARGSIZE_F) {
404
- if (r == R1)
405
- r = R2;
406
- else if (r == R3)
407
- r = UnknownReg;
864
+ // Emit the branch.
865
+ if (!indirect) {
866
+ verbose_only(if (_logc->lcbits & LC_Assembly)
867
+ outputf(" %p:", _nIns);
868
+ )
869
+
870
+ // Direct call: on v5 and above (where the calling sequence doesn't
871
+ // corrupt LR until the actual branch instruction), we can avoid an
872
+ // interlock in the "long" branch sequence by manually loading the
873
+ // target address into LR ourselves before setting up the parameters
874
+ // in other registers.
875
+ BranchWithLink((NIns*)call->_address);
876
+ } else {
877
+ // Indirect call: we assign the address arg to LR since it's not
878
+ // used for regular arguments, and is otherwise scratch since it's
879
+ // clobberred by the call. On v4/v4T, where we have to manually do
880
+ // the equivalent of a BLX, move LR into IP before corrupting LR
881
+ // with the return address.
882
+ if (blx_lr_bug) {
883
+ // workaround for msft device emulator bug (blx lr emulated as no-op)
884
+ underrunProtect(8);
885
+ BLX(IP);
886
+ MOV(IP,LR);
887
+ } else {
888
+ BLX(LR);
408
889
  }
409
- #endif
890
+ asm_regarg(ARGSIZE_LO, ins->arg(--argc), LR);
891
+ }
410
892
 
411
- asm_arg(sz, arg, r, stkd);
893
+ // Encode the arguments, starting at R0 and with an empty argument stack.
894
+ Register r = R0;
895
+ int stkd = 0;
896
+
897
+ // Iterate through the argument list and encode each argument according to
898
+ // the ABI.
899
+ // Note that we loop through the arguments backwards as LIR specifies them
900
+ // in reverse order.
901
+ uint32_t i = argc;
902
+ while(i--) {
903
+ asm_arg(sizes[i], ins->arg(i), r, stkd);
412
904
  }
413
- }
414
905
 
415
- void
416
- Assembler::nMarkExecute(Page* page, int flags)
417
- {
418
- NanoAssert(sizeof(Page) == NJ_PAGE_SIZE);
419
- #ifdef UNDER_CE
420
- static const DWORD kProtFlags[4] = {
421
- PAGE_READONLY, // 0
422
- PAGE_READWRITE, // PAGE_WRITE
423
- PAGE_EXECUTE_READ, // PAGE_EXEC
424
- PAGE_EXECUTE_READWRITE // PAGE_EXEC|PAGE_WRITE
425
- };
426
- DWORD prot = kProtFlags[flags & (PAGE_WRITE|PAGE_EXEC)];
427
- DWORD dwOld;
428
- BOOL res = VirtualProtect(page, NJ_PAGE_SIZE, prot, &dwOld);
429
- if (!res)
430
- {
431
- // todo: we can't abort or assert here, we have to fail gracefully.
432
- NanoAssertMsg(false, "FATAL ERROR: VirtualProtect() failed\n");
906
+ if (stkd > max_out_args) {
907
+ max_out_args = stkd;
433
908
  }
434
- #endif
435
- #ifdef AVMPLUS_PORTING_API
436
- NanoJIT_PortAPI_MarkExecutable(page, (void*)((char*)page+NJ_PAGE_SIZE), flags);
437
- // todo, must add error-handling to the portapi
438
- #endif
439
909
  }
440
910
 
441
911
  Register
442
- Assembler::nRegisterAllocFromSet(int set)
912
+ Assembler::nRegisterAllocFromSet(RegisterMask set)
443
913
  {
444
- // Note: The clz instruction only works on armv5 and up.
445
- #if defined(UNDER_CE)
446
- Register r;
447
- r = (Register)_CountLeadingZeros(set);
448
- r = (Register)(31-r);
449
- _allocator.free &= ~rmask(r);
450
- return r;
451
- #elif defined(__ARMCC__)
452
- register int i;
453
- __asm { clz i,set }
454
- Register r = Register(31-i);
914
+ NanoAssert(set != 0);
915
+
916
+ // The CountLeadingZeroes function will use the CLZ instruction where
917
+ // available. In other cases, it will fall back to a (slower) C
918
+ // implementation.
919
+ Register r = (Register)(31-CountLeadingZeroes(set));
455
920
  _allocator.free &= ~rmask(r);
921
+
922
+ NanoAssert(IsGpReg(r) || IsFpReg(r));
923
+ NanoAssert((rmask(r) & set) == rmask(r));
924
+
456
925
  return r;
457
- #else
458
- // need to implement faster way
459
- int i=0;
460
- while (!(set & rmask((Register)i)))
461
- i ++;
462
- _allocator.free &= ~rmask((Register)i);
463
- return (Register) i;
464
- #endif
465
926
  }
466
927
 
467
928
  void
@@ -469,18 +930,17 @@ Assembler::nRegisterResetAll(RegAlloc& a)
469
930
  {
470
931
  // add scratch registers to our free list for the allocator
471
932
  a.clear();
472
- a.used = 0;
473
933
  a.free =
474
934
  rmask(R0) | rmask(R1) | rmask(R2) | rmask(R3) | rmask(R4) |
475
935
  rmask(R5) | rmask(R6) | rmask(R7) | rmask(R8) | rmask(R9) |
476
- rmask(R10);
477
- if (AvmCore::config.vfp)
936
+ rmask(R10) | rmask(LR);
937
+ if (ARM_VFP)
478
938
  a.free |= FpRegs;
479
939
 
480
940
  debug_only(a.managed = a.free);
481
941
  }
482
942
 
483
- NIns*
943
+ void
484
944
  Assembler::nPatchBranch(NIns* at, NIns* target)
485
945
  {
486
946
  // Patch the jump in a loop, as emitted by JMP_far.
@@ -488,25 +948,58 @@ Assembler::nPatchBranch(NIns* at, NIns* target)
488
948
 
489
949
  NIns* was = 0;
490
950
 
491
- if (at[0] == (NIns)( COND_AL | (0x51<<20) | (PC<<16) | (PC<<12) | (4) )) {
492
- // this needed to be emitted with a 32-bit immediate.
493
- was = (NIns*) at[1];
494
- } else {
495
- // nope, just a regular PC-relative B; calculate the destination address
496
- // based on at and the offset.
497
- NanoAssert((at[0] & 0xff000000) == (COND_AL | (0xA<<24)));
498
- was = (NIns*) (((intptr_t)at + 8) + (intptr_t)((at[0] & 0xffffff) << 2));
499
- }
951
+ // Determine how the existing branch was emitted so we can report the
952
+ // original destination. Note that this is only useful for debug purposes;
953
+ // no real code uses this result.
954
+ debug_only(
955
+ if (at[0] == (NIns)( COND_AL | (0x51<<20) | (PC<<16) | (PC<<12) | (4) )) {
956
+ // The existing branch looks like this:
957
+ // at[0] LDR pc, [addr]
958
+ // at[1] addr: target
959
+ was = (NIns*) at[1];
960
+ } else if ((at[0] && 0xff000000) == (NIns)( COND_AL | (0xA<<24))) {
961
+ // The existing branch looks like this:
962
+ // at[0] B target
963
+ // at[1] BKPT (dummy instruction).
964
+ was = (NIns*) (((intptr_t)at + 8) + (intptr_t)((at[0] & 0xffffff) << 2));
965
+ } else {
966
+ // The existing code is not a branch. This can occur, for example,
967
+ // when patching exit code generated by nFragExit. Exit branches to
968
+ // an epilogue load a value into R2 (using LDi), but this is not
969
+ // required for other exit branches so the new branch can be
970
+ // emitted over the top of the LDi sequence. It would be nice to
971
+ // assert that we're looking at an LDi sequence, but this is not
972
+ // trivial because the output of LDi is both platform- and
973
+ // context-dependent.
974
+ was = (NIns*)-1; // Return an obviously incorrect target address.
975
+ }
976
+ );
977
+
978
+ // Assert that the existing placeholder is not conditional.
979
+ NanoAssert((uint32_t)(at[0] & 0xf0000000) == COND_AL);
980
+
981
+ // We only have to patch unconditional branches, but these may take one of
982
+ // the following patterns:
983
+ //
984
+ // --- Short branch.
985
+ // B ±32MB
986
+ //
987
+ // --- Long branch.
988
+ // LDR PC, #lit
989
+ // lit: #target
500
990
 
501
- // let's see how we have to emit it
502
991
  intptr_t offs = PC_OFFSET_FROM(target, at);
503
992
  if (isS24(offs>>2)) {
504
- // great, just stick it in at[0]
993
+ // Emit a simple branch (B) in the first of the two available
994
+ // instruction addresses.
505
995
  at[0] = (NIns)( COND_AL | (0xA<<24) | ((offs >> 2) & 0xffffff) );
506
996
  // and reset at[1] for good measure
507
997
  at[1] = BKPT_insn;
508
998
  } else {
999
+ // Emit a branch to a pc-relative address, which we'll store right
1000
+ // after this instruction
509
1001
  at[0] = (NIns)( COND_AL | (0x51<<20) | (PC<<16) | (PC<<12) | (4) );
1002
+ // the target address
510
1003
  at[1] = (NIns)(target);
511
1004
  }
512
1005
  VALGRIND_DISCARD_TRANSLATIONS(at, 2*sizeof(NIns));
@@ -521,8 +1014,6 @@ Assembler::nPatchBranch(NIns* at, NIns* target)
521
1014
  #ifdef AVMPLUS_PORTING_API
522
1015
  NanoJIT_PortAPI_FlushInstructionCache(at, at+3);
523
1016
  #endif
524
-
525
- return was;
526
1017
  }
527
1018
 
528
1019
  RegisterMask
@@ -530,14 +1021,14 @@ Assembler::hint(LIns* i, RegisterMask allow /* = ~0 */)
530
1021
  {
531
1022
  uint32_t op = i->opcode();
532
1023
  int prefer = ~0;
533
-
534
- if (op==LIR_call || op==LIR_fcall)
1024
+ if (op==LIR_icall)
535
1025
  prefer = rmask(R0);
536
1026
  else if (op == LIR_callh)
537
1027
  prefer = rmask(R1);
538
- else if (op == LIR_param)
539
- prefer = rmask(imm2register(i->imm8()));
540
-
1028
+ else if (op == LIR_param) {
1029
+ if (i->paramArg() < 4)
1030
+ prefer = rmask(argRegs[i->paramArg()]);
1031
+ }
541
1032
  if (_allocator.free & allow & prefer)
542
1033
  allow &= prefer;
543
1034
  return allow;
@@ -574,7 +1065,13 @@ Assembler::asm_store32(LIns *value, int dr, LIns *base)
574
1065
  ra = rA->reg;
575
1066
  rb = rB->reg;
576
1067
  }
577
- STR(ra, rb, dr);
1068
+
1069
+ if (!isS12(dr)) {
1070
+ STR(ra, IP, 0);
1071
+ asm_add_imm(IP, rb, dr);
1072
+ } else {
1073
+ STR(ra, rb, dr);
1074
+ }
578
1075
  }
579
1076
 
580
1077
  void
@@ -582,37 +1079,40 @@ Assembler::asm_restore(LInsp i, Reservation *resv, Register r)
582
1079
  {
583
1080
  if (i->isop(LIR_alloc)) {
584
1081
  asm_add_imm(r, FP, disp(resv));
585
- }
1082
+ } else if (IsFpReg(r)) {
1083
+ NanoAssert(ARM_VFP);
1084
+
1085
+ // We can't easily load immediate values directly into FP registers, so
1086
+ // ensure that memory is allocated for the constant and load it from
1087
+ // memory.
1088
+ int d = findMemFor(i);
1089
+ if (isS8(d >> 2)) {
1090
+ FLDD(r, FP, d);
1091
+ } else {
1092
+ FLDD(r, IP, 0);
1093
+ asm_add_imm(IP, FP, d);
1094
+ }
586
1095
  #if 0
587
- /* This seriously regresses crypto-aes (by about 50%!), with or
588
- * without the S8/U8 check (which ensures that we can do this
589
- * const load in one instruction). I have no idea why, because a
590
- * microbenchmark of const mov vs. loading from memory shows that
591
- * the mov is faster, though not by much.
592
- */
593
- else if (i->isconst() && (isS8(i->constval()) || isU8(i->constval()))) {
1096
+ // This code tries to use a small constant load to restore the value of r.
1097
+ // However, there was a comment explaining that using this regresses
1098
+ // crypto-aes by about 50%. I do not see that behaviour; however, enabling
1099
+ // this code does cause a JavaScript failure in the first of the
1100
+ // createMandelSet tests in trace-tests. I can't explain either the
1101
+ // original performance issue or the crash that I'm seeing.
1102
+ } else if (i->isconst()) {
1103
+ // asm_ld_imm will automatically select between LDR and MOV as
1104
+ // appropriate.
594
1105
  if (!resv->arIndex)
595
- reserveFree(i);
596
- asm_ld_imm(r, i->constval());
597
- }
1106
+ i->resv()->clear();
1107
+ asm_ld_imm(r, i->imm32());
598
1108
  #endif
599
- else {
1109
+ } else {
600
1110
  int d = findMemFor(i);
601
- if (IsFpReg(r)) {
602
- if (isS8(d >> 2)) {
603
- FLDD(r, FP, d);
604
- } else {
605
- FLDD(r, IP, 0);
606
- ADDi(IP, FP, d);
607
- }
608
- } else {
609
- LDR(r, FP, d);
610
- }
1111
+ LDR(r, FP, d);
611
1112
  }
612
1113
 
613
1114
  verbose_only(
614
- if (_verbose)
615
- outputf(" restore %s",_thisfrag->lirbuf->names->formatRef(i));
1115
+ asm_output(" restore %s",_thisfrag->lirbuf->names->formatRef(i));
616
1116
  )
617
1117
  }
618
1118
 
@@ -622,12 +1122,12 @@ Assembler::asm_spill(Register rr, int d, bool pop, bool quad)
622
1122
  (void) pop;
623
1123
  (void) quad;
624
1124
  if (d) {
625
- if (IsFpReg(rr)) {
1125
+ if (ARM_VFP && IsFpReg(rr)) {
626
1126
  if (isS8(d >> 2)) {
627
1127
  FSTD(rr, FP, d);
628
1128
  } else {
629
1129
  FSTD(rr, IP, 0);
630
- ADDi(IP, FP, d);
1130
+ asm_add_imm(IP, FP, d);
631
1131
  }
632
1132
  } else {
633
1133
  STR(rr, FP, d);
@@ -638,38 +1138,44 @@ Assembler::asm_spill(Register rr, int d, bool pop, bool quad)
638
1138
  void
639
1139
  Assembler::asm_load64(LInsp ins)
640
1140
  {
641
- ///asm_output("<<< load64");
1141
+ //asm_output("<<< load64");
1142
+
1143
+ NanoAssert(ins->isQuad());
642
1144
 
643
1145
  LIns* base = ins->oprnd1();
644
- int offset = ins->oprnd2()->constval();
1146
+ int offset = ins->disp();
645
1147
 
646
1148
  Reservation *resv = getresv(ins);
1149
+ NanoAssert(resv);
647
1150
  Register rr = resv->reg;
648
1151
  int d = disp(resv);
649
1152
 
1153
+ Register rb = findRegFor(base, GpRegs);
1154
+ NanoAssert(IsGpReg(rb));
650
1155
  freeRsrcOf(ins, false);
651
1156
 
652
- if (AvmCore::config.vfp) {
653
- Register rb = findRegFor(base, GpRegs);
1157
+ //output("--- load64: Finished register allocation.");
654
1158
 
655
- NanoAssert(rb != UnknownReg);
656
- NanoAssert(rr == UnknownReg || IsFpReg(rr));
1159
+ if (ARM_VFP && rr != UnknownReg) {
1160
+ // VFP is enabled and the result will go into a register.
1161
+ NanoAssert(IsFpReg(rr));
657
1162
 
658
- if (rr != UnknownReg) {
659
- if (!isS8(offset >> 2) || (offset&3) != 0) {
660
- FLDD(rr,IP,0);
661
- ADDi(IP, rb, offset);
662
- } else {
663
- FLDD(rr,rb,offset);
664
- }
1163
+ if (!isS8(offset >> 2) || (offset&3) != 0) {
1164
+ FLDD(rr,IP,0);
1165
+ asm_add_imm(IP, rb, offset);
665
1166
  } else {
666
- asm_mmq(FP, d, rb, offset);
1167
+ FLDD(rr,rb,offset);
667
1168
  }
668
-
669
- // *(FP+dr) <- *(rb+db)
670
1169
  } else {
671
- NanoAssert(resv->reg == UnknownReg && d != 0);
672
- Register rb = findRegFor(base, GpRegs);
1170
+ // Either VFP is not available or the result needs to go into memory;
1171
+ // in either case, VFP instructions are not required. Note that the
1172
+ // result will never be loaded into registers if VFP is not available.
1173
+ NanoAssert(d != 0);
1174
+
1175
+ // Check that the offset is 8-byte (64-bit) aligned.
1176
+ NanoAssert((d & 0x7) == 0);
1177
+
1178
+ // *(uint64_t*)(FP+d) = *(uint64_t*)(rb+offset)
673
1179
  asm_mmq(FP, d, rb, offset);
674
1180
  }
675
1181
 
@@ -681,20 +1187,18 @@ Assembler::asm_store64(LInsp value, int dr, LInsp base)
681
1187
  {
682
1188
  //asm_output("<<< store64 (dr: %d)", dr);
683
1189
 
684
- if (AvmCore::config.vfp) {
1190
+ if (ARM_VFP) {
685
1191
  //Reservation *valResv = getresv(value);
686
1192
  Register rb = findRegFor(base, GpRegs);
687
1193
 
688
1194
  if (value->isconstq()) {
689
- const int32_t* p = (const int32_t*) (value-2);
690
-
691
1195
  underrunProtect(LD32_size*2 + 8);
692
1196
 
693
1197
  // XXX use another reg, get rid of dependency
694
1198
  STR(IP, rb, dr);
695
- LD32_nochk(IP, p[0]);
1199
+ asm_ld_imm(IP, value->imm64_0(), false);
696
1200
  STR(IP, rb, dr+4);
697
- LD32_nochk(IP, p[1]);
1201
+ asm_ld_imm(IP, value->imm64_1(), false);
698
1202
 
699
1203
  return;
700
1204
  }
@@ -715,20 +1219,19 @@ Assembler::asm_store64(LInsp value, int dr, LInsp base)
715
1219
  FSTD(rv, baseReg, baseOffset);
716
1220
 
717
1221
  if (!isS8(dr)) {
718
- ADDi(IP, rb, dr);
1222
+ asm_add_imm(IP, rb, dr);
719
1223
  }
720
1224
 
721
1225
  // if it's a constant, make sure our baseReg/baseOffset location
722
1226
  // has the right value
723
1227
  if (value->isconstq()) {
724
- const int32_t* p = (const int32_t*) (value-2);
725
-
726
1228
  underrunProtect(4*4);
727
- asm_quad_nochk(rv, p);
1229
+ asm_quad_nochk(rv, value->imm64_0(), value->imm64_1());
728
1230
  }
729
1231
  } else {
730
1232
  int da = findMemFor(value);
731
1233
  Register rb = findRegFor(base, GpRegs);
1234
+ // *(uint64_t*)(rb+dr) = *(uint64_t*)(FP+da)
732
1235
  asm_mmq(rb, dr, FP, da);
733
1236
  }
734
1237
 
@@ -738,7 +1241,7 @@ Assembler::asm_store64(LInsp value, int dr, LInsp base)
738
1241
  // stick a quad into register rr, where p points to the two
739
1242
  // 32-bit parts of the quad, optinally also storing at FP+d
740
1243
  void
741
- Assembler::asm_quad_nochk(Register rr, const int32_t* p)
1244
+ Assembler::asm_quad_nochk(Register rr, int32_t imm64_0, int32_t imm64_1)
742
1245
  {
743
1246
  // We're not going to use a slot, because it might be too far
744
1247
  // away. Instead, we're going to stick a branch in the stream to
@@ -747,16 +1250,16 @@ Assembler::asm_quad_nochk(Register rr, const int32_t* p)
747
1250
 
748
1251
  // stream should look like:
749
1252
  // branch A
750
- // p[0]
751
- // p[1]
1253
+ // imm64_0
1254
+ // imm64_1
752
1255
  // A: FLDD PC-16
753
1256
 
754
1257
  FLDD(rr, PC, -16);
755
1258
 
756
- *(--_nIns) = (NIns) p[1];
757
- *(--_nIns) = (NIns) p[0];
1259
+ *(--_nIns) = (NIns) imm64_1;
1260
+ *(--_nIns) = (NIns) imm64_0;
758
1261
 
759
- JMP_nochk(_nIns+2);
1262
+ B_nochk(_nIns+2);
760
1263
  }
761
1264
 
762
1265
  void
@@ -764,29 +1267,25 @@ Assembler::asm_quad(LInsp ins)
764
1267
  {
765
1268
  //asm_output(">>> asm_quad");
766
1269
 
767
- Reservation *res = getresv(ins);
768
- int d = disp(res);
769
- Register rr = res->reg;
770
-
771
- NanoAssert(d || rr != UnknownReg);
772
-
773
- const int32_t* p = (const int32_t*) (ins-2);
1270
+ Reservation * res = getresv(ins);
1271
+ int d = disp(res);
1272
+ Register rr = res->reg;
774
1273
 
775
1274
  freeRsrcOf(ins, false);
776
1275
 
777
- if (AvmCore::config.vfp &&
778
- rr != UnknownReg)
1276
+ if (ARM_VFP && rr != UnknownReg)
779
1277
  {
780
1278
  if (d)
781
1279
  FSTD(rr, FP, d);
782
1280
 
783
1281
  underrunProtect(4*4);
784
- asm_quad_nochk(rr, p);
1282
+ asm_quad_nochk(rr, ins->imm64_0(), ins->imm64_1());
785
1283
  } else {
1284
+ NanoAssert(d);
786
1285
  STR(IP, FP, d+4);
787
- asm_ld_imm(IP, p[1]);
1286
+ asm_ld_imm(IP, ins->imm64_1());
788
1287
  STR(IP, FP, d);
789
- asm_ld_imm(IP, p[0]);
1288
+ asm_ld_imm(IP, ins->imm64_0());
790
1289
  }
791
1290
 
792
1291
  //asm_output("<<< asm_quad");
@@ -795,15 +1294,12 @@ Assembler::asm_quad(LInsp ins)
795
1294
  void
796
1295
  Assembler::asm_nongp_copy(Register r, Register s)
797
1296
  {
798
- if ((rmask(r) & FpRegs) && (rmask(s) & FpRegs)) {
1297
+ if (ARM_VFP && IsFpReg(r) && IsFpReg(s)) {
799
1298
  // fp->fp
800
1299
  FCPYD(r, s);
801
- } else if ((rmask(r) & GpRegs) && (rmask(s) & FpRegs)) {
802
- // fp->gp
803
- // who's doing this and why?
804
- NanoAssert(0);
805
- // FMRS(r, loSingleVfp(s));
806
1300
  } else {
1301
+ // We can't move a double-precision FP register into a 32-bit GP
1302
+ // register, so assert that no calling code is trying to do that.
807
1303
  NanoAssert(0);
808
1304
  }
809
1305
  }
@@ -820,224 +1316,395 @@ Assembler::asm_binop_rhs_reg(LInsp)
820
1316
  void
821
1317
  Assembler::asm_mmq(Register rd, int dd, Register rs, int ds)
822
1318
  {
823
- // value is either a 64bit struct or maybe a float
824
- // that isn't live in an FPU reg. Either way, don't
825
- // put it in an FPU reg just to load & store it.
826
-
827
- // Don't use this with PC-relative loads; the registerAlloc might
828
- // end up spilling a reg (and thus the offset could end up being
829
- // bogus)!
1319
+ // The value is either a 64bit struct or maybe a float that isn't live in
1320
+ // an FPU reg. Either way, don't put it in an FPU reg just to load & store
1321
+ // it.
1322
+ // This operation becomes a simple 64-bit memcpy.
1323
+
1324
+ // In order to make the operation optimal, we will require two GP
1325
+ // registers. We can't allocate a register here because the caller may have
1326
+ // called freeRsrcOf, and allocating a register here may cause something
1327
+ // else to spill onto the stack which has just be conveniently freed by
1328
+ // freeRsrcOf (resulting in stack corruption).
1329
+ //
1330
+ // Falling back to a single-register implementation of asm_mmq is better
1331
+ // than adjusting the callers' behaviour (to allow us to allocate another
1332
+ // register here) because spilling a register will end up being slower than
1333
+ // just using the same register twice anyway.
1334
+ //
1335
+ // Thus, if there is a free register which we can borrow, we will emit the
1336
+ // following code:
1337
+ // LDR rr, [rs, #ds]
1338
+ // LDR ip, [rs, #(ds+4)]
1339
+ // STR rr, [rd, #dd]
1340
+ // STR ip, [rd, #(dd+4)]
1341
+ // (Where rr is the borrowed register.)
1342
+ //
1343
+ // If there is no free register, don't spill an existing allocation. Just
1344
+ // do the following:
1345
+ // LDR ip, [rs, #ds]
1346
+ // STR ip, [rd, #dd]
1347
+ // LDR ip, [rs, #(ds+4)]
1348
+ // STR ip, [rd, #(dd+4)]
1349
+
1350
+ // Ensure that the PC is not used as either base register. The instruction
1351
+ // generation macros call underrunProtect, and a side effect of this is
1352
+ // that we may be pushed onto another page, so the PC is not a reliable
1353
+ // base register.
830
1354
  NanoAssert(rs != PC);
1355
+ NanoAssert(rd != PC);
1356
+
1357
+ // Find the list of free registers from the allocator's free list and the
1358
+ // GpRegs mask. This excludes any floating-point registers that may be on
1359
+ // the free list.
1360
+ RegisterMask free = _allocator.free & AllowableFlagRegs;
1361
+
1362
+ if (free) {
1363
+ // There is at least one register on the free list, so grab one for
1364
+ // temporary use. There is no need to allocate it explicitly because
1365
+ // we won't need it after this function returns.
1366
+
1367
+ // The CountLeadingZeroes can be used to quickly find a set bit in the
1368
+ // free mask.
1369
+ Register rr = (Register)(31-CountLeadingZeroes(free));
1370
+
1371
+ // Note: Not every register in GpRegs is usable here. However, these
1372
+ // registers will never appear on the free list.
1373
+ NanoAssert((free & rmask(PC)) == 0);
1374
+ NanoAssert((free & rmask(LR)) == 0);
1375
+ NanoAssert((free & rmask(SP)) == 0);
1376
+ NanoAssert((free & rmask(IP)) == 0);
1377
+ NanoAssert((free & rmask(FP)) == 0);
1378
+
1379
+ // Emit the actual instruction sequence.
1380
+
1381
+ STR(IP, rd, dd+4);
1382
+ STR(rr, rd, dd);
1383
+ LDR(IP, rs, ds+4);
1384
+ LDR(rr, rs, ds);
1385
+ } else {
1386
+ // There are no free registers, so fall back to using IP twice.
1387
+ STR(IP, rd, dd+4);
1388
+ LDR(IP, rs, ds+4);
1389
+ STR(IP, rd, dd);
1390
+ LDR(IP, rs, ds);
1391
+ }
1392
+ }
831
1393
 
832
- // use both IP and a second scratch reg
833
- Register t = registerAlloc(GpRegs & ~(rmask(rd)|rmask(rs)));
834
- _allocator.addFree(t);
835
-
836
- // XXX maybe figure out if we can use LDRD/STRD -- hard to
837
- // ensure right register allocation
838
- STR(IP, rd, dd+4);
839
- STR(t, rd, dd);
840
- LDR(IP, rs, ds+4);
841
- LDR(t, rs, ds);
1394
+ // Increment the 32-bit profiling counter at pCtr, without
1395
+ // changing any registers.
1396
+ verbose_only(
1397
+ void Assembler::asm_inc_m32(uint32_t* /*pCtr*/)
1398
+ {
1399
+ // todo: implement this
842
1400
  }
1401
+ )
843
1402
 
844
1403
  void
845
1404
  Assembler::nativePageReset()
846
1405
  {
847
1406
  _nSlot = 0;
1407
+ _startingSlot = 0;
848
1408
  _nExitSlot = 0;
849
1409
  }
850
1410
 
851
1411
  void
852
1412
  Assembler::nativePageSetup()
853
1413
  {
854
- if (!_nIns) _nIns = pageAlloc();
855
- if (!_nExitIns) _nExitIns = pageAlloc(true);
856
- //fprintf(stderr, "assemble onto %x exits into %x\n", (int)_nIns, (int)_nExitIns);
1414
+ if (!_nIns)
1415
+ codeAlloc(codeStart, codeEnd, _nIns verbose_only(, codeBytes));
1416
+ if (!_nExitIns)
1417
+ codeAlloc(exitStart, exitEnd, _nExitIns verbose_only(, exitBytes));
857
1418
 
1419
+ // constpool starts at top of page and goes down,
1420
+ // code starts at bottom of page and moves up
858
1421
  if (!_nSlot)
859
- {
860
- // This needs to be done or the samepage macro gets confused; pageAlloc
861
- // gives us a pointer to just past the end of the page.
862
- _nIns--;
863
- _nExitIns--;
864
-
865
- // constpool starts at top of page and goes down,
866
- // code starts at bottom of page and moves up
867
- _nSlot = pageDataStart(_nIns); //(int*)(&((Page*)pageTop(_nIns))->lir[0]);
868
- }
1422
+ _nSlot = codeStart;
1423
+ if (!_nExitSlot)
1424
+ _nExitSlot = exitStart;
869
1425
  }
870
1426
 
871
- // Note: underrunProtect should not touch any registers, even IP; it
872
- // might need to allocate a new page in the middle of an IP-using
873
- // sequence.
1427
+
874
1428
  void
875
1429
  Assembler::underrunProtect(int bytes)
876
1430
  {
877
- NanoAssertMsg(bytes<=LARGEST_UNDERRUN_PROT, "constant LARGEST_UNDERRUN_PROT is too small");
878
- intptr_t u = bytes + sizeof(PageHeader)/sizeof(NIns) + 8;
879
- if ( (samepage(_nIns,_nSlot) && (((intptr_t)_nIns-u) <= intptr_t(_nSlot+1))) ||
880
- (!samepage((intptr_t)_nIns-u,_nIns)) )
1431
+ NanoAssertMsg(bytes<=LARGEST_UNDERRUN_PROT, "constant LARGEST_UNDERRUN_PROT is too small");
1432
+ NanoAssert(_nSlot != 0 && int(_nIns)-int(_nSlot) <= 4096);
1433
+ uintptr_t top = uintptr_t(_nSlot);
1434
+ uintptr_t pc = uintptr_t(_nIns);
1435
+ if (pc - bytes < top)
881
1436
  {
1437
+ verbose_only(verbose_outputf(" %p:", _nIns);)
882
1438
  NIns* target = _nIns;
1439
+ if (_inExit)
1440
+ codeAlloc(exitStart, exitEnd, _nIns verbose_only(, exitBytes));
1441
+ else
1442
+ codeAlloc(codeStart, codeEnd, _nIns verbose_only(, codeBytes));
1443
+
1444
+ _nSlot = _inExit ? exitStart : codeStart;
883
1445
 
884
- _nIns = pageAlloc(_inExit);
885
-
886
- // XXX _nIns at this point points to one past the end of
887
- // the page, intended to be written into using *(--_nIns).
888
- // However, (guess) something seems to be storing the value
889
- // of _nIns as is, and then later generating a jump to a bogus
890
- // address. So pre-decrement to ensure that it's always
891
- // valid; we end up skipping using the last instruction this
892
- // way.
893
- _nIns--;
894
-
895
- // Update slot, either to _nIns (if decremented above), or
896
- // _nIns-1 once the above bug is fixed/found.
897
- _nSlot = pageDataStart(_nIns);
898
-
899
- // If samepage() is used on _nIns and _nSlot, it'll fail, since _nIns
900
- // points to one past the end of the page right now. Assume that
901
- // JMP_nochk won't ever try to write to _nSlot, and so won't ever
902
- // check samepage(). See B_cond_chk macro.
903
- JMP_nochk(target);
904
- } else if (!_nSlot) {
905
- // make sure that there's always a slot pointer
906
- _nSlot = pageDataStart(_nIns);
1446
+ // _nSlot points to the first empty position in the new code block
1447
+ // _nIns points just past the last empty position.
1448
+ // Assume B_nochk won't ever try to write to _nSlot. See B_cond_chk macro.
1449
+ B_nochk(target);
907
1450
  }
908
1451
  }
909
1452
 
910
1453
  void
911
1454
  Assembler::JMP_far(NIns* addr)
912
1455
  {
913
- // we may have to stick an immediate into the stream, so always
914
- // reserve space
1456
+ // Even if a simple branch is all that is required, this function must emit
1457
+ // two words so that the branch can be arbitrarily patched later on.
915
1458
  underrunProtect(8);
916
1459
 
917
1460
  intptr_t offs = PC_OFFSET_FROM(addr,_nIns-2);
918
1461
 
919
1462
  if (isS24(offs>>2)) {
1463
+ // Emit a BKPT to ensure that we reserve enough space for a full 32-bit
1464
+ // branch patch later on. The BKPT should never be executed.
920
1465
  BKPT_nochk();
1466
+
1467
+ // B [PC+offs]
921
1468
  *(--_nIns) = (NIns)( COND_AL | (0xA<<24) | ((offs>>2) & 0xFFFFFF) );
922
1469
 
923
- asm_output("b %p", addr);
1470
+ asm_output("b %p", (void*)addr);
924
1471
  } else {
925
- // the address
1472
+ // Insert the target address as a constant in the instruction stream.
926
1473
  *(--_nIns) = (NIns)((addr));
927
- // ldr pc, [pc - #4] // load the address into pc, reading it from [pc-4] (e.g.,
1474
+ // ldr pc, [pc, #-4] // load the address into pc, reading it from [pc-4] (e.g.,
928
1475
  // the next instruction)
929
1476
  *(--_nIns) = (NIns)( COND_AL | (0x51<<20) | (PC<<16) | (PC<<12) | (4));
930
1477
 
931
- asm_output("b %p (32-bit)", addr);
1478
+ asm_output("ldr pc, =%p", (void*)addr);
932
1479
  }
933
1480
  }
934
1481
 
1482
+ // Perform a branch with link, and ARM/Thumb exchange if necessary. The actual
1483
+ // BLX instruction is only available from ARMv5 onwards, but as we don't
1484
+ // support anything older than that this function will not attempt to output
1485
+ // pre-ARMv5 sequences.
1486
+ //
1487
+ // Note: This function is not designed to be used with branches which will be
1488
+ // patched later, though it will work if the patcher knows how to patch the
1489
+ // generated instruction sequence.
935
1490
  void
936
- Assembler::BL(NIns* addr)
1491
+ Assembler::BranchWithLink(NIns* addr)
937
1492
  {
1493
+ // Most branches emitted by TM are loaded through a register, so always
1494
+ // reserve enough space for the LDR sequence. This should give us a slight
1495
+ // net gain over reserving the exact amount required for shorter branches.
1496
+ // This _must_ be called before PC_OFFSET_FROM as it can move _nIns!
1497
+ underrunProtect(4+LD32_size);
1498
+
1499
+ // Calculate the offset from the instruction that is about to be
1500
+ // written (at _nIns-1) to the target.
938
1501
  intptr_t offs = PC_OFFSET_FROM(addr,_nIns-1);
939
1502
 
940
- //fprintf (stderr, "BL: 0x%x (offs: %d [%x]) @ 0x%08x\n", addr, offs, offs, (intptr_t)(_nIns-1));
941
-
942
- // try to do this with a single S24 call
1503
+ // ARMv5 and above can use BLX <imm> for branches within ±32MB of the
1504
+ // PC and BLX Rm for long branches.
943
1505
  if (isS24(offs>>2)) {
944
- underrunProtect(4);
1506
+ // the value we need to stick in the instruction; masked,
1507
+ // because it will be sign-extended back to 32 bits.
1508
+ intptr_t offs2 = (offs>>2) & 0xffffff;
945
1509
 
946
- // recompute offset in case underrunProtect had to allocate a new page.
947
- offs = PC_OFFSET_FROM(addr,_nIns-1);
948
- *(--_nIns) = (NIns)( COND_AL | (0xB<<24) | ((offs>>2) & 0xFFFFFF) );
1510
+ if (((intptr_t)addr & 1) == 0) {
1511
+ // The target is ARM, so just emit a BL.
949
1512
 
950
- asm_output("bl %p", addr);
951
- } else {
952
- underrunProtect(12);
1513
+ // BL target
1514
+ *(--_nIns) = (NIns)( (COND_AL) | (0xB<<24) | (offs2) );
1515
+ asm_output("bl %p", (void*)addr);
1516
+ } else {
1517
+ // The target is Thumb, so emit a BLX.
953
1518
 
954
- // the address
955
- *(--_nIns) = (NIns)((addr));
956
- // ldr pc, [pc - #4] // load the address into ip, reading it from [pc-4]
957
- *(--_nIns) = (NIns)( COND_AL | (0x51<<20) | (PC<<16) | (PC<<12) | (4));
958
- // add lr, pc, #4 // set lr to be past the address that we wrote
959
- *(--_nIns) = (NIns)( COND_AL | OP_IMM | (1<<23) | (PC<<16) | (LR<<12) | (4) );
1519
+ // We need to emit an ARMv5+ instruction, so assert that we have a
1520
+ // suitable processor. Note that we don't support ARMv4(T), but
1521
+ // this serves as a useful sanity check.
1522
+ NanoAssert(ARM_ARCH >= 5);
960
1523
 
961
- asm_output("bl %p (32-bit)", addr);
962
- }
963
- }
1524
+ // The (pre-shifted) value of the "H" bit in the BLX encoding.
1525
+ uint32_t H = (offs & 0x2) << 23;
964
1526
 
965
- void
966
- Assembler::LD32_nochk(Register r, int32_t imm)
967
- {
968
- if (imm == 0) {
969
- EOR(r, r, r);
970
- return;
971
- }
1527
+ // BLX addr
1528
+ *(--_nIns) = (NIns)( (0xF << 28) | (0x5<<25) | (H) | (offs2) );
1529
+ asm_output("blx %p", (void*)addr);
1530
+ }
1531
+ } else {
1532
+ // Load the target address into IP and branch to that. We've already
1533
+ // done underrunProtect, so we can skip that here.
1534
+ BLX(IP, false);
972
1535
 
973
- if (AvmCore::config.v6t2) {
974
- // We can just emit a movw/movt pair
975
- // the movt is only necessary if the high 16 bits are nonzero
976
- if (((imm >> 16) & 0xFFFF) != 0)
977
- MOVT(r, (imm >> 16) & 0xFFFF);
978
- MOVW(r, imm & 0xFFFF);
979
- return;
1536
+ // LDR IP, =addr
1537
+ asm_ld_imm(IP, (int32_t)addr, false);
980
1538
  }
1539
+ }
981
1540
 
982
- // We should always reach the const pool, since it's on the same page (<4096);
983
- // if we can't, someone didn't underrunProtect enough.
984
-
985
- *(++_nSlot) = (int)imm;
986
-
987
- //fprintf (stderr, "wrote slot(2) %p with %08x, jmp @ %p\n", _nSlot, (intptr_t)imm, _nIns-1);
988
-
989
- int offset = PC_OFFSET_FROM(_nSlot,_nIns-1);
1541
+ // This is identical to BranchWithLink(NIns*) but emits a branch to an address
1542
+ // held in a register rather than a literal address.
1543
+ inline void
1544
+ Assembler::BLX(Register addr, bool chk /* = true */)
1545
+ {
1546
+ // We need to emit an ARMv5+ instruction, so assert that we have a suitable
1547
+ // processor. Note that we don't support ARMv4(T), but this serves as a
1548
+ // useful sanity check.
1549
+ NanoAssert(ARM_ARCH >= 5);
990
1550
 
991
- NanoAssert(isS12(offset) && (offset < 0));
1551
+ NanoAssert(IsGpReg(addr));
1552
+ // There is a bug in the WinCE device emulator which stops "BLX LR" from
1553
+ // working as expected. Assert that we never do that!
1554
+ if (blx_lr_bug) { NanoAssert(addr != LR); }
992
1555
 
993
- asm_output(" (%d(PC) = 0x%x)", offset, imm);
1556
+ if (chk) {
1557
+ underrunProtect(4);
1558
+ }
994
1559
 
995
- LDR_nochk(r,PC,offset);
1560
+ // BLX IP
1561
+ *(--_nIns) = (NIns)( (COND_AL) | (0x12<<20) | (0xFFF<<8) | (0x3<<4) | (addr) );
1562
+ asm_output("blx ip");
996
1563
  }
997
1564
 
1565
+ // Emit the code required to load a memory address into a register as follows:
1566
+ // d = *(b+off)
1567
+ // underrunProtect calls from this function can be disabled by setting chk to
1568
+ // false. However, this function can use more than LD32_size bytes of space if
1569
+ // the offset is out of the range of a LDR instruction; the maximum space this
1570
+ // function requires for underrunProtect is 4+LD32_size.
998
1571
  void
999
1572
  Assembler::asm_ldr_chk(Register d, Register b, int32_t off, bool chk)
1000
1573
  {
1001
- if (IsFpReg(d)) {
1574
+ if (ARM_VFP && IsFpReg(d)) {
1002
1575
  FLDD_chk(d,b,off,chk);
1003
1576
  return;
1004
1577
  }
1005
1578
 
1006
- if (off > -4096 && off < 4096) {
1579
+ NanoAssert(IsGpReg(d));
1580
+ NanoAssert(IsGpReg(b));
1581
+
1582
+ // We can't use underrunProtect if the base register is the PC because
1583
+ // underrunProtect might move the PC if there isn't enough space on the
1584
+ // current page.
1585
+ NanoAssert((b != PC) || (!chk));
1586
+
1587
+ if (isU12(off)) {
1588
+ // LDR d, b, #+off
1007
1589
  if (chk) underrunProtect(4);
1008
- *(--_nIns) = (NIns)( COND_AL | ((off < 0 ? 0x51 : 0x59)<<20) | (b<<16) | (d<<12) | ((off < 0 ? -off : off)&0xFFF) );
1590
+ *(--_nIns) = (NIns)( COND_AL | (0x59<<20) | (b<<16) | (d<<12) | off );
1591
+ } else if (isU12(-off)) {
1592
+ // LDR d, b, #-off
1593
+ if (chk) underrunProtect(4);
1594
+ *(--_nIns) = (NIns)( COND_AL | (0x51<<20) | (b<<16) | (d<<12) | -off );
1009
1595
  } else {
1010
- if (chk) underrunProtect(4+LD32_size);
1596
+ // The offset is over 4096 (and outside the range of LDR), so we need
1597
+ // to add a level of indirection to get the address into IP.
1598
+
1599
+ // Because of that, we can't do a PC-relative load unless it fits within
1600
+ // the single-instruction forms above.
1601
+
1602
+ NanoAssert(b != PC);
1011
1603
  NanoAssert(b != IP);
1604
+
1605
+ if (chk) underrunProtect(4+LD32_size);
1606
+
1012
1607
  *(--_nIns) = (NIns)( COND_AL | (0x79<<20) | (b<<16) | (d<<12) | IP );
1013
- LD32_nochk(IP, off);
1608
+ asm_ld_imm(IP, off, false);
1014
1609
  }
1015
1610
 
1016
1611
  asm_output("ldr %s, [%s, #%d]",gpn(d),gpn(b),(off));
1017
1612
  }
1018
1613
 
1614
+ // Emit the code required to load an immediate value (imm) into general-purpose
1615
+ // register d. Optimal (MOV-based) mechanisms are used if the immediate can be
1616
+ // encoded using ARM's operand 2 encoding. Otherwise, a slot is used on the
1617
+ // literal pool and LDR is used to load the value.
1618
+ //
1619
+ // chk can be explicitly set to false in order to disable underrunProtect calls
1620
+ // from this function; this allows the caller to perform the check manually.
1621
+ // This function guarantees not to use more than LD32_size bytes of space.
1019
1622
  void
1020
- Assembler::asm_ld_imm(Register d, int32_t imm)
1623
+ Assembler::asm_ld_imm(Register d, int32_t imm, bool chk /* = true */)
1021
1624
  {
1022
- if (imm == 0) {
1023
- EOR(d, d, d);
1024
- } else if (isS8(imm) || isU8(imm)) {
1025
- underrunProtect(4);
1026
- if (imm < 0)
1027
- *(--_nIns) = (NIns)( COND_AL | 0x3E<<20 | d<<12 | (imm^0xFFFFFFFF)&0xFF );
1028
- else
1029
- *(--_nIns) = (NIns)( COND_AL | 0x3B<<20 | d<<12 | imm&0xFF );
1030
- asm_output("ld %s,0x%x",gpn(d), imm);
1031
- } else {
1625
+ uint32_t op2imm;
1626
+
1627
+ NanoAssert(IsGpReg(d));
1628
+
1629
+ // Attempt to encode the immediate using the second operand of MOV or MVN.
1630
+ // This is the simplest solution and generates the shortest and fastest
1631
+ // code, but can only encode a limited set of values.
1632
+
1633
+ if (encOp2Imm(imm, &op2imm)) {
1634
+ // Use MOV to encode the literal.
1635
+ MOVis(d, op2imm, 0);
1636
+ return;
1637
+ }
1638
+
1639
+ if (encOp2Imm(~imm, &op2imm)) {
1640
+ // Use MVN to encode the inverted literal.
1641
+ MVNis(d, op2imm, 0);
1642
+ return;
1643
+ }
1644
+
1645
+ // Try to use simple MOV, MVN or MOV(W|T) instructions to load the
1646
+ // immediate. If this isn't possible, load it from memory.
1647
+ // - We cannot use MOV(W|T) on cores older than the introduction of
1648
+ // Thumb-2 or if the target register is the PC.
1649
+ if (ARM_THUMB2 && (d != PC)) {
1650
+ // ARMv6T2 and above have MOVW and MOVT.
1651
+ uint32_t high_h = (uint32_t)imm >> 16;
1652
+ uint32_t low_h = imm & 0xffff;
1653
+
1654
+ if (high_h != 0) {
1655
+ // Load the high half-word (if necessary).
1656
+ MOVTi_chk(d, high_h, chk);
1657
+ }
1658
+ // Load the low half-word. This also zeroes the high half-word, and
1659
+ // thus must execute _before_ MOVT, and is necessary even if low_h is 0
1660
+ // because MOVT will not change the existing low half-word.
1661
+ MOVWi_chk(d, low_h, chk);
1662
+
1663
+ return;
1664
+ }
1665
+
1666
+ // We couldn't encode the literal in the instruction stream, so load it
1667
+ // from memory.
1668
+
1669
+ // Because the literal pool is on the same page as the generated code, it
1670
+ // will almost always be within the ±4096 range of a LDR. However, this may
1671
+ // not be the case if _nSlot is at the start of the page and _nIns is at
1672
+ // the end because the PC is 8 bytes ahead of _nIns. This is unlikely to
1673
+ // happen, but if it does occur we can simply waste a word or two of
1674
+ // literal space.
1675
+
1676
+ // We must do the underrunProtect before PC_OFFSET_FROM as underrunProtect
1677
+ // can move the PC if there isn't enough space on the current page!
1678
+ if (chk) {
1032
1679
  underrunProtect(LD32_size);
1033
- LD32_nochk(d, imm);
1034
1680
  }
1681
+
1682
+ int offset = PC_OFFSET_FROM(_nSlot, _nIns-1);
1683
+ // If the offset is out of range, waste literal space until it is in range.
1684
+ while (offset <= -4096) {
1685
+ ++_nSlot;
1686
+ offset += sizeof(_nSlot);
1687
+ }
1688
+ NanoAssert(isS12(offset) && (offset < 0));
1689
+
1690
+ // Write the literal.
1691
+ *(_nSlot++) = imm;
1692
+ asm_output("## imm= 0x%x", imm);
1693
+
1694
+ // Load the literal.
1695
+ LDR_nochk(d,PC,offset);
1696
+ NanoAssert(uintptr_t(_nIns) + 8 + offset == uintptr_t(_nSlot-1));
1697
+ NanoAssert(*((int32_t*)_nSlot-1) == imm);
1035
1698
  }
1036
1699
 
1037
1700
  // Branch to target address _t with condition _c, doing underrun
1038
1701
  // checks (_chk == 1) or skipping them (_chk == 0).
1039
1702
  //
1040
- // If the jump fits in a relative jump (+/-32MB), emit that.
1703
+ // Set the target address (_t) to 0 if the target is not yet known and the
1704
+ // branch will be patched up later.
1705
+ //
1706
+ // If the jump is to a known address (with _t != 0) and it fits in a relative
1707
+ // jump (±32MB), emit that.
1041
1708
  // If the jump is unconditional, emit the dest address inline in
1042
1709
  // the instruction stream and load it into pc.
1043
1710
  // If the jump has a condition, but noone's mucked with _nIns and our _nSlot
@@ -1046,119 +1713,78 @@ Assembler::asm_ld_imm(Register d, int32_t imm)
1046
1713
  // Otherwise, emit the conditional load into pc from a nearby constant,
1047
1714
  // and emit a jump to jump over it it in case the condition fails.
1048
1715
  //
1049
- // NB: JMP_nochk depends on this not calling samepage() when _c == AL
1716
+ // NB: B_nochk depends on this not calling samepage() when _c == AL
1050
1717
  void
1051
1718
  Assembler::B_cond_chk(ConditionCode _c, NIns* _t, bool _chk)
1052
1719
  {
1053
1720
  int32_t offs = PC_OFFSET_FROM(_t,_nIns-1);
1054
- //fprintf(stderr, "B_cond_chk target: 0x%08x offset: %d @0x%08x\n", _t, offs, _nIns-1);
1721
+ //nj_dprintf("B_cond_chk target: 0x%08x offset: %d @0x%08x\n", _t, offs, _nIns-1);
1722
+
1723
+ // We don't patch conditional branches, and nPatchBranch can't cope with
1724
+ // them. We should therefore check that they are not generated at this
1725
+ // stage.
1726
+ NanoAssert((_t != 0) || (_c == AL));
1055
1727
 
1056
1728
  // optimistically check if this will fit in 24 bits
1057
- if (isS24(offs>>2)) {
1058
- if (_chk) underrunProtect(4);
1729
+ if (_chk && isS24(offs>>2) && (_t != 0)) {
1730
+ underrunProtect(4);
1059
1731
  // recalculate the offset, because underrunProtect may have
1060
1732
  // moved _nIns to a new page
1061
1733
  offs = PC_OFFSET_FROM(_t,_nIns-1);
1062
1734
  }
1063
1735
 
1064
- if (isS24(offs>>2)) {
1065
- // the underrunProtect for this was done above
1736
+ // Emit one of the following patterns:
1737
+ //
1738
+ // --- Short branch. This can never be emitted if the branch target is not
1739
+ // known.
1740
+ // B(cc) ±32MB
1741
+ //
1742
+ // --- Long unconditional branch.
1743
+ // LDR PC, #lit
1744
+ // lit: #target
1745
+ //
1746
+ // --- Long conditional branch. Note that conditional branches will never
1747
+ // be patched, so the nPatchBranch function doesn't need to know where
1748
+ // the literal pool is located.
1749
+ // LDRcc PC, #lit
1750
+ // ; #lit is in the literal pool at _nSlot
1751
+ //
1752
+ // --- Long conditional branch (if the slot isn't on the same page as the instruction).
1753
+ // LDRcc PC, #lit
1754
+ // B skip ; Jump over the literal data.
1755
+ // lit: #target
1756
+ // skip: [...]
1757
+
1758
+ if (isS24(offs>>2) && (_t != 0)) {
1759
+ // The underrunProtect for this was done above (if required by _chk).
1066
1760
  *(--_nIns) = (NIns)( ((_c)<<28) | (0xA<<24) | (((offs)>>2) & 0xFFFFFF) );
1067
1761
  } else if (_c == AL) {
1068
1762
  if(_chk) underrunProtect(8);
1069
1763
  *(--_nIns) = (NIns)(_t);
1070
1764
  *(--_nIns) = (NIns)( COND_AL | (0x51<<20) | (PC<<16) | (PC<<12) | 0x4 );
1071
- } else if (samepage(_nIns,_nSlot)) {
1765
+ } else if (PC_OFFSET_FROM(_nSlot, _nIns-1) > -0x1000 /*~(NJ_PAGE_SIZE-1)*/) {
1072
1766
  if(_chk) underrunProtect(8);
1073
- *(++_nSlot) = (NIns)(_t);
1074
- offs = PC_OFFSET_FROM(_nSlot,_nIns-1);
1767
+ *(_nSlot++) = (NIns)(_t);
1768
+ offs = PC_OFFSET_FROM(_nSlot-1,_nIns-1);
1075
1769
  NanoAssert(offs < 0);
1076
- *(--_nIns) = (NIns)( ((_c)<<28) | (0x51<<20) | (PC<<16) | (PC<<12) | ((-offs) & 0xFFFFFF) );
1770
+ *(--_nIns) = (NIns)( ((_c)<<28) | (0x51<<20) | (PC<<16) | (PC<<12) | ((-offs) & 0xFFF) );
1771
+ asm_output("ldr%s %s, [%s, #-%d]", condNames[_c], gpn(PC), gpn(PC), -offs);
1772
+ NanoAssert(uintptr_t(_nIns)+8+offs == uintptr_t(_nSlot-1));
1077
1773
  } else {
1078
1774
  if(_chk) underrunProtect(12);
1775
+ // Emit a pointer to the target as a literal in the instruction stream.
1079
1776
  *(--_nIns) = (NIns)(_t);
1080
- *(--_nIns) = (NIns)( COND_AL | (0xA<<24) | ((-4)>>2) & 0xFFFFFF );
1777
+ // Emit a branch to skip over the literal. The PC value is 8 bytes
1778
+ // ahead of the executing instruction, so to branch two instructions
1779
+ // forward this must branch 8-8=0 bytes.
1780
+ *(--_nIns) = (NIns)( COND_AL | (0xA<<24) | 0x0 );
1781
+ // Emit the conditional branch.
1081
1782
  *(--_nIns) = (NIns)( ((_c)<<28) | (0x51<<20) | (PC<<16) | (PC<<12) | 0x0 );
1082
1783
  }
1083
1784
 
1084
1785
  asm_output("b%s %p", condNames[_c], (void*)(_t));
1085
1786
  }
1086
1787
 
1087
- void
1088
- Assembler::asm_add_imm(Register rd, Register rn, int32_t imm, int stat)
1089
- {
1090
- int rot = 16;
1091
- uint32_t immval;
1092
- bool pos;
1093
-
1094
- if (imm >= 0) {
1095
- immval = (uint32_t) imm;
1096
- pos = true;
1097
- } else {
1098
- immval = (uint32_t) (-imm);
1099
- pos = false;
1100
- }
1101
-
1102
- while (immval > 255 &&
1103
- immval && ((immval & 0x3) == 0))
1104
- {
1105
- immval >>= 2;
1106
- rot--;
1107
- }
1108
-
1109
- rot &= 0xf;
1110
-
1111
- if (immval < 256) {
1112
- if (pos) {
1113
- ALUi_rot(AL, add, stat, rd, rn, immval, rot);
1114
- } else {
1115
- ALUi_rot(AL, sub, stat, rd, rn, immval, rot);
1116
- }
1117
- } else {
1118
- // add scratch to rn, after loading the value into scratch.
1119
- // make sure someone isn't trying to use IP as an operand
1120
- NanoAssert(rn != IP);
1121
- ALUr(AL, add, stat, rd, rn, IP);
1122
- asm_ld_imm(IP, imm);
1123
- }
1124
- }
1125
-
1126
- void
1127
- Assembler::asm_sub_imm(Register rd, Register rn, int32_t imm, int stat)
1128
- {
1129
- if (imm > -256 && imm < 256) {
1130
- if (imm >= 0)
1131
- ALUi(AL, sub, stat, rd, rn, imm);
1132
- else
1133
- ALUi(AL, add, stat, rd, rn, -imm);
1134
- } else if (imm >= 0) {
1135
- if (imm <= 510) {
1136
- /* between 0 and 510, inclusive */
1137
- int rem = imm - 255;
1138
- NanoAssert(rem < 256);
1139
- ALUi(AL, sub, stat, rd, rn, rem & 0xff);
1140
- ALUi(AL, sub, stat, rd, rn, 0xff);
1141
- } else {
1142
- /* more than 510 */
1143
- NanoAssert(rn != IP);
1144
- ALUr(AL, sub, stat, rd, rn, IP);
1145
- asm_ld_imm(IP, imm);
1146
- }
1147
- } else {
1148
- if (imm >= -510) {
1149
- /* between -510 and -1, inclusive */
1150
- int rem = -imm - 255;
1151
- ALUi(AL, add, stat, rd, rn, rem & 0xff);
1152
- ALUi(AL, add, stat, rd, rn, 0xff);
1153
- } else {
1154
- /* less than -510 */
1155
- NanoAssert(rn != IP);
1156
- ALUr(AL, add, stat, rd, rn, IP);
1157
- asm_ld_imm(IP, -imm);
1158
- }
1159
- }
1160
- }
1161
-
1162
1788
  /*
1163
1789
  * VFP
1164
1790
  */
@@ -1220,18 +1846,18 @@ Assembler::asm_fop(LInsp ins)
1220
1846
  Register rr = prepResultReg(ins, FpRegs);
1221
1847
 
1222
1848
  Register ra = findRegFor(lhs, FpRegs);
1223
- Register rb = (rhs == lhs) ? ra : findRegFor(rhs, FpRegs);
1849
+ Register rb = (rhs == lhs) ? ra : findRegFor(rhs, FpRegs & ~rmask(ra));
1224
1850
 
1225
1851
  // XXX special-case 1.0 and 0.0
1226
1852
 
1227
- if (op == LIR_fadd)
1228
- FADDD(rr,ra,rb);
1229
- else if (op == LIR_fsub)
1230
- FSUBD(rr,ra,rb);
1231
- else if (op == LIR_fmul)
1232
- FMULD(rr,ra,rb);
1233
- else //if (op == LIR_fdiv)
1234
- FDIVD(rr,ra,rb);
1853
+ switch (op)
1854
+ {
1855
+ case LIR_fadd: FADDD(rr,ra,rb); break;
1856
+ case LIR_fsub: FSUBD(rr,ra,rb); break;
1857
+ case LIR_fmul: FMULD(rr,ra,rb); break;
1858
+ case LIR_fdiv: FDIVD(rr,ra,rb); break;
1859
+ default: NanoAssert(0); break;
1860
+ }
1235
1861
  }
1236
1862
 
1237
1863
  void
@@ -1243,114 +1869,113 @@ Assembler::asm_fcmp(LInsp ins)
1243
1869
 
1244
1870
  NanoAssert(op >= LIR_feq && op <= LIR_fge);
1245
1871
 
1246
- Register ra = findRegFor(lhs, FpRegs);
1247
- Register rb = findRegFor(rhs, FpRegs);
1872
+ Reservation *rA, *rB;
1873
+ findRegFor2(FpRegs, lhs, rA, rhs, rB);
1874
+ Register ra = rA->reg;
1875
+ Register rb = rB->reg;
1248
1876
 
1877
+ int e_bit = (op != LIR_feq);
1878
+
1879
+ // do the comparison and get results loaded in ARM status register
1249
1880
  FMSTAT();
1250
- FCMPD(ra, rb);
1881
+ FCMPD(ra, rb, e_bit);
1251
1882
  }
1252
1883
 
1253
1884
  Register
1254
1885
  Assembler::asm_prep_fcall(Reservation*, LInsp)
1255
1886
  {
1256
- // We have nothing to do here; we do it all in asm_call.
1887
+ /* Because ARM actually returns the result in (R0,R1), and not in a
1888
+ * floating point register, the code to move the result into a correct
1889
+ * register is at the beginning of asm_call(). This function does
1890
+ * nothing.
1891
+ *
1892
+ * The reason being that if this function did something, the final code
1893
+ * sequence we'd get would be something like:
1894
+ * MOV {R0-R3},params [from asm_call()]
1895
+ * BL function [from asm_call()]
1896
+ * MOV {R0-R3},spilled data [from evictScratchRegs()]
1897
+ * MOV Dx,{R0,R1} [from this function]
1898
+ * which is clearly broken.
1899
+ *
1900
+ * This is not a problem for non-floating point calls, because the
1901
+ * restoring of spilled data into R0 is done via a call to
1902
+ * prepResultReg(R0) at the same point in the sequence as this function is
1903
+ * called, meaning that evictScratchRegs() will not modify R0. However,
1904
+ * prepResultReg is not aware of the concept of using a register pair
1905
+ * (R0,R1) for the result of a single operation, so it can only be used
1906
+ * here with the ultimate VFP register, and not R0/R1, which potentially
1907
+ * allows for R0/R1 to get corrupted as described.
1908
+ */
1257
1909
  return UnknownReg;
1258
1910
  }
1259
1911
 
1912
+ /* Call this with targ set to 0 if the target is not yet known and the branch
1913
+ * will be patched up later.
1914
+ */
1260
1915
  NIns*
1261
- Assembler::asm_branch(bool branchOnFalse, LInsp cond, NIns* targ, bool isfar)
1916
+ Assembler::asm_branch(bool branchOnFalse, LInsp cond, NIns* targ)
1262
1917
  {
1263
- // ignore isfar -- we figure this out on our own.
1264
- // XXX noone actually uses the far param in nj anyway... (always false)
1265
- (void)isfar;
1266
-
1267
- NIns* at = 0;
1268
1918
  LOpcode condop = cond->opcode();
1269
1919
  NanoAssert(cond->isCond());
1920
+ NanoAssert(ARM_VFP || ((condop < LIR_feq) || (condop > LIR_fge)));
1921
+
1922
+ // The old "never" condition code has special meaning on newer ARM cores,
1923
+ // so use "always" as a sensible default code.
1924
+ ConditionCode cc = AL;
1270
1925
 
1271
- if (condop >= LIR_feq && condop <= LIR_fge)
1926
+ // Detect whether or not this is a floating-point comparison.
1927
+ bool fp_cond;
1928
+
1929
+ // Select the appropriate ARM condition code to match the LIR instruction.
1930
+ switch (condop)
1272
1931
  {
1273
- ConditionCode cc = NV;
1274
-
1275
- if (branchOnFalse) {
1276
- switch (condop) {
1277
- case LIR_feq: cc = NE; break;
1278
- case LIR_flt: cc = PL; break;
1279
- case LIR_fgt: cc = LE; break;
1280
- case LIR_fle: cc = HI; break;
1281
- case LIR_fge: cc = LT; break;
1282
- default: NanoAssert(0); break;
1283
- }
1284
- } else {
1285
- switch (condop) {
1286
- case LIR_feq: cc = EQ; break;
1287
- case LIR_flt: cc = MI; break;
1288
- case LIR_fgt: cc = GT; break;
1289
- case LIR_fle: cc = LS; break;
1290
- case LIR_fge: cc = GE; break;
1291
- default: NanoAssert(0); break;
1292
- }
1293
- }
1932
+ // Floating-point conditions. Note that the VFP LT/LE conditions
1933
+ // require use of the unsigned condition codes, even though
1934
+ // float-point comparisons are always signed.
1935
+ case LIR_feq: cc = EQ; fp_cond = true; break;
1936
+ case LIR_flt: cc = LO; fp_cond = true; break;
1937
+ case LIR_fle: cc = LS; fp_cond = true; break;
1938
+ case LIR_fge: cc = GE; fp_cond = true; break;
1939
+ case LIR_fgt: cc = GT; fp_cond = true; break;
1940
+
1941
+ // Standard signed and unsigned integer comparisons.
1942
+ case LIR_eq: cc = EQ; fp_cond = false; break;
1943
+ case LIR_ov: cc = VS; fp_cond = false; break;
1944
+ case LIR_lt: cc = LT; fp_cond = false; break;
1945
+ case LIR_le: cc = LE; fp_cond = false; break;
1946
+ case LIR_gt: cc = GT; fp_cond = false; break;
1947
+ case LIR_ge: cc = GE; fp_cond = false; break;
1948
+ case LIR_ult: cc = LO; fp_cond = false; break;
1949
+ case LIR_ule: cc = LS; fp_cond = false; break;
1950
+ case LIR_ugt: cc = HI; fp_cond = false; break;
1951
+ case LIR_uge: cc = HS; fp_cond = false; break;
1952
+
1953
+ // Default case for invalid or unexpected LIR instructions.
1954
+ default: cc = AL; fp_cond = false; break;
1955
+ }
1956
+
1957
+ // Invert the condition if required.
1958
+ if (branchOnFalse)
1959
+ cc = OppositeCond(cc);
1960
+
1961
+ // Ensure that we got a sensible condition code.
1962
+ NanoAssert((cc != AL) && (cc != NV));
1963
+
1964
+ // Ensure that we don't hit floating-point LIR codes if VFP is disabled.
1965
+ NanoAssert(ARM_VFP || !fp_cond);
1294
1966
 
1295
- B_cond(cc, targ);
1296
- asm_output("b(%d) 0x%08x", cc, (unsigned int) targ);
1967
+ // Emit a suitable branch instruction.
1968
+ B_cond(cc, targ);
1297
1969
 
1298
- NIns *at = _nIns;
1970
+ // Store the address of the branch instruction so that we can return it.
1971
+ // asm_[f]cmp will move _nIns so we must do this now.
1972
+ NIns *at = _nIns;
1973
+
1974
+ if (ARM_VFP && fp_cond)
1299
1975
  asm_fcmp(cond);
1300
- return at;
1301
- }
1976
+ else
1977
+ asm_cmp(cond);
1302
1978
 
1303
- // produce the branch
1304
- if (branchOnFalse) {
1305
- if (condop == LIR_eq)
1306
- JNE(targ);
1307
- else if (condop == LIR_ov)
1308
- JNO(targ);
1309
- else if (condop == LIR_cs)
1310
- JNC(targ);
1311
- else if (condop == LIR_lt)
1312
- JNL(targ);
1313
- else if (condop == LIR_le)
1314
- JNLE(targ);
1315
- else if (condop == LIR_gt)
1316
- JNG(targ);
1317
- else if (condop == LIR_ge)
1318
- JNGE(targ);
1319
- else if (condop == LIR_ult)
1320
- JNB(targ);
1321
- else if (condop == LIR_ule)
1322
- JNBE(targ);
1323
- else if (condop == LIR_ugt)
1324
- JNA(targ);
1325
- else //if (condop == LIR_uge)
1326
- JNAE(targ);
1327
- } else // op == LIR_xt
1328
- {
1329
- if (condop == LIR_eq)
1330
- JE(targ);
1331
- else if (condop == LIR_ov)
1332
- JO(targ);
1333
- else if (condop == LIR_cs)
1334
- JC(targ);
1335
- else if (condop == LIR_lt)
1336
- JL(targ);
1337
- else if (condop == LIR_le)
1338
- JLE(targ);
1339
- else if (condop == LIR_gt)
1340
- JG(targ);
1341
- else if (condop == LIR_ge)
1342
- JGE(targ);
1343
- else if (condop == LIR_ult)
1344
- JB(targ);
1345
- else if (condop == LIR_ule)
1346
- JBE(targ);
1347
- else if (condop == LIR_ugt)
1348
- JA(targ);
1349
- else //if (condop == LIR_uge)
1350
- JAE(targ);
1351
- }
1352
- at = _nIns;
1353
- asm_cmp(cond);
1354
1979
  return at;
1355
1980
  }
1356
1981
 
@@ -1359,8 +1984,8 @@ Assembler::asm_cmp(LIns *cond)
1359
1984
  {
1360
1985
  LOpcode condop = cond->opcode();
1361
1986
 
1362
- // LIR_ov and LIR_cs recycle the flags set by arithmetic ops
1363
- if ((condop == LIR_ov) || (condop == LIR_cs))
1987
+ // LIR_ov recycles the flags set by arithmetic ops
1988
+ if ((condop == LIR_ov))
1364
1989
  return;
1365
1990
 
1366
1991
  LInsp lhs = cond->oprnd1();
@@ -1372,10 +1997,10 @@ Assembler::asm_cmp(LIns *cond)
1372
1997
 
1373
1998
  // ready to issue the compare
1374
1999
  if (rhs->isconst()) {
1375
- int c = rhs->constval();
2000
+ int c = rhs->imm32();
1376
2001
  if (c == 0 && cond->isop(LIR_eq)) {
1377
2002
  Register r = findRegFor(lhs, GpRegs);
1378
- TEST(r,r);
2003
+ TST(r,r);
1379
2004
  // No 64-bit immediates so fall-back to below
1380
2005
  } else if (!rhs->isQuad()) {
1381
2006
  Register r = getBaseReg(lhs, c, GpRegs);
@@ -1398,6 +2023,7 @@ Assembler::asm_cmpi(Register r, int32_t imm)
1398
2023
  if (imm > -256) {
1399
2024
  ALUi(AL, cmn, 1, 0, r, -imm);
1400
2025
  } else {
2026
+ underrunProtect(4 + LD32_size);
1401
2027
  CMP(r, IP);
1402
2028
  asm_ld_imm(IP, imm);
1403
2029
  }
@@ -1405,26 +2031,13 @@ Assembler::asm_cmpi(Register r, int32_t imm)
1405
2031
  if (imm < 256) {
1406
2032
  ALUi(AL, cmp, 1, 0, r, imm);
1407
2033
  } else {
2034
+ underrunProtect(4 + LD32_size);
1408
2035
  CMP(r, IP);
1409
2036
  asm_ld_imm(IP, imm);
1410
2037
  }
1411
2038
  }
1412
2039
  }
1413
2040
 
1414
- void
1415
- Assembler::asm_loop(LInsp ins, NInsList& loopJumps)
1416
- {
1417
- // XXX asm_loop should be in Assembler.cpp!
1418
-
1419
- JMP_far(0);
1420
- loopJumps.add(_nIns);
1421
-
1422
- // If the target we are looping to is in a different fragment, we have to restore
1423
- // SP since we will target fragEntry and not loopEntry.
1424
- if (ins->record()->exit->target != _thisfrag)
1425
- MOV(SP,FP);
1426
- }
1427
-
1428
2041
  void
1429
2042
  Assembler::asm_fcond(LInsp ins)
1430
2043
  {
@@ -1432,11 +2045,11 @@ Assembler::asm_fcond(LInsp ins)
1432
2045
  Register r = prepResultReg(ins, AllowableFlagRegs);
1433
2046
 
1434
2047
  switch (ins->opcode()) {
1435
- case LIR_feq: SET(r,EQ,NE); break;
1436
- case LIR_flt: SET(r,MI,PL); break;
1437
- case LIR_fgt: SET(r,GT,LE); break;
1438
- case LIR_fle: SET(r,LS,HI); break;
1439
- case LIR_fge: SET(r,GE,LT); break;
2048
+ case LIR_feq: SETEQ(r); break;
2049
+ case LIR_flt: SETLO(r); break; // } note: VFP LT/LE operations require use of
2050
+ case LIR_fle: SETLS(r); break; // } unsigned LO/LS condition codes!
2051
+ case LIR_fge: SETGE(r); break;
2052
+ case LIR_fgt: SETGT(r); break;
1440
2053
  default: NanoAssert(0); break;
1441
2054
  }
1442
2055
 
@@ -1446,33 +2059,21 @@ Assembler::asm_fcond(LInsp ins)
1446
2059
  void
1447
2060
  Assembler::asm_cond(LInsp ins)
1448
2061
  {
1449
- // only want certain regs
1450
- LOpcode op = ins->opcode();
1451
2062
  Register r = prepResultReg(ins, AllowableFlagRegs);
1452
- // SETcc only sets low 8 bits, so extend
1453
- MOVZX8(r,r);
1454
- if (op == LIR_eq)
1455
- SETE(r);
1456
- else if (op == LIR_ov)
1457
- SETO(r);
1458
- else if (op == LIR_cs)
1459
- SETC(r);
1460
- else if (op == LIR_lt)
1461
- SETL(r);
1462
- else if (op == LIR_le)
1463
- SETLE(r);
1464
- else if (op == LIR_gt)
1465
- SETG(r);
1466
- else if (op == LIR_ge)
1467
- SETGE(r);
1468
- else if (op == LIR_ult)
1469
- SETB(r);
1470
- else if (op == LIR_ule)
1471
- SETBE(r);
1472
- else if (op == LIR_ugt)
1473
- SETA(r);
1474
- else // if (op == LIR_uge)
1475
- SETAE(r);
2063
+ switch(ins->opcode())
2064
+ {
2065
+ case LIR_eq: SETEQ(r); break;
2066
+ case LIR_ov: SETVS(r); break;
2067
+ case LIR_lt: SETLT(r); break;
2068
+ case LIR_le: SETLE(r); break;
2069
+ case LIR_gt: SETGT(r); break;
2070
+ case LIR_ge: SETGE(r); break;
2071
+ case LIR_ult: SETLO(r); break;
2072
+ case LIR_ule: SETLS(r); break;
2073
+ case LIR_ugt: SETHI(r); break;
2074
+ case LIR_uge: SETHS(r); break;
2075
+ default: NanoAssert(0); break;
2076
+ }
1476
2077
  asm_cmp(ins);
1477
2078
  }
1478
2079
 
@@ -1480,86 +2081,149 @@ void
1480
2081
  Assembler::asm_arith(LInsp ins)
1481
2082
  {
1482
2083
  LOpcode op = ins->opcode();
1483
- LInsp lhs = ins->oprnd1();
1484
- LInsp rhs = ins->oprnd2();
2084
+ LInsp lhs = ins->oprnd1();
2085
+ LInsp rhs = ins->oprnd2();
1485
2086
 
1486
- Register rb = UnknownReg;
1487
- RegisterMask allow = GpRegs;
1488
- bool forceReg = (op == LIR_mul || !rhs->isconst());
2087
+ RegisterMask allow = GpRegs;
2088
+
2089
+ // We always need the result register and the first operand register.
2090
+ Register rr = prepResultReg(ins, allow);
2091
+ Reservation * rA = getresv(lhs);
2092
+ Register ra = UnknownReg;
2093
+ Register rb = UnknownReg;
2094
+
2095
+ // If this is the last use of lhs in reg, we can re-use the result reg.
2096
+ if (!rA || (ra = rA->reg) == UnknownReg)
2097
+ ra = findSpecificRegFor(lhs, rr);
2098
+
2099
+ // Don't re-use the registers we've already allocated.
2100
+ NanoAssert(rr != UnknownReg);
2101
+ NanoAssert(ra != UnknownReg);
2102
+ allow &= ~rmask(rr);
2103
+ allow &= ~rmask(ra);
2104
+
2105
+ // If the rhs is constant, we can use the instruction-specific code to
2106
+ // determine if the value can be encoded in an ARM instruction. If the
2107
+ // value cannot be encoded, it will be loaded into a register.
2108
+ //
2109
+ // Note that the MUL instruction can never take an immediate argument so
2110
+ // even if the argument is constant, we must allocate a register for it.
2111
+ //
2112
+ // Note: It is possible to use a combination of the barrel shifter and the
2113
+ // basic arithmetic instructions to generate constant multiplications.
2114
+ // However, LIR_mul is never invoked with a constant during
2115
+ // trace-tests.js so it is very unlikely to be worthwhile implementing it.
2116
+ if (rhs->isconst() && op != LIR_mul)
2117
+ {
2118
+ if ((op == LIR_add || op == LIR_iaddp) && lhs->isop(LIR_alloc)) {
2119
+ // Add alloc+const. The result should be the address of the
2120
+ // allocated space plus a constant.
2121
+ Register rs = prepResultReg(ins, allow);
2122
+ int d = findMemFor(lhs) + rhs->imm32();
2123
+
2124
+ NanoAssert(rs != UnknownReg);
2125
+ asm_add_imm(rs, FP, d);
2126
+ }
1489
2127
 
1490
- // Arm can't do an immediate op with immediates
1491
- // outside of +/-255 (for AND) r outside of
1492
- // 0..255 for others.
1493
- if (!forceReg) {
1494
- if (rhs->isconst() && !isU8(rhs->constval()))
1495
- forceReg = true;
2128
+ int32_t imm32 = rhs->imm32();
2129
+
2130
+ switch (op)
2131
+ {
2132
+ case LIR_iaddp: asm_add_imm(rr, ra, imm32); break;
2133
+ case LIR_add: asm_add_imm(rr, ra, imm32, 1); break;
2134
+ case LIR_sub: asm_sub_imm(rr, ra, imm32, 1); break;
2135
+ case LIR_and: asm_and_imm(rr, ra, imm32); break;
2136
+ case LIR_or: asm_orr_imm(rr, ra, imm32); break;
2137
+ case LIR_xor: asm_eor_imm(rr, ra, imm32); break;
2138
+ case LIR_lsh: LSLi(rr, ra, imm32); break;
2139
+ case LIR_rsh: ASRi(rr, ra, imm32); break;
2140
+ case LIR_ush: LSRi(rr, ra, imm32); break;
2141
+
2142
+ default:
2143
+ NanoAssertMsg(0, "Unsupported");
2144
+ break;
2145
+ }
2146
+
2147
+ // We've already emitted an instruction, so return now.
2148
+ return;
1496
2149
  }
1497
2150
 
1498
- if (lhs != rhs && forceReg) {
1499
- if ((rb = asm_binop_rhs_reg(ins)) == UnknownReg) {
2151
+ // The rhs is either a register or cannot be encoded as a constant.
2152
+
2153
+ if (lhs == rhs) {
2154
+ rb = ra;
2155
+ } else {
2156
+ rb = asm_binop_rhs_reg(ins);
2157
+ if (rb == UnknownReg)
1500
2158
  rb = findRegFor(rhs, allow);
1501
- }
1502
2159
  allow &= ~rmask(rb);
1503
- } else if ((op == LIR_add||op == LIR_addp) && lhs->isop(LIR_alloc) && rhs->isconst()) {
1504
- // add alloc+const, rr wants the address of the allocated space plus a constant
1505
- Register rr = prepResultReg(ins, allow);
1506
- int d = findMemFor(lhs) + rhs->constval();
1507
- asm_add_imm(rr, FP, d);
1508
2160
  }
2161
+ NanoAssert(rb != UnknownReg);
1509
2162
 
1510
- Register rr = prepResultReg(ins, allow);
1511
- Reservation* rA = getresv(lhs);
1512
- Register ra;
1513
- // if this is last use of lhs in reg, we can re-use result reg
1514
- if (rA == 0 || (ra = rA->reg) == UnknownReg)
1515
- ra = findSpecificRegFor(lhs, rr);
1516
- // else, rA already has a register assigned.
1517
- NanoAssert(ra != UnknownReg);
2163
+ switch (op)
2164
+ {
2165
+ case LIR_iaddp: ADDs(rr, ra, rb, 0); break;
2166
+ case LIR_add: ADDs(rr, ra, rb, 1); break;
2167
+ case LIR_sub: SUBs(rr, ra, rb, 1); break;
2168
+ case LIR_and: ANDs(rr, ra, rb, 0); break;
2169
+ case LIR_or: ORRs(rr, ra, rb, 0); break;
2170
+ case LIR_xor: EORs(rr, ra, rb, 0); break;
2171
+
2172
+ case LIR_mul:
2173
+ // ARMv5 and earlier cores cannot do a MUL where the first operand
2174
+ // is also the result, so we need a special case to handle that.
2175
+ //
2176
+ // We try to use rb as the first operand by default because it is
2177
+ // common for (rr == ra) and is thus likely to be the most
2178
+ // efficient case; if ra is no longer used after this LIR
2179
+ // instruction, it is re-used for the result register (rr).
2180
+ if ((ARM_ARCH > 5) || (rr != rb)) {
2181
+ // Newer cores place no restrictions on the registers used in a
2182
+ // MUL instruction (compared to other arithmetic instructions).
2183
+ MUL(rr, rb, ra);
2184
+ } else {
2185
+ // ARM_ARCH is ARMv5 (or below) and rr == rb, so we must
2186
+ // find a different way to encode the instruction.
2187
+
2188
+ // If possible, swap the arguments to avoid the restriction.
2189
+ if (rr != ra) {
2190
+ // We know that rr == rb, so this will be something like
2191
+ // rX = rY * rX.
2192
+ MUL(rr, ra, rb);
2193
+ } else {
2194
+ // We're trying to do rX = rX * rX, so we must use a
2195
+ // temporary register to achieve this correctly on ARMv5.
1518
2196
 
1519
- if (forceReg) {
1520
- if (lhs == rhs)
1521
- rb = ra;
1522
-
1523
- if (op == LIR_add || op == LIR_addp)
1524
- ADDs(rr, ra, rb, 1);
1525
- else if (op == LIR_sub)
1526
- SUB(rr, ra, rb);
1527
- else if (op == LIR_mul)
1528
- MUL(rr, rb);
1529
- else if (op == LIR_and)
1530
- AND(rr, ra, rb);
1531
- else if (op == LIR_or)
1532
- ORR(rr, ra, rb);
1533
- else if (op == LIR_xor)
1534
- EOR(rr, ra, rb);
1535
- else if (op == LIR_lsh)
1536
- SHL(rr, ra, rb);
1537
- else if (op == LIR_rsh)
1538
- SAR(rr, ra, rb);
1539
- else if (op == LIR_ush)
1540
- SHR(rr, ra, rb);
1541
- else
1542
- NanoAssertMsg(0, "Unsupported");
1543
- } else {
1544
- int c = rhs->constval();
1545
- if (op == LIR_add || op == LIR_addp)
1546
- ADDi(rr, ra, c);
1547
- else if (op == LIR_sub)
1548
- SUBi(rr, ra, c);
1549
- else if (op == LIR_and)
1550
- ANDi(rr, ra, c);
1551
- else if (op == LIR_or)
1552
- ORRi(rr, ra, c);
1553
- else if (op == LIR_xor)
1554
- EORi(rr, ra, c);
1555
- else if (op == LIR_lsh)
1556
- SHLi(rr, ra, c);
1557
- else if (op == LIR_rsh)
1558
- SARi(rr, ra, c);
1559
- else if (op == LIR_ush)
1560
- SHRi(rr, ra, c);
1561
- else
2197
+ // The register allocator will never allocate IP so it will
2198
+ // be safe to use here.
2199
+ NanoAssert(ra != IP);
2200
+ NanoAssert(rr != IP);
2201
+
2202
+ // In this case, rr == ra == rb.
2203
+ MUL(rr, IP, rb);
2204
+ MOV(IP, ra);
2205
+ }
2206
+ }
2207
+ break;
2208
+
2209
+ // The shift operations need a mask to match the JavaScript
2210
+ // specification because the ARM architecture allows a greater shift
2211
+ // range than JavaScript.
2212
+ case LIR_lsh:
2213
+ LSL(rr, ra, IP);
2214
+ ANDi(IP, rb, 0x1f);
2215
+ break;
2216
+ case LIR_rsh:
2217
+ ASR(rr, ra, IP);
2218
+ ANDi(IP, rb, 0x1f);
2219
+ break;
2220
+ case LIR_ush:
2221
+ LSR(rr, ra, IP);
2222
+ ANDi(IP, rb, 0x1f);
2223
+ break;
2224
+ default:
1562
2225
  NanoAssertMsg(0, "Unsupported");
2226
+ break;
1563
2227
  }
1564
2228
  }
1565
2229
 
@@ -1589,26 +2253,26 @@ Assembler::asm_ld(LInsp ins)
1589
2253
  {
1590
2254
  LOpcode op = ins->opcode();
1591
2255
  LIns* base = ins->oprnd1();
1592
- LIns* disp = ins->oprnd2();
2256
+ int d = ins->disp();
2257
+
1593
2258
  Register rr = prepResultReg(ins, GpRegs);
1594
- int d = disp->constval();
1595
2259
  Register ra = getBaseReg(base, d, GpRegs);
1596
2260
 
1597
2261
  // these will always be 4-byte aligned
1598
2262
  if (op == LIR_ld || op == LIR_ldc) {
1599
- LD(rr, d, ra);
2263
+ LDR(rr, ra, d);
1600
2264
  return;
1601
2265
  }
1602
2266
 
1603
2267
  // these will be 2 or 4-byte aligned
1604
2268
  if (op == LIR_ldcs) {
1605
- LDRH(rr, d, ra);
2269
+ LDRH(rr, ra, d);
1606
2270
  return;
1607
2271
  }
1608
2272
 
1609
2273
  // aaand this is just any byte.
1610
2274
  if (op == LIR_ldcb) {
1611
- LDRB(rr, d, ra);
2275
+ LDRB(rr, ra, d);
1612
2276
  return;
1613
2277
  }
1614
2278
 
@@ -1620,14 +2284,10 @@ Assembler::asm_cmov(LInsp ins)
1620
2284
  {
1621
2285
  NanoAssert(ins->opcode() == LIR_cmov);
1622
2286
  LIns* condval = ins->oprnd1();
1623
- NanoAssert(condval->isCmp());
1624
-
1625
- LIns* values = ins->oprnd2();
1626
-
1627
- NanoAssert(values->opcode() == LIR_2);
1628
- LIns* iftrue = values->oprnd1();
1629
- LIns* iffalse = values->oprnd2();
2287
+ LIns* iftrue = ins->oprnd2();
2288
+ LIns* iffalse = ins->oprnd3();
1630
2289
 
2290
+ NanoAssert(condval->isCmp());
1631
2291
  NanoAssert(!iftrue->isQuad() && !iffalse->isQuad());
1632
2292
 
1633
2293
  const Register rr = prepResultReg(ins, GpRegs);
@@ -1639,15 +2299,14 @@ Assembler::asm_cmov(LInsp ins)
1639
2299
  // note that these are all opposites...
1640
2300
  case LIR_eq: MOVNE(rr, iffalsereg); break;
1641
2301
  case LIR_ov: MOVVC(rr, iffalsereg); break;
1642
- case LIR_cs: MOVNC(rr, iffalsereg); break;
1643
2302
  case LIR_lt: MOVGE(rr, iffalsereg); break;
1644
2303
  case LIR_le: MOVGT(rr, iffalsereg); break;
1645
2304
  case LIR_gt: MOVLE(rr, iffalsereg); break;
1646
2305
  case LIR_ge: MOVLT(rr, iffalsereg); break;
1647
- case LIR_ult: MOVCS(rr, iffalsereg); break;
2306
+ case LIR_ult: MOVHS(rr, iffalsereg); break;
1648
2307
  case LIR_ule: MOVHI(rr, iffalsereg); break;
1649
2308
  case LIR_ugt: MOVLS(rr, iffalsereg); break;
1650
- case LIR_uge: MOVCC(rr, iffalsereg); break;
2309
+ case LIR_uge: MOVLO(rr, iffalsereg); break;
1651
2310
  default: debug_only( NanoAssert(0) ); break;
1652
2311
  }
1653
2312
  /*const Register iftruereg =*/ findSpecificRegFor(iftrue, rr);
@@ -1660,7 +2319,7 @@ Assembler::asm_qhi(LInsp ins)
1660
2319
  Register rr = prepResultReg(ins, GpRegs);
1661
2320
  LIns *q = ins->oprnd1();
1662
2321
  int d = findMemFor(q);
1663
- LD(rr, d+4, FP);
2322
+ LDR(rr, FP, d+4);
1664
2323
  }
1665
2324
 
1666
2325
  void
@@ -1669,37 +2328,18 @@ Assembler::asm_qlo(LInsp ins)
1669
2328
  Register rr = prepResultReg(ins, GpRegs);
1670
2329
  LIns *q = ins->oprnd1();
1671
2330
  int d = findMemFor(q);
1672
- LD(rr, d, FP);
1673
-
1674
- #if 0
1675
- LIns *q = ins->oprnd1();
1676
-
1677
- Reservation *resv = getresv(ins);
1678
- Register rr = resv->reg;
1679
- if (rr == UnknownReg) {
1680
- // store quad in spill loc
1681
- int d = disp(resv);
1682
- freeRsrcOf(ins, false);
1683
- Register qr = findRegFor(q, XmmRegs);
1684
- SSE_MOVDm(d, FP, qr);
1685
- } else {
1686
- freeRsrcOf(ins, false);
1687
- Register qr = findRegFor(q, XmmRegs);
1688
- SSE_MOVD(rr,qr);
1689
- }
1690
- #endif
2331
+ LDR(rr, FP, d);
1691
2332
  }
1692
2333
 
1693
-
1694
2334
  void
1695
2335
  Assembler::asm_param(LInsp ins)
1696
2336
  {
1697
- uint32_t a = ins->imm8();
1698
- uint32_t kind = ins->imm8b();
2337
+ uint32_t a = ins->paramArg();
2338
+ uint32_t kind = ins->paramKind();
1699
2339
  if (kind == 0) {
1700
2340
  // ordinary param
1701
2341
  AbiKind abi = _thisfrag->lirbuf->abi;
1702
- uint32_t abi_regcount = abi == ABI_FASTCALL ? 2 : abi == ABI_THISCALL ? 1 : 0;
2342
+ uint32_t abi_regcount = abi == ABI_CDECL ? 4 : abi == ABI_FASTCALL ? 2 : abi == ABI_THISCALL ? 1 : 0;
1703
2343
  if (a < abi_regcount) {
1704
2344
  // incoming arg in register
1705
2345
  prepResultReg(ins, rmask(argRegs[a]));
@@ -1707,7 +2347,7 @@ Assembler::asm_param(LInsp ins)
1707
2347
  // incoming arg is on stack, and EBP points nearby (see genPrologue)
1708
2348
  Register r = prepResultReg(ins, GpRegs);
1709
2349
  int d = (a - abi_regcount) * sizeof(intptr_t) + 8;
1710
- LD(r, d, FP);
2350
+ LDR(r, FP, d);
1711
2351
  }
1712
2352
  } else {
1713
2353
  // saved param
@@ -1716,27 +2356,47 @@ Assembler::asm_param(LInsp ins)
1716
2356
  }
1717
2357
 
1718
2358
  void
1719
- Assembler::asm_short(LInsp ins)
2359
+ Assembler::asm_int(LInsp ins)
1720
2360
  {
1721
2361
  Register rr = prepResultReg(ins, GpRegs);
1722
- int32_t val = ins->imm16();
1723
- if (val == 0)
1724
- EOR(rr,rr,rr);
1725
- else
1726
- LDi(rr, val);
2362
+ asm_ld_imm(rr, ins->imm32());
1727
2363
  }
1728
2364
 
1729
2365
  void
1730
- Assembler::asm_int(LInsp ins)
2366
+ Assembler::asm_ret(LIns *ins)
1731
2367
  {
1732
- Register rr = prepResultReg(ins, GpRegs);
1733
- int32_t val = ins->imm32();
1734
- if (val == 0)
1735
- EOR(rr,rr,rr);
1736
- else
1737
- LDi(rr, val);
2368
+ genEpilogue();
2369
+
2370
+ // Pop the stack frame.
2371
+ MOV(SP,FP);
2372
+
2373
+ assignSavedRegs();
2374
+ LIns *value = ins->oprnd1();
2375
+ if (ins->isop(LIR_ret)) {
2376
+ findSpecificRegFor(value, R0);
2377
+ }
2378
+ else {
2379
+ NanoAssert(ins->isop(LIR_fret));
2380
+ if (ARM_VFP) {
2381
+ Register reg = findRegFor(value, FpRegs);
2382
+ FMRRD(R0, R1, reg);
2383
+ } else {
2384
+ NanoAssert(value->isop(LIR_qjoin));
2385
+ findSpecificRegFor(value->oprnd1(), R0); // lo
2386
+ findSpecificRegFor(value->oprnd2(), R1); // hi
2387
+ }
2388
+ }
1738
2389
  }
1739
2390
 
2391
+ void
2392
+ Assembler::asm_promote(LIns *ins)
2393
+ {
2394
+ /* The LIR opcodes that result in a call to asm_promote are only generated
2395
+ * if NANOJIT_64BIT is #define'd, which it never is for ARM.
2396
+ */
2397
+ (void)ins;
2398
+ NanoAssert(0);
1740
2399
  }
1741
2400
 
2401
+ }
1742
2402
  #endif /* FEATURE_NANOJIT */