therubyracer 0.4.8 → 0.4.9

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of therubyracer might be problematic. Click here for more details.

Files changed (578) hide show
  1. data/.gitignore +11 -0
  2. data/.gitmodules +3 -0
  3. data/History.txt +5 -1
  4. data/Rakefile +35 -38
  5. data/ext/v8/callbacks.cpp +1 -1
  6. data/ext/v8/convert_ruby.h +1 -1
  7. data/ext/v8/convert_string.h +3 -3
  8. data/ext/v8/extconf.rb +9 -17
  9. data/ext/v8/upstream/2.0.6/.gitignore +26 -0
  10. data/ext/v8/upstream/Makefile +31 -0
  11. data/ext/v8/upstream/no-strict-aliasing.patch +13 -0
  12. data/ext/v8/v8_str.cpp +1 -1
  13. data/ext/v8/v8_template.cpp +1 -1
  14. data/lib/v8.rb +1 -1
  15. data/spec/ext/obj_spec.rb +1 -1
  16. data/therubyracer.gemspec +658 -12
  17. metadata +22 -595
  18. data/Manifest.txt +0 -1191
  19. data/ext/v8/upstream/2.0.6/.sconsign.dblite +0 -0
  20. data/ext/v8/upstream/2.0.6/benchmarks/README.txt +0 -63
  21. data/ext/v8/upstream/2.0.6/benchmarks/base.js +0 -264
  22. data/ext/v8/upstream/2.0.6/benchmarks/crypto.js +0 -1698
  23. data/ext/v8/upstream/2.0.6/benchmarks/deltablue.js +0 -880
  24. data/ext/v8/upstream/2.0.6/benchmarks/earley-boyer.js +0 -4684
  25. data/ext/v8/upstream/2.0.6/benchmarks/raytrace.js +0 -935
  26. data/ext/v8/upstream/2.0.6/benchmarks/regexp.js +0 -1614
  27. data/ext/v8/upstream/2.0.6/benchmarks/revisions.html +0 -86
  28. data/ext/v8/upstream/2.0.6/benchmarks/richards.js +0 -539
  29. data/ext/v8/upstream/2.0.6/benchmarks/run.html +0 -141
  30. data/ext/v8/upstream/2.0.6/benchmarks/run.js +0 -61
  31. data/ext/v8/upstream/2.0.6/benchmarks/splay.js +0 -378
  32. data/ext/v8/upstream/2.0.6/benchmarks/style.css +0 -77
  33. data/ext/v8/upstream/2.0.6/benchmarks/v8-logo.png +0 -0
  34. data/ext/v8/upstream/2.0.6/samples/SConscript +0 -38
  35. data/ext/v8/upstream/2.0.6/samples/count-hosts.js +0 -42
  36. data/ext/v8/upstream/2.0.6/samples/process.cc +0 -622
  37. data/ext/v8/upstream/2.0.6/samples/shell.cc +0 -303
  38. data/ext/v8/upstream/2.0.6/test/cctest/SConscript +0 -95
  39. data/ext/v8/upstream/2.0.6/test/cctest/cctest.cc +0 -126
  40. data/ext/v8/upstream/2.0.6/test/cctest/cctest.h +0 -211
  41. data/ext/v8/upstream/2.0.6/test/cctest/cctest.status +0 -54
  42. data/ext/v8/upstream/2.0.6/test/cctest/test-accessors.cc +0 -450
  43. data/ext/v8/upstream/2.0.6/test/cctest/test-alloc.cc +0 -215
  44. data/ext/v8/upstream/2.0.6/test/cctest/test-api.cc +0 -8699
  45. data/ext/v8/upstream/2.0.6/test/cctest/test-assembler-arm.cc +0 -227
  46. data/ext/v8/upstream/2.0.6/test/cctest/test-assembler-ia32.cc +0 -395
  47. data/ext/v8/upstream/2.0.6/test/cctest/test-assembler-x64.cc +0 -292
  48. data/ext/v8/upstream/2.0.6/test/cctest/test-ast.cc +0 -97
  49. data/ext/v8/upstream/2.0.6/test/cctest/test-compiler.cc +0 -318
  50. data/ext/v8/upstream/2.0.6/test/cctest/test-conversions.cc +0 -130
  51. data/ext/v8/upstream/2.0.6/test/cctest/test-debug.cc +0 -5788
  52. data/ext/v8/upstream/2.0.6/test/cctest/test-decls.cc +0 -593
  53. data/ext/v8/upstream/2.0.6/test/cctest/test-disasm-arm.cc +0 -281
  54. data/ext/v8/upstream/2.0.6/test/cctest/test-disasm-ia32.cc +0 -418
  55. data/ext/v8/upstream/2.0.6/test/cctest/test-flags.cc +0 -234
  56. data/ext/v8/upstream/2.0.6/test/cctest/test-func-name-inference.cc +0 -267
  57. data/ext/v8/upstream/2.0.6/test/cctest/test-hashmap.cc +0 -176
  58. data/ext/v8/upstream/2.0.6/test/cctest/test-heap-profiler.cc +0 -396
  59. data/ext/v8/upstream/2.0.6/test/cctest/test-heap.cc +0 -796
  60. data/ext/v8/upstream/2.0.6/test/cctest/test-list.cc +0 -101
  61. data/ext/v8/upstream/2.0.6/test/cctest/test-lock.cc +0 -63
  62. data/ext/v8/upstream/2.0.6/test/cctest/test-log-stack-tracer.cc +0 -372
  63. data/ext/v8/upstream/2.0.6/test/cctest/test-log-utils.cc +0 -310
  64. data/ext/v8/upstream/2.0.6/test/cctest/test-log.cc +0 -1081
  65. data/ext/v8/upstream/2.0.6/test/cctest/test-macro-assembler-x64.cc +0 -2104
  66. data/ext/v8/upstream/2.0.6/test/cctest/test-mark-compact.cc +0 -341
  67. data/ext/v8/upstream/2.0.6/test/cctest/test-parsing.cc +0 -129
  68. data/ext/v8/upstream/2.0.6/test/cctest/test-platform-linux.cc +0 -80
  69. data/ext/v8/upstream/2.0.6/test/cctest/test-platform-macos.cc +0 -10
  70. data/ext/v8/upstream/2.0.6/test/cctest/test-platform-nullos.cc +0 -80
  71. data/ext/v8/upstream/2.0.6/test/cctest/test-platform-win32.cc +0 -26
  72. data/ext/v8/upstream/2.0.6/test/cctest/test-regexp.cc +0 -1815
  73. data/ext/v8/upstream/2.0.6/test/cctest/test-serialize.cc +0 -438
  74. data/ext/v8/upstream/2.0.6/test/cctest/test-sockets.cc +0 -162
  75. data/ext/v8/upstream/2.0.6/test/cctest/test-spaces.cc +0 -248
  76. data/ext/v8/upstream/2.0.6/test/cctest/test-strings.cc +0 -432
  77. data/ext/v8/upstream/2.0.6/test/cctest/test-thread-termination.cc +0 -290
  78. data/ext/v8/upstream/2.0.6/test/cctest/test-threads.cc +0 -52
  79. data/ext/v8/upstream/2.0.6/test/cctest/test-utils.cc +0 -186
  80. data/ext/v8/upstream/2.0.6/test/cctest/test-version.cc +0 -89
  81. data/ext/v8/upstream/2.0.6/test/cctest/testcfg.py +0 -108
  82. data/ext/v8/upstream/2.0.6/test/es5conform/README +0 -14
  83. data/ext/v8/upstream/2.0.6/test/es5conform/es5conform.status +0 -226
  84. data/ext/v8/upstream/2.0.6/test/es5conform/harness-adapt.js +0 -74
  85. data/ext/v8/upstream/2.0.6/test/es5conform/testcfg.py +0 -108
  86. data/ext/v8/upstream/2.0.6/test/message/message.status +0 -31
  87. data/ext/v8/upstream/2.0.6/test/message/overwritten-builtins.js +0 -31
  88. data/ext/v8/upstream/2.0.6/test/message/overwritten-builtins.out +0 -30
  89. data/ext/v8/upstream/2.0.6/test/message/regress/regress-73.js +0 -33
  90. data/ext/v8/upstream/2.0.6/test/message/regress/regress-73.out +0 -30
  91. data/ext/v8/upstream/2.0.6/test/message/regress/regress-75.js +0 -32
  92. data/ext/v8/upstream/2.0.6/test/message/regress/regress-75.out +0 -30
  93. data/ext/v8/upstream/2.0.6/test/message/simple-throw.js +0 -28
  94. data/ext/v8/upstream/2.0.6/test/message/simple-throw.out +0 -30
  95. data/ext/v8/upstream/2.0.6/test/message/testcfg.py +0 -135
  96. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-no-message.js +0 -51
  97. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-no-message.out +0 -26
  98. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-return-in-finally.js +0 -39
  99. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-return-in-finally.out +0 -28
  100. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-throw-in-catch-and-finally.js +0 -34
  101. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-throw-in-catch-and-finally.out +0 -30
  102. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-throw-in-catch.js +0 -34
  103. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-throw-in-catch.out +0 -30
  104. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-throw-in-finally.js +0 -34
  105. data/ext/v8/upstream/2.0.6/test/message/try-catch-finally-throw-in-finally.out +0 -30
  106. data/ext/v8/upstream/2.0.6/test/message/try-finally-return-in-finally.js +0 -37
  107. data/ext/v8/upstream/2.0.6/test/message/try-finally-return-in-finally.out +0 -28
  108. data/ext/v8/upstream/2.0.6/test/message/try-finally-throw-in-finally.js +0 -32
  109. data/ext/v8/upstream/2.0.6/test/message/try-finally-throw-in-finally.out +0 -30
  110. data/ext/v8/upstream/2.0.6/test/message/try-finally-throw-in-try-and-finally.js +0 -32
  111. data/ext/v8/upstream/2.0.6/test/message/try-finally-throw-in-try-and-finally.out +0 -30
  112. data/ext/v8/upstream/2.0.6/test/message/try-finally-throw-in-try.js +0 -32
  113. data/ext/v8/upstream/2.0.6/test/message/try-finally-throw-in-try.out +0 -30
  114. data/ext/v8/upstream/2.0.6/test/mjsunit/api-call-after-bypassed-exception.js +0 -39
  115. data/ext/v8/upstream/2.0.6/test/mjsunit/apply.js +0 -196
  116. data/ext/v8/upstream/2.0.6/test/mjsunit/arguments-apply.js +0 -134
  117. data/ext/v8/upstream/2.0.6/test/mjsunit/arguments-call-apply.js +0 -41
  118. data/ext/v8/upstream/2.0.6/test/mjsunit/arguments-enum.js +0 -52
  119. data/ext/v8/upstream/2.0.6/test/mjsunit/arguments-indirect.js +0 -47
  120. data/ext/v8/upstream/2.0.6/test/mjsunit/arguments-lazy.js +0 -47
  121. data/ext/v8/upstream/2.0.6/test/mjsunit/arguments-opt.js +0 -130
  122. data/ext/v8/upstream/2.0.6/test/mjsunit/arguments-read-and-assignment.js +0 -164
  123. data/ext/v8/upstream/2.0.6/test/mjsunit/arguments.js +0 -97
  124. data/ext/v8/upstream/2.0.6/test/mjsunit/array-concat.js +0 -120
  125. data/ext/v8/upstream/2.0.6/test/mjsunit/array-constructor.js +0 -119
  126. data/ext/v8/upstream/2.0.6/test/mjsunit/array-functions-prototype.js +0 -159
  127. data/ext/v8/upstream/2.0.6/test/mjsunit/array-indexing.js +0 -66
  128. data/ext/v8/upstream/2.0.6/test/mjsunit/array-iteration.js +0 -228
  129. data/ext/v8/upstream/2.0.6/test/mjsunit/array-join.js +0 -45
  130. data/ext/v8/upstream/2.0.6/test/mjsunit/array-length-number-conversion.js +0 -53
  131. data/ext/v8/upstream/2.0.6/test/mjsunit/array-length.js +0 -111
  132. data/ext/v8/upstream/2.0.6/test/mjsunit/array-reduce.js +0 -514
  133. data/ext/v8/upstream/2.0.6/test/mjsunit/array-sort.js +0 -362
  134. data/ext/v8/upstream/2.0.6/test/mjsunit/array-splice.js +0 -314
  135. data/ext/v8/upstream/2.0.6/test/mjsunit/ascii-regexp-subject.js +0 -49
  136. data/ext/v8/upstream/2.0.6/test/mjsunit/big-array-literal.js +0 -111
  137. data/ext/v8/upstream/2.0.6/test/mjsunit/big-object-literal.js +0 -114
  138. data/ext/v8/upstream/2.0.6/test/mjsunit/binary-operation-overwrite.js +0 -36
  139. data/ext/v8/upstream/2.0.6/test/mjsunit/bit-not.js +0 -75
  140. data/ext/v8/upstream/2.0.6/test/mjsunit/bitwise-operations-undefined.js +0 -49
  141. data/ext/v8/upstream/2.0.6/test/mjsunit/body-not-visible.js +0 -39
  142. data/ext/v8/upstream/2.0.6/test/mjsunit/bugs/bug-1344252.js +0 -79
  143. data/ext/v8/upstream/2.0.6/test/mjsunit/bugs/bug-222.js +0 -42
  144. data/ext/v8/upstream/2.0.6/test/mjsunit/bugs/bug-223.js +0 -39
  145. data/ext/v8/upstream/2.0.6/test/mjsunit/bugs/bug-900066.js +0 -38
  146. data/ext/v8/upstream/2.0.6/test/mjsunit/bugs/bug-941049.js +0 -100
  147. data/ext/v8/upstream/2.0.6/test/mjsunit/call-non-function-call.js +0 -38
  148. data/ext/v8/upstream/2.0.6/test/mjsunit/call-non-function.js +0 -63
  149. data/ext/v8/upstream/2.0.6/test/mjsunit/call.js +0 -87
  150. data/ext/v8/upstream/2.0.6/test/mjsunit/char-escape.js +0 -53
  151. data/ext/v8/upstream/2.0.6/test/mjsunit/class-of-builtins.js +0 -50
  152. data/ext/v8/upstream/2.0.6/test/mjsunit/closure.js +0 -37
  153. data/ext/v8/upstream/2.0.6/test/mjsunit/codegen-coverage.js +0 -91
  154. data/ext/v8/upstream/2.0.6/test/mjsunit/compare-character.js +0 -50
  155. data/ext/v8/upstream/2.0.6/test/mjsunit/compare-nan.js +0 -66
  156. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/countoperation.js +0 -111
  157. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/function-call.js +0 -52
  158. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/globals.js +0 -65
  159. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/jsnatives.js +0 -33
  160. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/literals-assignment.js +0 -104
  161. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/literals.js +0 -52
  162. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/loops.js +0 -35
  163. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/objectliterals.js +0 -57
  164. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/property-simple.js +0 -39
  165. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/short-circuit.js +0 -102
  166. data/ext/v8/upstream/2.0.6/test/mjsunit/compiler/thisfunction.js +0 -35
  167. data/ext/v8/upstream/2.0.6/test/mjsunit/const-declaration.js +0 -172
  168. data/ext/v8/upstream/2.0.6/test/mjsunit/const-eval-init.js +0 -111
  169. data/ext/v8/upstream/2.0.6/test/mjsunit/const-redecl.js +0 -220
  170. data/ext/v8/upstream/2.0.6/test/mjsunit/const.js +0 -70
  171. data/ext/v8/upstream/2.0.6/test/mjsunit/constant-folding.js +0 -232
  172. data/ext/v8/upstream/2.0.6/test/mjsunit/context-variable-assignments.js +0 -37
  173. data/ext/v8/upstream/2.0.6/test/mjsunit/cyclic-array-to-string.js +0 -65
  174. data/ext/v8/upstream/2.0.6/test/mjsunit/cyrillic.js +0 -199
  175. data/ext/v8/upstream/2.0.6/test/mjsunit/d8-os.js +0 -180
  176. data/ext/v8/upstream/2.0.6/test/mjsunit/date-parse.js +0 -268
  177. data/ext/v8/upstream/2.0.6/test/mjsunit/date.js +0 -149
  178. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-backtrace-text.js +0 -122
  179. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-backtrace.js +0 -272
  180. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-breakpoints.js +0 -120
  181. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-changebreakpoint.js +0 -108
  182. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-clearbreakpoint.js +0 -101
  183. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-clearbreakpointgroup.js +0 -117
  184. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-compile-event.js +0 -126
  185. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-conditional-breakpoints.js +0 -171
  186. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-constructed-by.js +0 -60
  187. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-constructor.js +0 -78
  188. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-continue.js +0 -114
  189. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-enable-disable-breakpoints.js +0 -90
  190. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-evaluate-arguments.js +0 -93
  191. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-evaluate-bool-constructor.js +0 -80
  192. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-evaluate-locals.js +0 -132
  193. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-evaluate-recursive.js +0 -167
  194. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-evaluate-with.js +0 -77
  195. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-evaluate.js +0 -118
  196. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-event-listener.js +0 -73
  197. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-handle.js +0 -252
  198. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-ignore-breakpoints.js +0 -89
  199. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-mirror-cache.js +0 -85
  200. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-multiple-breakpoints.js +0 -105
  201. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-referenced-by.js +0 -112
  202. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-references.js +0 -118
  203. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-scopes.js +0 -761
  204. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-script-breakpoints.js +0 -112
  205. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-script.js +0 -92
  206. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-scripts-request.js +0 -108
  207. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-setbreakpoint.js +0 -165
  208. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-sourceinfo.js +0 -352
  209. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-sourceslice.js +0 -74
  210. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-step-stub-callfunction.js +0 -87
  211. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-step.js +0 -82
  212. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-stepin-accessor.js +0 -248
  213. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-stepin-builtin.js +0 -78
  214. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-stepin-call-function-stub.js +0 -115
  215. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-stepin-constructor.js +0 -78
  216. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-stepin-function-call.js +0 -149
  217. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-stepnext-do-while.js +0 -79
  218. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-stepout-recursive-function.js +0 -106
  219. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-stepout-to-builtin.js +0 -84
  220. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-suspend.js +0 -96
  221. data/ext/v8/upstream/2.0.6/test/mjsunit/debug-version.js +0 -90
  222. data/ext/v8/upstream/2.0.6/test/mjsunit/declare-locally.js +0 -43
  223. data/ext/v8/upstream/2.0.6/test/mjsunit/deep-recursion.js +0 -66
  224. data/ext/v8/upstream/2.0.6/test/mjsunit/delay-syntax-error.js +0 -41
  225. data/ext/v8/upstream/2.0.6/test/mjsunit/delete-global-properties.js +0 -37
  226. data/ext/v8/upstream/2.0.6/test/mjsunit/delete-in-eval.js +0 -32
  227. data/ext/v8/upstream/2.0.6/test/mjsunit/delete-in-with.js +0 -34
  228. data/ext/v8/upstream/2.0.6/test/mjsunit/delete-vars-from-eval.js +0 -40
  229. data/ext/v8/upstream/2.0.6/test/mjsunit/delete.js +0 -163
  230. data/ext/v8/upstream/2.0.6/test/mjsunit/div-mod.js +0 -157
  231. data/ext/v8/upstream/2.0.6/test/mjsunit/do-not-strip-fc.js +0 -31
  232. data/ext/v8/upstream/2.0.6/test/mjsunit/dont-enum-array-holes.js +0 -35
  233. data/ext/v8/upstream/2.0.6/test/mjsunit/dont-reinit-global-var.js +0 -47
  234. data/ext/v8/upstream/2.0.6/test/mjsunit/double-equals.js +0 -114
  235. data/ext/v8/upstream/2.0.6/test/mjsunit/dtoa.js +0 -32
  236. data/ext/v8/upstream/2.0.6/test/mjsunit/enumeration-order.js +0 -109
  237. data/ext/v8/upstream/2.0.6/test/mjsunit/error-constructors.js +0 -32
  238. data/ext/v8/upstream/2.0.6/test/mjsunit/escape.js +0 -118
  239. data/ext/v8/upstream/2.0.6/test/mjsunit/eval-enclosing-function-name.js +0 -76
  240. data/ext/v8/upstream/2.0.6/test/mjsunit/eval-typeof-non-existing.js +0 -35
  241. data/ext/v8/upstream/2.0.6/test/mjsunit/eval.js +0 -157
  242. data/ext/v8/upstream/2.0.6/test/mjsunit/execScript-case-insensitive.js +0 -34
  243. data/ext/v8/upstream/2.0.6/test/mjsunit/extra-arguments.js +0 -54
  244. data/ext/v8/upstream/2.0.6/test/mjsunit/extra-commas.js +0 -46
  245. data/ext/v8/upstream/2.0.6/test/mjsunit/for-in-null-or-undefined.js +0 -33
  246. data/ext/v8/upstream/2.0.6/test/mjsunit/for-in-special-cases.js +0 -64
  247. data/ext/v8/upstream/2.0.6/test/mjsunit/for-in.js +0 -86
  248. data/ext/v8/upstream/2.0.6/test/mjsunit/fun-as-prototype.js +0 -36
  249. data/ext/v8/upstream/2.0.6/test/mjsunit/fun-name.js +0 -34
  250. data/ext/v8/upstream/2.0.6/test/mjsunit/function-arguments-null.js +0 -30
  251. data/ext/v8/upstream/2.0.6/test/mjsunit/function-caller.js +0 -48
  252. data/ext/v8/upstream/2.0.6/test/mjsunit/function-names.js +0 -133
  253. data/ext/v8/upstream/2.0.6/test/mjsunit/function-property.js +0 -29
  254. data/ext/v8/upstream/2.0.6/test/mjsunit/function-prototype.js +0 -98
  255. data/ext/v8/upstream/2.0.6/test/mjsunit/function-source.js +0 -49
  256. data/ext/v8/upstream/2.0.6/test/mjsunit/function.js +0 -83
  257. data/ext/v8/upstream/2.0.6/test/mjsunit/fuzz-accessors.js +0 -85
  258. data/ext/v8/upstream/2.0.6/test/mjsunit/fuzz-natives.js +0 -159
  259. data/ext/v8/upstream/2.0.6/test/mjsunit/get-own-property-descriptor.js +0 -51
  260. data/ext/v8/upstream/2.0.6/test/mjsunit/get-prototype-of.js +0 -68
  261. data/ext/v8/upstream/2.0.6/test/mjsunit/getter-in-prototype.js +0 -50
  262. data/ext/v8/upstream/2.0.6/test/mjsunit/getter-in-value-prototype.js +0 -35
  263. data/ext/v8/upstream/2.0.6/test/mjsunit/global-const-var-conflicts.js +0 -57
  264. data/ext/v8/upstream/2.0.6/test/mjsunit/global-deleted-property-ic.js +0 -45
  265. data/ext/v8/upstream/2.0.6/test/mjsunit/global-deleted-property-keyed.js +0 -38
  266. data/ext/v8/upstream/2.0.6/test/mjsunit/global-ic.js +0 -48
  267. data/ext/v8/upstream/2.0.6/test/mjsunit/global-load-from-eval-in-with.js +0 -59
  268. data/ext/v8/upstream/2.0.6/test/mjsunit/global-load-from-eval.js +0 -85
  269. data/ext/v8/upstream/2.0.6/test/mjsunit/global-load-from-nested-eval.js +0 -66
  270. data/ext/v8/upstream/2.0.6/test/mjsunit/global-vars-eval.js +0 -34
  271. data/ext/v8/upstream/2.0.6/test/mjsunit/global-vars-with.js +0 -43
  272. data/ext/v8/upstream/2.0.6/test/mjsunit/greedy.js +0 -60
  273. data/ext/v8/upstream/2.0.6/test/mjsunit/has-own-property.js +0 -38
  274. data/ext/v8/upstream/2.0.6/test/mjsunit/html-comments.js +0 -57
  275. data/ext/v8/upstream/2.0.6/test/mjsunit/html-string-funcs.js +0 -47
  276. data/ext/v8/upstream/2.0.6/test/mjsunit/if-in-undefined.js +0 -36
  277. data/ext/v8/upstream/2.0.6/test/mjsunit/in.js +0 -159
  278. data/ext/v8/upstream/2.0.6/test/mjsunit/indexed-accessors.js +0 -120
  279. data/ext/v8/upstream/2.0.6/test/mjsunit/instanceof.js +0 -93
  280. data/ext/v8/upstream/2.0.6/test/mjsunit/integer-to-string.js +0 -35
  281. data/ext/v8/upstream/2.0.6/test/mjsunit/invalid-lhs.js +0 -65
  282. data/ext/v8/upstream/2.0.6/test/mjsunit/invalid-source-element.js +0 -31
  283. data/ext/v8/upstream/2.0.6/test/mjsunit/json.js +0 -207
  284. data/ext/v8/upstream/2.0.6/test/mjsunit/keyed-ic.js +0 -236
  285. data/ext/v8/upstream/2.0.6/test/mjsunit/keyed-storage-extend.js +0 -55
  286. data/ext/v8/upstream/2.0.6/test/mjsunit/large-object-allocation.js +0 -300
  287. data/ext/v8/upstream/2.0.6/test/mjsunit/large-object-literal.js +0 -56
  288. data/ext/v8/upstream/2.0.6/test/mjsunit/lazy-load.js +0 -34
  289. data/ext/v8/upstream/2.0.6/test/mjsunit/leakcheck.js +0 -53
  290. data/ext/v8/upstream/2.0.6/test/mjsunit/length.js +0 -78
  291. data/ext/v8/upstream/2.0.6/test/mjsunit/local-load-from-eval.js +0 -39
  292. data/ext/v8/upstream/2.0.6/test/mjsunit/math-min-max.js +0 -105
  293. data/ext/v8/upstream/2.0.6/test/mjsunit/megamorphic-callbacks.js +0 -70
  294. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-array.js +0 -138
  295. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-boolean.js +0 -59
  296. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-date.js +0 -77
  297. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-error.js +0 -94
  298. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-function.js +0 -90
  299. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-null.js +0 -50
  300. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-number.js +0 -77
  301. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-object.js +0 -227
  302. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-regexp.js +0 -110
  303. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-script.js +0 -100
  304. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-string.js +0 -89
  305. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-undefined.js +0 -50
  306. data/ext/v8/upstream/2.0.6/test/mjsunit/mirror-unresolved-function.js +0 -81
  307. data/ext/v8/upstream/2.0.6/test/mjsunit/mjsunit.js +0 -203
  308. data/ext/v8/upstream/2.0.6/test/mjsunit/mjsunit.status +0 -66
  309. data/ext/v8/upstream/2.0.6/test/mjsunit/mul-exhaustive.js +0 -4511
  310. data/ext/v8/upstream/2.0.6/test/mjsunit/multiple-return.js +0 -62
  311. data/ext/v8/upstream/2.0.6/test/mjsunit/negate-zero.js +0 -42
  312. data/ext/v8/upstream/2.0.6/test/mjsunit/negate.js +0 -59
  313. data/ext/v8/upstream/2.0.6/test/mjsunit/new.js +0 -56
  314. data/ext/v8/upstream/2.0.6/test/mjsunit/newline-in-string.js +0 -46
  315. data/ext/v8/upstream/2.0.6/test/mjsunit/no-branch-elimination.js +0 -36
  316. data/ext/v8/upstream/2.0.6/test/mjsunit/no-octal-constants-above-256.js +0 -32
  317. data/ext/v8/upstream/2.0.6/test/mjsunit/no-semicolon.js +0 -45
  318. data/ext/v8/upstream/2.0.6/test/mjsunit/non-ascii-replace.js +0 -30
  319. data/ext/v8/upstream/2.0.6/test/mjsunit/nul-characters.js +0 -38
  320. data/ext/v8/upstream/2.0.6/test/mjsunit/number-limits.js +0 -47
  321. data/ext/v8/upstream/2.0.6/test/mjsunit/number-string-index-call.js +0 -32
  322. data/ext/v8/upstream/2.0.6/test/mjsunit/number-tostring-small.js +0 -395
  323. data/ext/v8/upstream/2.0.6/test/mjsunit/number-tostring.js +0 -338
  324. data/ext/v8/upstream/2.0.6/test/mjsunit/obj-construct.js +0 -46
  325. data/ext/v8/upstream/2.0.6/test/mjsunit/object-create.js +0 -250
  326. data/ext/v8/upstream/2.0.6/test/mjsunit/object-literal-gc.js +0 -66
  327. data/ext/v8/upstream/2.0.6/test/mjsunit/object-literal.js +0 -105
  328. data/ext/v8/upstream/2.0.6/test/mjsunit/override-read-only-property.js +0 -64
  329. data/ext/v8/upstream/2.0.6/test/mjsunit/parse-int-float.js +0 -85
  330. data/ext/v8/upstream/2.0.6/test/mjsunit/property-load-across-eval.js +0 -85
  331. data/ext/v8/upstream/2.0.6/test/mjsunit/property-object-key.js +0 -36
  332. data/ext/v8/upstream/2.0.6/test/mjsunit/proto.js +0 -33
  333. data/ext/v8/upstream/2.0.6/test/mjsunit/prototype.js +0 -93
  334. data/ext/v8/upstream/2.0.6/test/mjsunit/receiver-in-with-calls.js +0 -47
  335. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-UC16.js +0 -47
  336. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-call-as-function.js +0 -36
  337. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-capture.js +0 -57
  338. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-captures.js +0 -31
  339. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-indexof.js +0 -77
  340. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-lookahead.js +0 -166
  341. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-loop-capture.js +0 -29
  342. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-multiline-stack-trace.js +0 -116
  343. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-multiline.js +0 -112
  344. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-standalones.js +0 -78
  345. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-static.js +0 -167
  346. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp-string-methods.js +0 -51
  347. data/ext/v8/upstream/2.0.6/test/mjsunit/regexp.js +0 -390
  348. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1030466.js +0 -45
  349. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1036894.js +0 -38
  350. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1039610.js +0 -29
  351. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1050043.js +0 -51
  352. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1062422.js +0 -30
  353. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1066899.js +0 -37
  354. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1081309.js +0 -110
  355. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1102760.js +0 -35
  356. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1110164.js +0 -46
  357. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1112051.js +0 -33
  358. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1114040.js +0 -58
  359. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1134697.js +0 -31
  360. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-114.js +0 -43
  361. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-116.js +0 -40
  362. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1170187.js +0 -80
  363. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1173979.js +0 -48
  364. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1175390.js +0 -30
  365. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1177518.js +0 -39
  366. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1177809.js +0 -31
  367. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1178598.js +0 -90
  368. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1182832.js +0 -38
  369. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1187524.js +0 -34
  370. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1199401.js +0 -75
  371. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1199637.js +0 -78
  372. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1200351.js +0 -2032
  373. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1201933.js +0 -40
  374. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1203459.js +0 -29
  375. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1207276.js +0 -36
  376. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1213516.js +0 -40
  377. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1213575.js +0 -41
  378. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1215653.js +0 -365
  379. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-124.js +0 -57
  380. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1254366.js +0 -38
  381. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1327557.js +0 -36
  382. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1341167.js +0 -33
  383. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1346700.js +0 -29
  384. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-137.js +0 -46
  385. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1439135.js +0 -40
  386. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-149.js +0 -28
  387. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1493017.js +0 -52
  388. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-155924.js +0 -46
  389. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-171.js +0 -41
  390. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-176.js +0 -50
  391. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-186.js +0 -72
  392. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-187.js +0 -30
  393. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-189.js +0 -36
  394. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-191.js +0 -42
  395. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-1919169.js +0 -40
  396. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-192.js +0 -38
  397. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-193.js +0 -44
  398. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-20070207.js +0 -42
  399. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-201.js +0 -37
  400. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-219.js +0 -176
  401. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-220.js +0 -31
  402. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-221.js +0 -34
  403. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-2249423.js +0 -40
  404. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-225.js +0 -32
  405. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-227.js +0 -33
  406. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-231.js +0 -92
  407. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-233.js +0 -39
  408. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-244.js +0 -67
  409. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-246.js +0 -31
  410. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-253.js +0 -31
  411. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-254.js +0 -58
  412. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-259.js +0 -33
  413. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-260.js +0 -33
  414. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-263.js +0 -38
  415. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-265.js +0 -64
  416. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-267.js +0 -35
  417. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-269.js +0 -49
  418. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-279.js +0 -62
  419. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-284.js +0 -50
  420. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-286.js +0 -36
  421. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-294.js +0 -43
  422. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-312.js +0 -31
  423. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-317.js +0 -31
  424. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-318.js +0 -35
  425. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-326.js +0 -40
  426. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-334.js +0 -90
  427. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-341.js +0 -36
  428. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-345.js +0 -51
  429. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-349.js +0 -32
  430. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-35.js +0 -33
  431. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-351.js +0 -31
  432. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-386.js +0 -47
  433. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-392.js +0 -34
  434. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-394.js +0 -47
  435. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-396.js +0 -39
  436. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-397.js +0 -34
  437. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-399.js +0 -32
  438. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-406.js +0 -69
  439. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-416.js +0 -38
  440. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-475.js +0 -28
  441. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-483.js +0 -35
  442. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-485.js +0 -64
  443. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-486.js +0 -30
  444. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-490.js +0 -48
  445. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-491.js +0 -47
  446. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-492.js +0 -52
  447. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-496.js +0 -39
  448. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-502.js +0 -38
  449. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-503.js +0 -63
  450. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-515.js +0 -40
  451. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-524.js +0 -32
  452. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-526.js +0 -32
  453. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-540.js +0 -47
  454. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-545.js +0 -47
  455. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-57.js +0 -32
  456. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-580.js +0 -55
  457. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-588599.js +0 -31
  458. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-6-9-regexp.js +0 -30
  459. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-662254.js +0 -40
  460. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-666721.js +0 -53
  461. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-667061.js +0 -90
  462. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-670147.js +0 -34
  463. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-674753.js +0 -87
  464. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-676025.js +0 -31
  465. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-678525.js +0 -59
  466. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-682649.js +0 -30
  467. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-69.js +0 -43
  468. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-734862.js +0 -37
  469. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-737588.js +0 -34
  470. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-74.js +0 -41
  471. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-780423.js +0 -39
  472. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-799761.js +0 -92
  473. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-806473.js +0 -60
  474. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-842017.js +0 -60
  475. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-86.js +0 -46
  476. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-87.js +0 -58
  477. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-874178.js +0 -32
  478. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-875031.js +0 -37
  479. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-877615.js +0 -37
  480. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-892742.js +0 -50
  481. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-900055.js +0 -42
  482. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-900966.js +0 -38
  483. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-91.js +0 -38
  484. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-925537.js +0 -42
  485. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-937896.js +0 -50
  486. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-990205.js +0 -35
  487. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-992733.js +0 -35
  488. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-996542.js +0 -40
  489. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-998565.js +0 -51
  490. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-crbug-18639.js +0 -34
  491. data/ext/v8/upstream/2.0.6/test/mjsunit/regress/regress-r3391.js +0 -77
  492. data/ext/v8/upstream/2.0.6/test/mjsunit/scanner.js +0 -30
  493. data/ext/v8/upstream/2.0.6/test/mjsunit/short-circuit-boolean.js +0 -46
  494. data/ext/v8/upstream/2.0.6/test/mjsunit/simple-constructor.js +0 -140
  495. data/ext/v8/upstream/2.0.6/test/mjsunit/sin-cos.js +0 -45
  496. data/ext/v8/upstream/2.0.6/test/mjsunit/smi-negative-zero.js +0 -100
  497. data/ext/v8/upstream/2.0.6/test/mjsunit/smi-ops.js +0 -671
  498. data/ext/v8/upstream/2.0.6/test/mjsunit/sparse-array-reverse.js +0 -131
  499. data/ext/v8/upstream/2.0.6/test/mjsunit/sparse-array.js +0 -41
  500. data/ext/v8/upstream/2.0.6/test/mjsunit/stack-traces.js +0 -204
  501. data/ext/v8/upstream/2.0.6/test/mjsunit/str-to-num.js +0 -158
  502. data/ext/v8/upstream/2.0.6/test/mjsunit/stress-array-push.js +0 -34
  503. data/ext/v8/upstream/2.0.6/test/mjsunit/strict-equals.js +0 -90
  504. data/ext/v8/upstream/2.0.6/test/mjsunit/string-add.js +0 -195
  505. data/ext/v8/upstream/2.0.6/test/mjsunit/string-case.js +0 -28
  506. data/ext/v8/upstream/2.0.6/test/mjsunit/string-charat.js +0 -53
  507. data/ext/v8/upstream/2.0.6/test/mjsunit/string-charcodeat.js +0 -192
  508. data/ext/v8/upstream/2.0.6/test/mjsunit/string-compare-alignment.js +0 -47
  509. data/ext/v8/upstream/2.0.6/test/mjsunit/string-flatten.js +0 -37
  510. data/ext/v8/upstream/2.0.6/test/mjsunit/string-index.js +0 -154
  511. data/ext/v8/upstream/2.0.6/test/mjsunit/string-indexof-1.js +0 -99
  512. data/ext/v8/upstream/2.0.6/test/mjsunit/string-indexof-2.js +0 -68
  513. data/ext/v8/upstream/2.0.6/test/mjsunit/string-lastindexof.js +0 -88
  514. data/ext/v8/upstream/2.0.6/test/mjsunit/string-localecompare.js +0 -40
  515. data/ext/v8/upstream/2.0.6/test/mjsunit/string-match.js +0 -149
  516. data/ext/v8/upstream/2.0.6/test/mjsunit/string-replace-gc.js +0 -57
  517. data/ext/v8/upstream/2.0.6/test/mjsunit/string-replace.js +0 -182
  518. data/ext/v8/upstream/2.0.6/test/mjsunit/string-search.js +0 -30
  519. data/ext/v8/upstream/2.0.6/test/mjsunit/string-split.js +0 -126
  520. data/ext/v8/upstream/2.0.6/test/mjsunit/substr.js +0 -65
  521. data/ext/v8/upstream/2.0.6/test/mjsunit/switch.js +0 -289
  522. data/ext/v8/upstream/2.0.6/test/mjsunit/testcfg.py +0 -137
  523. data/ext/v8/upstream/2.0.6/test/mjsunit/third_party/array-isarray.js +0 -48
  524. data/ext/v8/upstream/2.0.6/test/mjsunit/third_party/array-splice-webkit.js +0 -62
  525. data/ext/v8/upstream/2.0.6/test/mjsunit/third_party/object-keys.js +0 -68
  526. data/ext/v8/upstream/2.0.6/test/mjsunit/third_party/regexp-pcre.js +0 -6603
  527. data/ext/v8/upstream/2.0.6/test/mjsunit/third_party/string-trim.js +0 -107
  528. data/ext/v8/upstream/2.0.6/test/mjsunit/this-in-callbacks.js +0 -47
  529. data/ext/v8/upstream/2.0.6/test/mjsunit/this.js +0 -46
  530. data/ext/v8/upstream/2.0.6/test/mjsunit/throw-and-catch-function.js +0 -50
  531. data/ext/v8/upstream/2.0.6/test/mjsunit/throw-exception-for-null-access.js +0 -37
  532. data/ext/v8/upstream/2.0.6/test/mjsunit/to-precision.js +0 -82
  533. data/ext/v8/upstream/2.0.6/test/mjsunit/to_number_order.js +0 -129
  534. data/ext/v8/upstream/2.0.6/test/mjsunit/tobool.js +0 -36
  535. data/ext/v8/upstream/2.0.6/test/mjsunit/toint32.js +0 -129
  536. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/codemap.js +0 -180
  537. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/consarray.js +0 -60
  538. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/csvparser.js +0 -79
  539. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/logreader.js +0 -98
  540. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/profile.js +0 -348
  541. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/profile_view.js +0 -95
  542. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/splaytree.js +0 -166
  543. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/tickprocessor-test.default +0 -55
  544. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/tickprocessor-test.gc-state +0 -21
  545. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/tickprocessor-test.ignore-unknown +0 -51
  546. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/tickprocessor-test.separate-ic +0 -61
  547. data/ext/v8/upstream/2.0.6/test/mjsunit/tools/tickprocessor.js +0 -409
  548. data/ext/v8/upstream/2.0.6/test/mjsunit/top-level-assignments.js +0 -107
  549. data/ext/v8/upstream/2.0.6/test/mjsunit/touint32.js +0 -72
  550. data/ext/v8/upstream/2.0.6/test/mjsunit/transcendentals.js +0 -49
  551. data/ext/v8/upstream/2.0.6/test/mjsunit/try-catch-extension-object.js +0 -58
  552. data/ext/v8/upstream/2.0.6/test/mjsunit/try-catch-scopes.js +0 -42
  553. data/ext/v8/upstream/2.0.6/test/mjsunit/try-finally-nested.js +0 -46
  554. data/ext/v8/upstream/2.0.6/test/mjsunit/try.js +0 -394
  555. data/ext/v8/upstream/2.0.6/test/mjsunit/typeof.js +0 -40
  556. data/ext/v8/upstream/2.0.6/test/mjsunit/undeletable-functions.js +0 -181
  557. data/ext/v8/upstream/2.0.6/test/mjsunit/unicode-case-overoptimization.js +0 -35
  558. data/ext/v8/upstream/2.0.6/test/mjsunit/unicode-string-to-number.js +0 -46
  559. data/ext/v8/upstream/2.0.6/test/mjsunit/unicode-test.js +0 -9169
  560. data/ext/v8/upstream/2.0.6/test/mjsunit/unusual-constructor.js +0 -38
  561. data/ext/v8/upstream/2.0.6/test/mjsunit/uri.js +0 -78
  562. data/ext/v8/upstream/2.0.6/test/mjsunit/value-callic-prototype-change.js +0 -94
  563. data/ext/v8/upstream/2.0.6/test/mjsunit/var.js +0 -37
  564. data/ext/v8/upstream/2.0.6/test/mjsunit/with-function-expression.js +0 -36
  565. data/ext/v8/upstream/2.0.6/test/mjsunit/with-leave.js +0 -61
  566. data/ext/v8/upstream/2.0.6/test/mjsunit/with-parameter-access.js +0 -47
  567. data/ext/v8/upstream/2.0.6/test/mjsunit/with-prototype.js +0 -44
  568. data/ext/v8/upstream/2.0.6/test/mjsunit/with-value.js +0 -38
  569. data/ext/v8/upstream/2.0.6/test/mozilla/mozilla-shell-emulation.js +0 -37
  570. data/ext/v8/upstream/2.0.6/test/mozilla/mozilla.status +0 -815
  571. data/ext/v8/upstream/2.0.6/test/mozilla/testcfg.py +0 -138
  572. data/ext/v8/upstream/2.0.6/test/sputnik/README +0 -6
  573. data/ext/v8/upstream/2.0.6/test/sputnik/sputnik.status +0 -318
  574. data/ext/v8/upstream/2.0.6/test/sputnik/testcfg.py +0 -112
  575. data/ext/v8/upstream/2.0.6/tools/js2c.pyc +0 -0
  576. data/ext/v8/upstream/2.0.6/tools/jsmin.pyc +0 -0
  577. data/ext/v8/upstream/2.0.6/tools/utils.pyc +0 -0
  578. data/spec/redjs/README.txt +0 -8
@@ -1,796 +0,0 @@
1
- // Copyright 2006-2008 the V8 project authors. All rights reserved.
2
-
3
- #include <stdlib.h>
4
-
5
- #include "v8.h"
6
-
7
- #include "execution.h"
8
- #include "factory.h"
9
- #include "macro-assembler.h"
10
- #include "global-handles.h"
11
- #include "cctest.h"
12
-
13
- using namespace v8::internal;
14
-
15
- static v8::Persistent<v8::Context> env;
16
-
17
- static void InitializeVM() {
18
- if (env.IsEmpty()) env = v8::Context::New();
19
- v8::HandleScope scope;
20
- env->Enter();
21
- }
22
-
23
-
24
- static void CheckMap(Map* map, int type, int instance_size) {
25
- CHECK(map->IsHeapObject());
26
- #ifdef DEBUG
27
- CHECK(Heap::Contains(map));
28
- #endif
29
- CHECK_EQ(Heap::meta_map(), map->map());
30
- CHECK_EQ(type, map->instance_type());
31
- CHECK_EQ(instance_size, map->instance_size());
32
- }
33
-
34
-
35
- TEST(HeapMaps) {
36
- InitializeVM();
37
- CheckMap(Heap::meta_map(), MAP_TYPE, Map::kSize);
38
- CheckMap(Heap::heap_number_map(), HEAP_NUMBER_TYPE, HeapNumber::kSize);
39
- CheckMap(Heap::fixed_array_map(), FIXED_ARRAY_TYPE, FixedArray::kHeaderSize);
40
- CheckMap(Heap::string_map(), STRING_TYPE, SeqTwoByteString::kAlignedSize);
41
- }
42
-
43
-
44
- static void CheckOddball(Object* obj, const char* string) {
45
- CHECK(obj->IsOddball());
46
- bool exc;
47
- Object* print_string = *Execution::ToString(Handle<Object>(obj), &exc);
48
- CHECK(String::cast(print_string)->IsEqualTo(CStrVector(string)));
49
- }
50
-
51
-
52
- static void CheckSmi(int value, const char* string) {
53
- bool exc;
54
- Object* print_string =
55
- *Execution::ToString(Handle<Object>(Smi::FromInt(value)), &exc);
56
- CHECK(String::cast(print_string)->IsEqualTo(CStrVector(string)));
57
- }
58
-
59
-
60
- static void CheckNumber(double value, const char* string) {
61
- Object* obj = Heap::NumberFromDouble(value);
62
- CHECK(obj->IsNumber());
63
- bool exc;
64
- Object* print_string = *Execution::ToString(Handle<Object>(obj), &exc);
65
- CHECK(String::cast(print_string)->IsEqualTo(CStrVector(string)));
66
- }
67
-
68
-
69
- static void CheckFindCodeObject() {
70
- // Test FindCodeObject
71
- #define __ assm.
72
-
73
- Assembler assm(NULL, 0);
74
-
75
- __ nop(); // supported on all architectures
76
-
77
- CodeDesc desc;
78
- assm.GetCode(&desc);
79
- Object* code = Heap::CreateCode(desc,
80
- NULL,
81
- Code::ComputeFlags(Code::STUB),
82
- Handle<Object>(Heap::undefined_value()));
83
- CHECK(code->IsCode());
84
-
85
- HeapObject* obj = HeapObject::cast(code);
86
- Address obj_addr = obj->address();
87
-
88
- for (int i = 0; i < obj->Size(); i += kPointerSize) {
89
- Object* found = Heap::FindCodeObject(obj_addr + i);
90
- CHECK_EQ(code, found);
91
- }
92
-
93
- Object* copy = Heap::CreateCode(desc,
94
- NULL,
95
- Code::ComputeFlags(Code::STUB),
96
- Handle<Object>(Heap::undefined_value()));
97
- CHECK(copy->IsCode());
98
- HeapObject* obj_copy = HeapObject::cast(copy);
99
- Object* not_right = Heap::FindCodeObject(obj_copy->address() +
100
- obj_copy->Size() / 2);
101
- CHECK(not_right != code);
102
- }
103
-
104
-
105
- TEST(HeapObjects) {
106
- InitializeVM();
107
-
108
- v8::HandleScope sc;
109
- Object* value = Heap::NumberFromDouble(1.000123);
110
- CHECK(value->IsHeapNumber());
111
- CHECK(value->IsNumber());
112
- CHECK_EQ(1.000123, value->Number());
113
-
114
- value = Heap::NumberFromDouble(1.0);
115
- CHECK(value->IsSmi());
116
- CHECK(value->IsNumber());
117
- CHECK_EQ(1.0, value->Number());
118
-
119
- value = Heap::NumberFromInt32(1024);
120
- CHECK(value->IsSmi());
121
- CHECK(value->IsNumber());
122
- CHECK_EQ(1024.0, value->Number());
123
-
124
- value = Heap::NumberFromInt32(Smi::kMinValue);
125
- CHECK(value->IsSmi());
126
- CHECK(value->IsNumber());
127
- CHECK_EQ(Smi::kMinValue, Smi::cast(value)->value());
128
-
129
- value = Heap::NumberFromInt32(Smi::kMaxValue);
130
- CHECK(value->IsSmi());
131
- CHECK(value->IsNumber());
132
- CHECK_EQ(Smi::kMaxValue, Smi::cast(value)->value());
133
-
134
- #ifndef V8_TARGET_ARCH_X64
135
- // TODO(lrn): We need a NumberFromIntptr function in order to test this.
136
- value = Heap::NumberFromInt32(Smi::kMinValue - 1);
137
- CHECK(value->IsHeapNumber());
138
- CHECK(value->IsNumber());
139
- CHECK_EQ(static_cast<double>(Smi::kMinValue - 1), value->Number());
140
- #endif
141
-
142
- value = Heap::NumberFromUint32(static_cast<uint32_t>(Smi::kMaxValue) + 1);
143
- CHECK(value->IsHeapNumber());
144
- CHECK(value->IsNumber());
145
- CHECK_EQ(static_cast<double>(static_cast<uint32_t>(Smi::kMaxValue) + 1),
146
- value->Number());
147
-
148
- // nan oddball checks
149
- CHECK(Heap::nan_value()->IsNumber());
150
- CHECK(isnan(Heap::nan_value()->Number()));
151
-
152
- Object* str = Heap::AllocateStringFromAscii(CStrVector("fisk hest "));
153
- if (!str->IsFailure()) {
154
- String* s = String::cast(str);
155
- CHECK(s->IsString());
156
- CHECK_EQ(10, s->length());
157
- } else {
158
- CHECK(false);
159
- }
160
-
161
- String* object_symbol = String::cast(Heap::Object_symbol());
162
- CHECK(Top::context()->global()->HasLocalProperty(object_symbol));
163
-
164
- // Check ToString for oddballs
165
- CheckOddball(Heap::true_value(), "true");
166
- CheckOddball(Heap::false_value(), "false");
167
- CheckOddball(Heap::null_value(), "null");
168
- CheckOddball(Heap::undefined_value(), "undefined");
169
-
170
- // Check ToString for Smis
171
- CheckSmi(0, "0");
172
- CheckSmi(42, "42");
173
- CheckSmi(-42, "-42");
174
-
175
- // Check ToString for Numbers
176
- CheckNumber(1.1, "1.1");
177
-
178
- CheckFindCodeObject();
179
- }
180
-
181
-
182
- TEST(Tagging) {
183
- InitializeVM();
184
- int request = 24;
185
- CHECK_EQ(request, static_cast<int>(OBJECT_SIZE_ALIGN(request)));
186
- CHECK(Smi::FromInt(42)->IsSmi());
187
- CHECK(Failure::RetryAfterGC(request, NEW_SPACE)->IsFailure());
188
- CHECK_EQ(request, Failure::RetryAfterGC(request, NEW_SPACE)->requested());
189
- CHECK_EQ(NEW_SPACE,
190
- Failure::RetryAfterGC(request, NEW_SPACE)->allocation_space());
191
- CHECK_EQ(OLD_POINTER_SPACE,
192
- Failure::RetryAfterGC(request,
193
- OLD_POINTER_SPACE)->allocation_space());
194
- CHECK(Failure::Exception()->IsFailure());
195
- CHECK(Smi::FromInt(Smi::kMinValue)->IsSmi());
196
- CHECK(Smi::FromInt(Smi::kMaxValue)->IsSmi());
197
- }
198
-
199
-
200
- TEST(GarbageCollection) {
201
- InitializeVM();
202
-
203
- v8::HandleScope sc;
204
- // check GC when heap is empty
205
- int free_bytes = Heap::MaxObjectSizeInPagedSpace();
206
- CHECK(Heap::CollectGarbage(free_bytes, NEW_SPACE));
207
-
208
- // allocate a function and keep it in global object's property
209
- String* func_name = String::cast(Heap::LookupAsciiSymbol("theFunction"));
210
- SharedFunctionInfo* function_share =
211
- SharedFunctionInfo::cast(Heap::AllocateSharedFunctionInfo(func_name));
212
- JSFunction* function =
213
- JSFunction::cast(Heap::AllocateFunction(*Top::function_map(),
214
- function_share,
215
- Heap::undefined_value()));
216
- Map* initial_map =
217
- Map::cast(Heap::AllocateMap(JS_OBJECT_TYPE, JSObject::kHeaderSize));
218
- function->set_initial_map(initial_map);
219
- Top::context()->global()->SetProperty(func_name, function, NONE);
220
-
221
- // allocate an object, but it is unrooted
222
- String* prop_name = String::cast(Heap::LookupAsciiSymbol("theSlot"));
223
- String* prop_namex = String::cast(Heap::LookupAsciiSymbol("theSlotx"));
224
- JSObject* obj = JSObject::cast(Heap::AllocateJSObject(function));
225
- obj->SetProperty(prop_name, Smi::FromInt(23), NONE);
226
- obj->SetProperty(prop_namex, Smi::FromInt(24), NONE);
227
-
228
- CHECK_EQ(Smi::FromInt(23), obj->GetProperty(prop_name));
229
- CHECK_EQ(Smi::FromInt(24), obj->GetProperty(prop_namex));
230
-
231
- CHECK(Heap::CollectGarbage(free_bytes, NEW_SPACE));
232
-
233
- // function should be alive, func_name might be invalid after GC
234
- func_name = String::cast(Heap::LookupAsciiSymbol("theFunction"));
235
- CHECK(Top::context()->global()->HasLocalProperty(func_name));
236
- // check function is retained
237
- Object* func_value = Top::context()->global()->GetProperty(func_name);
238
- CHECK(func_value->IsJSFunction());
239
- // old function pointer may not be valid
240
- function = JSFunction::cast(func_value);
241
-
242
- // allocate another object, make it reachable from global
243
- obj = JSObject::cast(Heap::AllocateJSObject(function));
244
- String* obj_name = String::cast(Heap::LookupAsciiSymbol("theObject"));
245
- Top::context()->global()->SetProperty(obj_name, obj, NONE);
246
- // set property
247
- prop_name = String::cast(Heap::LookupAsciiSymbol("theSlot"));
248
- obj->SetProperty(prop_name, Smi::FromInt(23), NONE);
249
-
250
- // after gc, it should survive
251
- CHECK(Heap::CollectGarbage(free_bytes, NEW_SPACE));
252
-
253
- obj_name = String::cast(Heap::LookupAsciiSymbol("theObject"));
254
- CHECK(Top::context()->global()->HasLocalProperty(obj_name));
255
- CHECK(Top::context()->global()->GetProperty(obj_name)->IsJSObject());
256
- obj = JSObject::cast(Top::context()->global()->GetProperty(obj_name));
257
- prop_name = String::cast(Heap::LookupAsciiSymbol("theSlot"));
258
- CHECK_EQ(Smi::FromInt(23), obj->GetProperty(prop_name));
259
- }
260
-
261
-
262
- static void VerifyStringAllocation(const char* string) {
263
- String* s = String::cast(Heap::AllocateStringFromUtf8(CStrVector(string)));
264
- CHECK_EQ(StrLength(string), s->length());
265
- for (int index = 0; index < s->length(); index++) {
266
- CHECK_EQ(static_cast<uint16_t>(string[index]), s->Get(index)); }
267
- }
268
-
269
-
270
- TEST(String) {
271
- InitializeVM();
272
-
273
- VerifyStringAllocation("a");
274
- VerifyStringAllocation("ab");
275
- VerifyStringAllocation("abc");
276
- VerifyStringAllocation("abcd");
277
- VerifyStringAllocation("fiskerdrengen er paa havet");
278
- }
279
-
280
-
281
- TEST(LocalHandles) {
282
- InitializeVM();
283
-
284
- v8::HandleScope scope;
285
- const char* name = "Kasper the spunky";
286
- Handle<String> string = Factory::NewStringFromAscii(CStrVector(name));
287
- CHECK_EQ(StrLength(name), string->length());
288
- }
289
-
290
-
291
- TEST(GlobalHandles) {
292
- InitializeVM();
293
-
294
- Object* i = Heap::AllocateStringFromAscii(CStrVector("fisk"));
295
- Object* u = Heap::AllocateHeapNumber(1.12344);
296
-
297
- Handle<Object> h1 = GlobalHandles::Create(i);
298
- Handle<Object> h2 = GlobalHandles::Create(u);
299
- Handle<Object> h3 = GlobalHandles::Create(i);
300
- Handle<Object> h4 = GlobalHandles::Create(u);
301
-
302
- // after gc, it should survive
303
- CHECK(Heap::CollectGarbage(0, NEW_SPACE));
304
-
305
- CHECK((*h1)->IsString());
306
- CHECK((*h2)->IsHeapNumber());
307
- CHECK((*h3)->IsString());
308
- CHECK((*h4)->IsHeapNumber());
309
-
310
- CHECK_EQ(*h3, *h1);
311
- GlobalHandles::Destroy(h1.location());
312
- GlobalHandles::Destroy(h3.location());
313
-
314
- CHECK_EQ(*h4, *h2);
315
- GlobalHandles::Destroy(h2.location());
316
- GlobalHandles::Destroy(h4.location());
317
- }
318
-
319
-
320
- static bool WeakPointerCleared = false;
321
-
322
- static void TestWeakGlobalHandleCallback(v8::Persistent<v8::Value> handle,
323
- void* id) {
324
- USE(handle);
325
- if (1234 == reinterpret_cast<intptr_t>(id)) WeakPointerCleared = true;
326
- }
327
-
328
-
329
- TEST(WeakGlobalHandlesScavenge) {
330
- InitializeVM();
331
-
332
- WeakPointerCleared = false;
333
-
334
- Object* i = Heap::AllocateStringFromAscii(CStrVector("fisk"));
335
- Object* u = Heap::AllocateHeapNumber(1.12344);
336
-
337
- Handle<Object> h1 = GlobalHandles::Create(i);
338
- Handle<Object> h2 = GlobalHandles::Create(u);
339
-
340
- GlobalHandles::MakeWeak(h2.location(),
341
- reinterpret_cast<void*>(1234),
342
- &TestWeakGlobalHandleCallback);
343
-
344
- // Scavenge treats weak pointers as normal roots.
345
- Heap::PerformScavenge();
346
-
347
- CHECK((*h1)->IsString());
348
- CHECK((*h2)->IsHeapNumber());
349
-
350
- CHECK(!WeakPointerCleared);
351
- CHECK(!GlobalHandles::IsNearDeath(h2.location()));
352
- CHECK(!GlobalHandles::IsNearDeath(h1.location()));
353
-
354
- GlobalHandles::Destroy(h1.location());
355
- GlobalHandles::Destroy(h2.location());
356
- }
357
-
358
-
359
- TEST(WeakGlobalHandlesMark) {
360
- InitializeVM();
361
-
362
- WeakPointerCleared = false;
363
-
364
- Object* i = Heap::AllocateStringFromAscii(CStrVector("fisk"));
365
- Object* u = Heap::AllocateHeapNumber(1.12344);
366
-
367
- Handle<Object> h1 = GlobalHandles::Create(i);
368
- Handle<Object> h2 = GlobalHandles::Create(u);
369
-
370
- CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
371
- CHECK(Heap::CollectGarbage(0, NEW_SPACE));
372
- // Make sure the object is promoted.
373
-
374
- GlobalHandles::MakeWeak(h2.location(),
375
- reinterpret_cast<void*>(1234),
376
- &TestWeakGlobalHandleCallback);
377
- CHECK(!GlobalHandles::IsNearDeath(h1.location()));
378
- CHECK(!GlobalHandles::IsNearDeath(h2.location()));
379
-
380
- CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
381
-
382
- CHECK((*h1)->IsString());
383
-
384
- CHECK(WeakPointerCleared);
385
- CHECK(!GlobalHandles::IsNearDeath(h1.location()));
386
- CHECK(GlobalHandles::IsNearDeath(h2.location()));
387
-
388
- GlobalHandles::Destroy(h1.location());
389
- GlobalHandles::Destroy(h2.location());
390
- }
391
-
392
- static void TestDeleteWeakGlobalHandleCallback(
393
- v8::Persistent<v8::Value> handle,
394
- void* id) {
395
- if (1234 == reinterpret_cast<intptr_t>(id)) WeakPointerCleared = true;
396
- handle.Dispose();
397
- }
398
-
399
- TEST(DeleteWeakGlobalHandle) {
400
- InitializeVM();
401
-
402
- WeakPointerCleared = false;
403
-
404
- Object* i = Heap::AllocateStringFromAscii(CStrVector("fisk"));
405
- Handle<Object> h = GlobalHandles::Create(i);
406
-
407
- GlobalHandles::MakeWeak(h.location(),
408
- reinterpret_cast<void*>(1234),
409
- &TestDeleteWeakGlobalHandleCallback);
410
-
411
- // Scanvenge does not recognize weak reference.
412
- Heap::PerformScavenge();
413
-
414
- CHECK(!WeakPointerCleared);
415
-
416
- // Mark-compact treats weak reference properly.
417
- CHECK(Heap::CollectGarbage(0, OLD_POINTER_SPACE));
418
-
419
- CHECK(WeakPointerCleared);
420
- }
421
-
422
- static const char* not_so_random_string_table[] = {
423
- "abstract",
424
- "boolean",
425
- "break",
426
- "byte",
427
- "case",
428
- "catch",
429
- "char",
430
- "class",
431
- "const",
432
- "continue",
433
- "debugger",
434
- "default",
435
- "delete",
436
- "do",
437
- "double",
438
- "else",
439
- "enum",
440
- "export",
441
- "extends",
442
- "false",
443
- "final",
444
- "finally",
445
- "float",
446
- "for",
447
- "function",
448
- "goto",
449
- "if",
450
- "implements",
451
- "import",
452
- "in",
453
- "instanceof",
454
- "int",
455
- "interface",
456
- "long",
457
- "native",
458
- "new",
459
- "null",
460
- "package",
461
- "private",
462
- "protected",
463
- "public",
464
- "return",
465
- "short",
466
- "static",
467
- "super",
468
- "switch",
469
- "synchronized",
470
- "this",
471
- "throw",
472
- "throws",
473
- "transient",
474
- "true",
475
- "try",
476
- "typeof",
477
- "var",
478
- "void",
479
- "volatile",
480
- "while",
481
- "with",
482
- 0
483
- };
484
-
485
-
486
- static void CheckSymbols(const char** strings) {
487
- for (const char* string = *strings; *strings != 0; string = *strings++) {
488
- Object* a = Heap::LookupAsciiSymbol(string);
489
- // LookupAsciiSymbol may return a failure if a GC is needed.
490
- if (a->IsFailure()) continue;
491
- CHECK(a->IsSymbol());
492
- Object* b = Heap::LookupAsciiSymbol(string);
493
- if (b->IsFailure()) continue;
494
- CHECK_EQ(b, a);
495
- CHECK(String::cast(b)->IsEqualTo(CStrVector(string)));
496
- }
497
- }
498
-
499
-
500
- TEST(SymbolTable) {
501
- InitializeVM();
502
-
503
- CheckSymbols(not_so_random_string_table);
504
- CheckSymbols(not_so_random_string_table);
505
- }
506
-
507
-
508
- TEST(FunctionAllocation) {
509
- InitializeVM();
510
-
511
- v8::HandleScope sc;
512
- String* name = String::cast(Heap::LookupAsciiSymbol("theFunction"));
513
- SharedFunctionInfo* function_share =
514
- SharedFunctionInfo::cast(Heap::AllocateSharedFunctionInfo(name));
515
- JSFunction* function =
516
- JSFunction::cast(Heap::AllocateFunction(*Top::function_map(),
517
- function_share,
518
- Heap::undefined_value()));
519
- Map* initial_map =
520
- Map::cast(Heap::AllocateMap(JS_OBJECT_TYPE, JSObject::kHeaderSize));
521
- function->set_initial_map(initial_map);
522
-
523
- String* prop_name = String::cast(Heap::LookupAsciiSymbol("theSlot"));
524
- JSObject* obj = JSObject::cast(Heap::AllocateJSObject(function));
525
- obj->SetProperty(prop_name, Smi::FromInt(23), NONE);
526
- CHECK_EQ(Smi::FromInt(23), obj->GetProperty(prop_name));
527
- // Check that we can add properties to function objects.
528
- function->SetProperty(prop_name, Smi::FromInt(24), NONE);
529
- CHECK_EQ(Smi::FromInt(24), function->GetProperty(prop_name));
530
- }
531
-
532
-
533
- TEST(ObjectProperties) {
534
- InitializeVM();
535
-
536
- v8::HandleScope sc;
537
- JSFunction* constructor =
538
- JSFunction::cast(
539
- Top::context()->global()->GetProperty(String::cast(
540
- Heap::Object_symbol())));
541
- JSObject* obj = JSObject::cast(Heap::AllocateJSObject(constructor));
542
- String* first = String::cast(Heap::LookupAsciiSymbol("first"));
543
- String* second = String::cast(Heap::LookupAsciiSymbol("second"));
544
-
545
- // check for empty
546
- CHECK(!obj->HasLocalProperty(first));
547
-
548
- // add first
549
- obj->SetProperty(first, Smi::FromInt(1), NONE);
550
- CHECK(obj->HasLocalProperty(first));
551
-
552
- // delete first
553
- CHECK(obj->DeleteProperty(first, JSObject::NORMAL_DELETION));
554
- CHECK(!obj->HasLocalProperty(first));
555
-
556
- // add first and then second
557
- obj->SetProperty(first, Smi::FromInt(1), NONE);
558
- obj->SetProperty(second, Smi::FromInt(2), NONE);
559
- CHECK(obj->HasLocalProperty(first));
560
- CHECK(obj->HasLocalProperty(second));
561
-
562
- // delete first and then second
563
- CHECK(obj->DeleteProperty(first, JSObject::NORMAL_DELETION));
564
- CHECK(obj->HasLocalProperty(second));
565
- CHECK(obj->DeleteProperty(second, JSObject::NORMAL_DELETION));
566
- CHECK(!obj->HasLocalProperty(first));
567
- CHECK(!obj->HasLocalProperty(second));
568
-
569
- // add first and then second
570
- obj->SetProperty(first, Smi::FromInt(1), NONE);
571
- obj->SetProperty(second, Smi::FromInt(2), NONE);
572
- CHECK(obj->HasLocalProperty(first));
573
- CHECK(obj->HasLocalProperty(second));
574
-
575
- // delete second and then first
576
- CHECK(obj->DeleteProperty(second, JSObject::NORMAL_DELETION));
577
- CHECK(obj->HasLocalProperty(first));
578
- CHECK(obj->DeleteProperty(first, JSObject::NORMAL_DELETION));
579
- CHECK(!obj->HasLocalProperty(first));
580
- CHECK(!obj->HasLocalProperty(second));
581
-
582
- // check string and symbol match
583
- static const char* string1 = "fisk";
584
- String* s1 =
585
- String::cast(Heap::AllocateStringFromAscii(CStrVector(string1)));
586
- obj->SetProperty(s1, Smi::FromInt(1), NONE);
587
- CHECK(obj->HasLocalProperty(String::cast(Heap::LookupAsciiSymbol(string1))));
588
-
589
- // check symbol and string match
590
- static const char* string2 = "fugl";
591
- String* s2 = String::cast(Heap::LookupAsciiSymbol(string2));
592
- obj->SetProperty(s2, Smi::FromInt(1), NONE);
593
- CHECK(obj->HasLocalProperty(
594
- String::cast(Heap::AllocateStringFromAscii(CStrVector(string2)))));
595
- }
596
-
597
-
598
- TEST(JSObjectMaps) {
599
- InitializeVM();
600
-
601
- v8::HandleScope sc;
602
- String* name = String::cast(Heap::LookupAsciiSymbol("theFunction"));
603
- SharedFunctionInfo* function_share =
604
- SharedFunctionInfo::cast(Heap::AllocateSharedFunctionInfo(name));
605
- JSFunction* function =
606
- JSFunction::cast(Heap::AllocateFunction(*Top::function_map(),
607
- function_share,
608
- Heap::undefined_value()));
609
- Map* initial_map =
610
- Map::cast(Heap::AllocateMap(JS_OBJECT_TYPE, JSObject::kHeaderSize));
611
- function->set_initial_map(initial_map);
612
- String* prop_name = String::cast(Heap::LookupAsciiSymbol("theSlot"));
613
- JSObject* obj = JSObject::cast(Heap::AllocateJSObject(function));
614
-
615
- // Set a propery
616
- obj->SetProperty(prop_name, Smi::FromInt(23), NONE);
617
- CHECK_EQ(Smi::FromInt(23), obj->GetProperty(prop_name));
618
-
619
- // Check the map has changed
620
- CHECK(initial_map != obj->map());
621
- }
622
-
623
-
624
- TEST(JSArray) {
625
- InitializeVM();
626
-
627
- v8::HandleScope sc;
628
- String* name = String::cast(Heap::LookupAsciiSymbol("Array"));
629
- JSFunction* function =
630
- JSFunction::cast(Top::context()->global()->GetProperty(name));
631
-
632
- // Allocate the object.
633
- JSArray* array = JSArray::cast(Heap::AllocateJSObject(function));
634
- array->Initialize(0);
635
-
636
- // Set array length to 0.
637
- array->SetElementsLength(Smi::FromInt(0));
638
- CHECK_EQ(Smi::FromInt(0), array->length());
639
- CHECK(array->HasFastElements()); // Must be in fast mode.
640
-
641
- // array[length] = name.
642
- array->SetElement(0, name);
643
- CHECK_EQ(Smi::FromInt(1), array->length());
644
- CHECK_EQ(array->GetElement(0), name);
645
-
646
- // Set array length with larger than smi value.
647
- Object* length =
648
- Heap::NumberFromUint32(static_cast<uint32_t>(Smi::kMaxValue) + 1);
649
- array->SetElementsLength(length);
650
-
651
- uint32_t int_length = 0;
652
- CHECK(Array::IndexFromObject(length, &int_length));
653
- CHECK_EQ(length, array->length());
654
- CHECK(array->HasDictionaryElements()); // Must be in slow mode.
655
-
656
- // array[length] = name.
657
- array->SetElement(int_length, name);
658
- uint32_t new_int_length = 0;
659
- CHECK(Array::IndexFromObject(array->length(), &new_int_length));
660
- CHECK_EQ(static_cast<double>(int_length), new_int_length - 1);
661
- CHECK_EQ(array->GetElement(int_length), name);
662
- CHECK_EQ(array->GetElement(0), name);
663
- }
664
-
665
-
666
- TEST(JSObjectCopy) {
667
- InitializeVM();
668
-
669
- v8::HandleScope sc;
670
- String* name = String::cast(Heap::Object_symbol());
671
- JSFunction* constructor =
672
- JSFunction::cast(Top::context()->global()->GetProperty(name));
673
- JSObject* obj = JSObject::cast(Heap::AllocateJSObject(constructor));
674
- String* first = String::cast(Heap::LookupAsciiSymbol("first"));
675
- String* second = String::cast(Heap::LookupAsciiSymbol("second"));
676
-
677
- obj->SetProperty(first, Smi::FromInt(1), NONE);
678
- obj->SetProperty(second, Smi::FromInt(2), NONE);
679
-
680
- obj->SetElement(0, first);
681
- obj->SetElement(1, second);
682
-
683
- // Make the clone.
684
- JSObject* clone = JSObject::cast(Heap::CopyJSObject(obj));
685
- CHECK(clone != obj);
686
-
687
- CHECK_EQ(obj->GetElement(0), clone->GetElement(0));
688
- CHECK_EQ(obj->GetElement(1), clone->GetElement(1));
689
-
690
- CHECK_EQ(obj->GetProperty(first), clone->GetProperty(first));
691
- CHECK_EQ(obj->GetProperty(second), clone->GetProperty(second));
692
-
693
- // Flip the values.
694
- clone->SetProperty(first, Smi::FromInt(2), NONE);
695
- clone->SetProperty(second, Smi::FromInt(1), NONE);
696
-
697
- clone->SetElement(0, second);
698
- clone->SetElement(1, first);
699
-
700
- CHECK_EQ(obj->GetElement(1), clone->GetElement(0));
701
- CHECK_EQ(obj->GetElement(0), clone->GetElement(1));
702
-
703
- CHECK_EQ(obj->GetProperty(second), clone->GetProperty(first));
704
- CHECK_EQ(obj->GetProperty(first), clone->GetProperty(second));
705
- }
706
-
707
-
708
- TEST(StringAllocation) {
709
- InitializeVM();
710
-
711
-
712
- const unsigned char chars[] = { 0xe5, 0xa4, 0xa7 };
713
- for (int length = 0; length < 100; length++) {
714
- v8::HandleScope scope;
715
- char* non_ascii = NewArray<char>(3 * length + 1);
716
- char* ascii = NewArray<char>(length + 1);
717
- non_ascii[3 * length] = 0;
718
- ascii[length] = 0;
719
- for (int i = 0; i < length; i++) {
720
- ascii[i] = 'a';
721
- non_ascii[3 * i] = chars[0];
722
- non_ascii[3 * i + 1] = chars[1];
723
- non_ascii[3 * i + 2] = chars[2];
724
- }
725
- Handle<String> non_ascii_sym =
726
- Factory::LookupSymbol(Vector<const char>(non_ascii, 3 * length));
727
- CHECK_EQ(length, non_ascii_sym->length());
728
- Handle<String> ascii_sym =
729
- Factory::LookupSymbol(Vector<const char>(ascii, length));
730
- CHECK_EQ(length, ascii_sym->length());
731
- Handle<String> non_ascii_str =
732
- Factory::NewStringFromUtf8(Vector<const char>(non_ascii, 3 * length));
733
- non_ascii_str->Hash();
734
- CHECK_EQ(length, non_ascii_str->length());
735
- Handle<String> ascii_str =
736
- Factory::NewStringFromUtf8(Vector<const char>(ascii, length));
737
- ascii_str->Hash();
738
- CHECK_EQ(length, ascii_str->length());
739
- DeleteArray(non_ascii);
740
- DeleteArray(ascii);
741
- }
742
- }
743
-
744
-
745
- static int ObjectsFoundInHeap(Handle<Object> objs[], int size) {
746
- // Count the number of objects found in the heap.
747
- int found_count = 0;
748
- HeapIterator iterator;
749
- while (iterator.has_next()) {
750
- HeapObject* obj = iterator.next();
751
- CHECK(obj != NULL);
752
- for (int i = 0; i < size; i++) {
753
- if (*objs[i] == obj) {
754
- found_count++;
755
- }
756
- }
757
- }
758
- CHECK(!iterator.has_next());
759
- return found_count;
760
- }
761
-
762
-
763
- TEST(Iteration) {
764
- InitializeVM();
765
- v8::HandleScope scope;
766
-
767
- // Array of objects to scan haep for.
768
- const int objs_count = 6;
769
- Handle<Object> objs[objs_count];
770
- int next_objs_index = 0;
771
-
772
- // Allocate a JS array to OLD_POINTER_SPACE and NEW_SPACE
773
- objs[next_objs_index++] = Factory::NewJSArray(10);
774
- objs[next_objs_index++] = Factory::NewJSArray(10, TENURED);
775
-
776
- // Allocate a small string to OLD_DATA_SPACE and NEW_SPACE
777
- objs[next_objs_index++] =
778
- Factory::NewStringFromAscii(CStrVector("abcdefghij"));
779
- objs[next_objs_index++] =
780
- Factory::NewStringFromAscii(CStrVector("abcdefghij"), TENURED);
781
-
782
- // Allocate a large string (for large object space).
783
- int large_size = Heap::MaxObjectSizeInPagedSpace() + 1;
784
- char* str = new char[large_size];
785
- for (int i = 0; i < large_size - 1; ++i) str[i] = 'a';
786
- str[large_size - 1] = '\0';
787
- objs[next_objs_index++] =
788
- Factory::NewStringFromAscii(CStrVector(str), TENURED);
789
- delete[] str;
790
-
791
- // Add a Map object to look for.
792
- objs[next_objs_index++] = Handle<Map>(HeapObject::cast(*objs[0])->map());
793
-
794
- CHECK_EQ(objs_count, next_objs_index);
795
- CHECK_EQ(objs_count, ObjectsFoundInHeap(objs, objs_count));
796
- }