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,935 +0,0 @@
1
- // The ray tracer code in this file is written by Adam Burmister. It
2
- // is available in its original form from:
3
- //
4
- // http://labs.flog.nz.co/raytracer/
5
- //
6
- // It has been modified slightly by Google to work as a standalone
7
- // benchmark, but the all the computational code remains
8
- // untouched. This file also contains a copy of parts of the Prototype
9
- // JavaScript framework which is used by the ray tracer.
10
-
11
- var RayTrace = new BenchmarkSuite('RayTrace', 932666, [
12
- new Benchmark('RayTrace', renderScene)
13
- ]);
14
-
15
-
16
- // Variable used to hold a number that can be used to verify that
17
- // the scene was ray traced correctly.
18
- var checkNumber;
19
-
20
-
21
- // ------------------------------------------------------------------------
22
- // ------------------------------------------------------------------------
23
-
24
- // The following is a copy of parts of the Prototype JavaScript library:
25
-
26
- // Prototype JavaScript framework, version 1.5.0
27
- // (c) 2005-2007 Sam Stephenson
28
- //
29
- // Prototype is freely distributable under the terms of an MIT-style license.
30
- // For details, see the Prototype web site: http://prototype.conio.net/
31
-
32
-
33
- var Class = {
34
- create: function() {
35
- return function() {
36
- this.initialize.apply(this, arguments);
37
- }
38
- }
39
- };
40
-
41
-
42
- Object.extend = function(destination, source) {
43
- for (var property in source) {
44
- destination[property] = source[property];
45
- }
46
- return destination;
47
- };
48
-
49
-
50
- // ------------------------------------------------------------------------
51
- // ------------------------------------------------------------------------
52
-
53
- // The rest of this file is the actual ray tracer written by Adam
54
- // Burmister. It's a concatenation of the following files:
55
- //
56
- // flog/color.js
57
- // flog/light.js
58
- // flog/vector.js
59
- // flog/ray.js
60
- // flog/scene.js
61
- // flog/material/basematerial.js
62
- // flog/material/solid.js
63
- // flog/material/chessboard.js
64
- // flog/shape/baseshape.js
65
- // flog/shape/sphere.js
66
- // flog/shape/plane.js
67
- // flog/intersectioninfo.js
68
- // flog/camera.js
69
- // flog/background.js
70
- // flog/engine.js
71
-
72
-
73
- /* Fake a Flog.* namespace */
74
- if(typeof(Flog) == 'undefined') var Flog = {};
75
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
76
-
77
- Flog.RayTracer.Color = Class.create();
78
-
79
- Flog.RayTracer.Color.prototype = {
80
- red : 0.0,
81
- green : 0.0,
82
- blue : 0.0,
83
-
84
- initialize : function(r, g, b) {
85
- if(!r) r = 0.0;
86
- if(!g) g = 0.0;
87
- if(!b) b = 0.0;
88
-
89
- this.red = r;
90
- this.green = g;
91
- this.blue = b;
92
- },
93
-
94
- add : function(c1, c2){
95
- var result = new Flog.RayTracer.Color(0,0,0);
96
-
97
- result.red = c1.red + c2.red;
98
- result.green = c1.green + c2.green;
99
- result.blue = c1.blue + c2.blue;
100
-
101
- return result;
102
- },
103
-
104
- addScalar: function(c1, s){
105
- var result = new Flog.RayTracer.Color(0,0,0);
106
-
107
- result.red = c1.red + s;
108
- result.green = c1.green + s;
109
- result.blue = c1.blue + s;
110
-
111
- result.limit();
112
-
113
- return result;
114
- },
115
-
116
- subtract: function(c1, c2){
117
- var result = new Flog.RayTracer.Color(0,0,0);
118
-
119
- result.red = c1.red - c2.red;
120
- result.green = c1.green - c2.green;
121
- result.blue = c1.blue - c2.blue;
122
-
123
- return result;
124
- },
125
-
126
- multiply : function(c1, c2) {
127
- var result = new Flog.RayTracer.Color(0,0,0);
128
-
129
- result.red = c1.red * c2.red;
130
- result.green = c1.green * c2.green;
131
- result.blue = c1.blue * c2.blue;
132
-
133
- return result;
134
- },
135
-
136
- multiplyScalar : function(c1, f) {
137
- var result = new Flog.RayTracer.Color(0,0,0);
138
-
139
- result.red = c1.red * f;
140
- result.green = c1.green * f;
141
- result.blue = c1.blue * f;
142
-
143
- return result;
144
- },
145
-
146
- divideFactor : function(c1, f) {
147
- var result = new Flog.RayTracer.Color(0,0,0);
148
-
149
- result.red = c1.red / f;
150
- result.green = c1.green / f;
151
- result.blue = c1.blue / f;
152
-
153
- return result;
154
- },
155
-
156
- limit: function(){
157
- this.red = (this.red > 0.0) ? ( (this.red > 1.0) ? 1.0 : this.red ) : 0.0;
158
- this.green = (this.green > 0.0) ? ( (this.green > 1.0) ? 1.0 : this.green ) : 0.0;
159
- this.blue = (this.blue > 0.0) ? ( (this.blue > 1.0) ? 1.0 : this.blue ) : 0.0;
160
- },
161
-
162
- distance : function(color) {
163
- var d = Math.abs(this.red - color.red) + Math.abs(this.green - color.green) + Math.abs(this.blue - color.blue);
164
- return d;
165
- },
166
-
167
- blend: function(c1, c2, w){
168
- var result = new Flog.RayTracer.Color(0,0,0);
169
- result = Flog.RayTracer.Color.prototype.add(
170
- Flog.RayTracer.Color.prototype.multiplyScalar(c1, 1 - w),
171
- Flog.RayTracer.Color.prototype.multiplyScalar(c2, w)
172
- );
173
- return result;
174
- },
175
-
176
- brightness : function() {
177
- var r = Math.floor(this.red*255);
178
- var g = Math.floor(this.green*255);
179
- var b = Math.floor(this.blue*255);
180
- return (r * 77 + g * 150 + b * 29) >> 8;
181
- },
182
-
183
- toString : function () {
184
- var r = Math.floor(this.red*255);
185
- var g = Math.floor(this.green*255);
186
- var b = Math.floor(this.blue*255);
187
-
188
- return "rgb("+ r +","+ g +","+ b +")";
189
- }
190
- }
191
- /* Fake a Flog.* namespace */
192
- if(typeof(Flog) == 'undefined') var Flog = {};
193
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
194
-
195
- Flog.RayTracer.Light = Class.create();
196
-
197
- Flog.RayTracer.Light.prototype = {
198
- position: null,
199
- color: null,
200
- intensity: 10.0,
201
-
202
- initialize : function(pos, color, intensity) {
203
- this.position = pos;
204
- this.color = color;
205
- this.intensity = (intensity ? intensity : 10.0);
206
- },
207
-
208
- getIntensity: function(distance){
209
- if(distance >= intensity) return 0;
210
-
211
- return Math.pow((intensity - distance) / strength, 0.2);
212
- },
213
-
214
- toString : function () {
215
- return 'Light [' + this.position.x + ',' + this.position.y + ',' + this.position.z + ']';
216
- }
217
- }
218
- /* Fake a Flog.* namespace */
219
- if(typeof(Flog) == 'undefined') var Flog = {};
220
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
221
-
222
- Flog.RayTracer.Vector = Class.create();
223
-
224
- Flog.RayTracer.Vector.prototype = {
225
- x : 0.0,
226
- y : 0.0,
227
- z : 0.0,
228
-
229
- initialize : function(x, y, z) {
230
- this.x = (x ? x : 0);
231
- this.y = (y ? y : 0);
232
- this.z = (z ? z : 0);
233
- },
234
-
235
- copy: function(vector){
236
- this.x = vector.x;
237
- this.y = vector.y;
238
- this.z = vector.z;
239
- },
240
-
241
- normalize : function() {
242
- var m = this.magnitude();
243
- return new Flog.RayTracer.Vector(this.x / m, this.y / m, this.z / m);
244
- },
245
-
246
- magnitude : function() {
247
- return Math.sqrt((this.x * this.x) + (this.y * this.y) + (this.z * this.z));
248
- },
249
-
250
- cross : function(w) {
251
- return new Flog.RayTracer.Vector(
252
- -this.z * w.y + this.y * w.z,
253
- this.z * w.x - this.x * w.z,
254
- -this.y * w.x + this.x * w.y);
255
- },
256
-
257
- dot : function(w) {
258
- return this.x * w.x + this.y * w.y + this.z * w.z;
259
- },
260
-
261
- add : function(v, w) {
262
- return new Flog.RayTracer.Vector(w.x + v.x, w.y + v.y, w.z + v.z);
263
- },
264
-
265
- subtract : function(v, w) {
266
- if(!w || !v) throw 'Vectors must be defined [' + v + ',' + w + ']';
267
- return new Flog.RayTracer.Vector(v.x - w.x, v.y - w.y, v.z - w.z);
268
- },
269
-
270
- multiplyVector : function(v, w) {
271
- return new Flog.RayTracer.Vector(v.x * w.x, v.y * w.y, v.z * w.z);
272
- },
273
-
274
- multiplyScalar : function(v, w) {
275
- return new Flog.RayTracer.Vector(v.x * w, v.y * w, v.z * w);
276
- },
277
-
278
- toString : function () {
279
- return 'Vector [' + this.x + ',' + this.y + ',' + this.z + ']';
280
- }
281
- }
282
- /* Fake a Flog.* namespace */
283
- if(typeof(Flog) == 'undefined') var Flog = {};
284
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
285
-
286
- Flog.RayTracer.Ray = Class.create();
287
-
288
- Flog.RayTracer.Ray.prototype = {
289
- position : null,
290
- direction : null,
291
- initialize : function(pos, dir) {
292
- this.position = pos;
293
- this.direction = dir;
294
- },
295
-
296
- toString : function () {
297
- return 'Ray [' + this.position + ',' + this.direction + ']';
298
- }
299
- }
300
- /* Fake a Flog.* namespace */
301
- if(typeof(Flog) == 'undefined') var Flog = {};
302
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
303
-
304
- Flog.RayTracer.Scene = Class.create();
305
-
306
- Flog.RayTracer.Scene.prototype = {
307
- camera : null,
308
- shapes : [],
309
- lights : [],
310
- background : null,
311
-
312
- initialize : function() {
313
- this.camera = new Flog.RayTracer.Camera(
314
- new Flog.RayTracer.Vector(0,0,-5),
315
- new Flog.RayTracer.Vector(0,0,1),
316
- new Flog.RayTracer.Vector(0,1,0)
317
- );
318
- this.shapes = new Array();
319
- this.lights = new Array();
320
- this.background = new Flog.RayTracer.Background(new Flog.RayTracer.Color(0,0,0.5), 0.2);
321
- }
322
- }
323
- /* Fake a Flog.* namespace */
324
- if(typeof(Flog) == 'undefined') var Flog = {};
325
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
326
- if(typeof(Flog.RayTracer.Material) == 'undefined') Flog.RayTracer.Material = {};
327
-
328
- Flog.RayTracer.Material.BaseMaterial = Class.create();
329
-
330
- Flog.RayTracer.Material.BaseMaterial.prototype = {
331
-
332
- gloss: 2.0, // [0...infinity] 0 = matt
333
- transparency: 0.0, // 0=opaque
334
- reflection: 0.0, // [0...infinity] 0 = no reflection
335
- refraction: 0.50,
336
- hasTexture: false,
337
-
338
- initialize : function() {
339
-
340
- },
341
-
342
- getColor: function(u, v){
343
-
344
- },
345
-
346
- wrapUp: function(t){
347
- t = t % 2.0;
348
- if(t < -1) t += 2.0;
349
- if(t >= 1) t -= 2.0;
350
- return t;
351
- },
352
-
353
- toString : function () {
354
- return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
355
- }
356
- }
357
- /* Fake a Flog.* namespace */
358
- if(typeof(Flog) == 'undefined') var Flog = {};
359
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
360
-
361
- Flog.RayTracer.Material.Solid = Class.create();
362
-
363
- Flog.RayTracer.Material.Solid.prototype = Object.extend(
364
- new Flog.RayTracer.Material.BaseMaterial(), {
365
- initialize : function(color, reflection, refraction, transparency, gloss) {
366
- this.color = color;
367
- this.reflection = reflection;
368
- this.transparency = transparency;
369
- this.gloss = gloss;
370
- this.hasTexture = false;
371
- },
372
-
373
- getColor: function(u, v){
374
- return this.color;
375
- },
376
-
377
- toString : function () {
378
- return 'SolidMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
379
- }
380
- }
381
- );
382
- /* Fake a Flog.* namespace */
383
- if(typeof(Flog) == 'undefined') var Flog = {};
384
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
385
-
386
- Flog.RayTracer.Material.Chessboard = Class.create();
387
-
388
- Flog.RayTracer.Material.Chessboard.prototype = Object.extend(
389
- new Flog.RayTracer.Material.BaseMaterial(), {
390
- colorEven: null,
391
- colorOdd: null,
392
- density: 0.5,
393
-
394
- initialize : function(colorEven, colorOdd, reflection, transparency, gloss, density) {
395
- this.colorEven = colorEven;
396
- this.colorOdd = colorOdd;
397
- this.reflection = reflection;
398
- this.transparency = transparency;
399
- this.gloss = gloss;
400
- this.density = density;
401
- this.hasTexture = true;
402
- },
403
-
404
- getColor: function(u, v){
405
- var t = this.wrapUp(u * this.density) * this.wrapUp(v * this.density);
406
-
407
- if(t < 0.0)
408
- return this.colorEven;
409
- else
410
- return this.colorOdd;
411
- },
412
-
413
- toString : function () {
414
- return 'ChessMaterial [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
415
- }
416
- }
417
- );
418
- /* Fake a Flog.* namespace */
419
- if(typeof(Flog) == 'undefined') var Flog = {};
420
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
421
- if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
422
-
423
- Flog.RayTracer.Shape.BaseShape = Class.create();
424
-
425
- Flog.RayTracer.Shape.BaseShape.prototype = {
426
- position: null,
427
- material: null,
428
-
429
- initialize : function() {
430
- this.position = new Vector(0,0,0);
431
- this.material = new Flog.RayTracer.Material.SolidMaterial(
432
- new Flog.RayTracer.Color(1,0,1),
433
- 0,
434
- 0,
435
- 0
436
- );
437
- },
438
-
439
- toString : function () {
440
- return 'Material [gloss=' + this.gloss + ', transparency=' + this.transparency + ', hasTexture=' + this.hasTexture +']';
441
- }
442
- }
443
- /* Fake a Flog.* namespace */
444
- if(typeof(Flog) == 'undefined') var Flog = {};
445
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
446
- if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
447
-
448
- Flog.RayTracer.Shape.Sphere = Class.create();
449
-
450
- Flog.RayTracer.Shape.Sphere.prototype = {
451
- initialize : function(pos, radius, material) {
452
- this.radius = radius;
453
- this.position = pos;
454
- this.material = material;
455
- },
456
-
457
- intersect: function(ray){
458
- var info = new Flog.RayTracer.IntersectionInfo();
459
- info.shape = this;
460
-
461
- var dst = Flog.RayTracer.Vector.prototype.subtract(ray.position, this.position);
462
-
463
- var B = dst.dot(ray.direction);
464
- var C = dst.dot(dst) - (this.radius * this.radius);
465
- var D = (B * B) - C;
466
-
467
- if(D > 0){ // intersection!
468
- info.isHit = true;
469
- info.distance = (-B) - Math.sqrt(D);
470
- info.position = Flog.RayTracer.Vector.prototype.add(
471
- ray.position,
472
- Flog.RayTracer.Vector.prototype.multiplyScalar(
473
- ray.direction,
474
- info.distance
475
- )
476
- );
477
- info.normal = Flog.RayTracer.Vector.prototype.subtract(
478
- info.position,
479
- this.position
480
- ).normalize();
481
-
482
- info.color = this.material.getColor(0,0);
483
- } else {
484
- info.isHit = false;
485
- }
486
- return info;
487
- },
488
-
489
- toString : function () {
490
- return 'Sphere [position=' + this.position + ', radius=' + this.radius + ']';
491
- }
492
- }
493
- /* Fake a Flog.* namespace */
494
- if(typeof(Flog) == 'undefined') var Flog = {};
495
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
496
- if(typeof(Flog.RayTracer.Shape) == 'undefined') Flog.RayTracer.Shape = {};
497
-
498
- Flog.RayTracer.Shape.Plane = Class.create();
499
-
500
- Flog.RayTracer.Shape.Plane.prototype = {
501
- d: 0.0,
502
-
503
- initialize : function(pos, d, material) {
504
- this.position = pos;
505
- this.d = d;
506
- this.material = material;
507
- },
508
-
509
- intersect: function(ray){
510
- var info = new Flog.RayTracer.IntersectionInfo();
511
-
512
- var Vd = this.position.dot(ray.direction);
513
- if(Vd == 0) return info; // no intersection
514
-
515
- var t = -(this.position.dot(ray.position) + this.d) / Vd;
516
- if(t <= 0) return info;
517
-
518
- info.shape = this;
519
- info.isHit = true;
520
- info.position = Flog.RayTracer.Vector.prototype.add(
521
- ray.position,
522
- Flog.RayTracer.Vector.prototype.multiplyScalar(
523
- ray.direction,
524
- t
525
- )
526
- );
527
- info.normal = this.position;
528
- info.distance = t;
529
-
530
- if(this.material.hasTexture){
531
- var vU = new Flog.RayTracer.Vector(this.position.y, this.position.z, -this.position.x);
532
- var vV = vU.cross(this.position);
533
- var u = info.position.dot(vU);
534
- var v = info.position.dot(vV);
535
- info.color = this.material.getColor(u,v);
536
- } else {
537
- info.color = this.material.getColor(0,0);
538
- }
539
-
540
- return info;
541
- },
542
-
543
- toString : function () {
544
- return 'Plane [' + this.position + ', d=' + this.d + ']';
545
- }
546
- }
547
- /* Fake a Flog.* namespace */
548
- if(typeof(Flog) == 'undefined') var Flog = {};
549
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
550
-
551
- Flog.RayTracer.IntersectionInfo = Class.create();
552
-
553
- Flog.RayTracer.IntersectionInfo.prototype = {
554
- isHit: false,
555
- hitCount: 0,
556
- shape: null,
557
- position: null,
558
- normal: null,
559
- color: null,
560
- distance: null,
561
-
562
- initialize : function() {
563
- this.color = new Flog.RayTracer.Color(0,0,0);
564
- },
565
-
566
- toString : function () {
567
- return 'Intersection [' + this.position + ']';
568
- }
569
- }
570
- /* Fake a Flog.* namespace */
571
- if(typeof(Flog) == 'undefined') var Flog = {};
572
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
573
-
574
- Flog.RayTracer.Camera = Class.create();
575
-
576
- Flog.RayTracer.Camera.prototype = {
577
- position: null,
578
- lookAt: null,
579
- equator: null,
580
- up: null,
581
- screen: null,
582
-
583
- initialize : function(pos, lookAt, up) {
584
- this.position = pos;
585
- this.lookAt = lookAt;
586
- this.up = up;
587
- this.equator = lookAt.normalize().cross(this.up);
588
- this.screen = Flog.RayTracer.Vector.prototype.add(this.position, this.lookAt);
589
- },
590
-
591
- getRay: function(vx, vy){
592
- var pos = Flog.RayTracer.Vector.prototype.subtract(
593
- this.screen,
594
- Flog.RayTracer.Vector.prototype.subtract(
595
- Flog.RayTracer.Vector.prototype.multiplyScalar(this.equator, vx),
596
- Flog.RayTracer.Vector.prototype.multiplyScalar(this.up, vy)
597
- )
598
- );
599
- pos.y = pos.y * -1;
600
- var dir = Flog.RayTracer.Vector.prototype.subtract(
601
- pos,
602
- this.position
603
- );
604
-
605
- var ray = new Flog.RayTracer.Ray(pos, dir.normalize());
606
-
607
- return ray;
608
- },
609
-
610
- toString : function () {
611
- return 'Ray []';
612
- }
613
- }
614
- /* Fake a Flog.* namespace */
615
- if(typeof(Flog) == 'undefined') var Flog = {};
616
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
617
-
618
- Flog.RayTracer.Background = Class.create();
619
-
620
- Flog.RayTracer.Background.prototype = {
621
- color : null,
622
- ambience : 0.0,
623
-
624
- initialize : function(color, ambience) {
625
- this.color = color;
626
- this.ambience = ambience;
627
- }
628
- }
629
- /* Fake a Flog.* namespace */
630
- if(typeof(Flog) == 'undefined') var Flog = {};
631
- if(typeof(Flog.RayTracer) == 'undefined') Flog.RayTracer = {};
632
-
633
- Flog.RayTracer.Engine = Class.create();
634
-
635
- Flog.RayTracer.Engine.prototype = {
636
- canvas: null, /* 2d context we can render to */
637
-
638
- initialize: function(options){
639
- this.options = Object.extend({
640
- canvasHeight: 100,
641
- canvasWidth: 100,
642
- pixelWidth: 2,
643
- pixelHeight: 2,
644
- renderDiffuse: false,
645
- renderShadows: false,
646
- renderHighlights: false,
647
- renderReflections: false,
648
- rayDepth: 2
649
- }, options || {});
650
-
651
- this.options.canvasHeight /= this.options.pixelHeight;
652
- this.options.canvasWidth /= this.options.pixelWidth;
653
-
654
- /* TODO: dynamically include other scripts */
655
- },
656
-
657
- setPixel: function(x, y, color){
658
- var pxW, pxH;
659
- pxW = this.options.pixelWidth;
660
- pxH = this.options.pixelHeight;
661
-
662
- if (this.canvas) {
663
- this.canvas.fillStyle = color.toString();
664
- this.canvas.fillRect (x * pxW, y * pxH, pxW, pxH);
665
- } else {
666
- if (x === y) {
667
- checkNumber += color.brightness();
668
- }
669
- // print(x * pxW, y * pxH, pxW, pxH);
670
- }
671
- },
672
-
673
- renderScene: function(scene, canvas){
674
- checkNumber = 0;
675
- /* Get canvas */
676
- if (canvas) {
677
- this.canvas = canvas.getContext("2d");
678
- } else {
679
- this.canvas = null;
680
- }
681
-
682
- var canvasHeight = this.options.canvasHeight;
683
- var canvasWidth = this.options.canvasWidth;
684
-
685
- for(var y=0; y < canvasHeight; y++){
686
- for(var x=0; x < canvasWidth; x++){
687
- var yp = y * 1.0 / canvasHeight * 2 - 1;
688
- var xp = x * 1.0 / canvasWidth * 2 - 1;
689
-
690
- var ray = scene.camera.getRay(xp, yp);
691
-
692
- var color = this.getPixelColor(ray, scene);
693
-
694
- this.setPixel(x, y, color);
695
- }
696
- }
697
- if (checkNumber !== 2321) {
698
- throw new Error("Scene rendered incorrectly");
699
- }
700
- },
701
-
702
- getPixelColor: function(ray, scene){
703
- var info = this.testIntersection(ray, scene, null);
704
- if(info.isHit){
705
- var color = this.rayTrace(info, ray, scene, 0);
706
- return color;
707
- }
708
- return scene.background.color;
709
- },
710
-
711
- testIntersection: function(ray, scene, exclude){
712
- var hits = 0;
713
- var best = new Flog.RayTracer.IntersectionInfo();
714
- best.distance = 2000;
715
-
716
- for(var i=0; i<scene.shapes.length; i++){
717
- var shape = scene.shapes[i];
718
-
719
- if(shape != exclude){
720
- var info = shape.intersect(ray);
721
- if(info.isHit && info.distance >= 0 && info.distance < best.distance){
722
- best = info;
723
- hits++;
724
- }
725
- }
726
- }
727
- best.hitCount = hits;
728
- return best;
729
- },
730
-
731
- getReflectionRay: function(P,N,V){
732
- var c1 = -N.dot(V);
733
- var R1 = Flog.RayTracer.Vector.prototype.add(
734
- Flog.RayTracer.Vector.prototype.multiplyScalar(N, 2*c1),
735
- V
736
- );
737
- return new Flog.RayTracer.Ray(P, R1);
738
- },
739
-
740
- rayTrace: function(info, ray, scene, depth){
741
- // Calc ambient
742
- var color = Flog.RayTracer.Color.prototype.multiplyScalar(info.color, scene.background.ambience);
743
- var oldColor = color;
744
- var shininess = Math.pow(10, info.shape.material.gloss + 1);
745
-
746
- for(var i=0; i<scene.lights.length; i++){
747
- var light = scene.lights[i];
748
-
749
- // Calc diffuse lighting
750
- var v = Flog.RayTracer.Vector.prototype.subtract(
751
- light.position,
752
- info.position
753
- ).normalize();
754
-
755
- if(this.options.renderDiffuse){
756
- var L = v.dot(info.normal);
757
- if(L > 0.0){
758
- color = Flog.RayTracer.Color.prototype.add(
759
- color,
760
- Flog.RayTracer.Color.prototype.multiply(
761
- info.color,
762
- Flog.RayTracer.Color.prototype.multiplyScalar(
763
- light.color,
764
- L
765
- )
766
- )
767
- );
768
- }
769
- }
770
-
771
- // The greater the depth the more accurate the colours, but
772
- // this is exponentially (!) expensive
773
- if(depth <= this.options.rayDepth){
774
- // calculate reflection ray
775
- if(this.options.renderReflections && info.shape.material.reflection > 0)
776
- {
777
- var reflectionRay = this.getReflectionRay(info.position, info.normal, ray.direction);
778
- var refl = this.testIntersection(reflectionRay, scene, info.shape);
779
-
780
- if (refl.isHit && refl.distance > 0){
781
- refl.color = this.rayTrace(refl, reflectionRay, scene, depth + 1);
782
- } else {
783
- refl.color = scene.background.color;
784
- }
785
-
786
- color = Flog.RayTracer.Color.prototype.blend(
787
- color,
788
- refl.color,
789
- info.shape.material.reflection
790
- );
791
- }
792
-
793
- // Refraction
794
- /* TODO */
795
- }
796
-
797
- /* Render shadows and highlights */
798
-
799
- var shadowInfo = new Flog.RayTracer.IntersectionInfo();
800
-
801
- if(this.options.renderShadows){
802
- var shadowRay = new Flog.RayTracer.Ray(info.position, v);
803
-
804
- shadowInfo = this.testIntersection(shadowRay, scene, info.shape);
805
- if(shadowInfo.isHit && shadowInfo.shape != info.shape /*&& shadowInfo.shape.type != 'PLANE'*/){
806
- var vA = Flog.RayTracer.Color.prototype.multiplyScalar(color, 0.5);
807
- var dB = (0.5 * Math.pow(shadowInfo.shape.material.transparency, 0.5));
808
- color = Flog.RayTracer.Color.prototype.addScalar(vA,dB);
809
- }
810
- }
811
-
812
- // Phong specular highlights
813
- if(this.options.renderHighlights && !shadowInfo.isHit && info.shape.material.gloss > 0){
814
- var Lv = Flog.RayTracer.Vector.prototype.subtract(
815
- info.shape.position,
816
- light.position
817
- ).normalize();
818
-
819
- var E = Flog.RayTracer.Vector.prototype.subtract(
820
- scene.camera.position,
821
- info.shape.position
822
- ).normalize();
823
-
824
- var H = Flog.RayTracer.Vector.prototype.subtract(
825
- E,
826
- Lv
827
- ).normalize();
828
-
829
- var glossWeight = Math.pow(Math.max(info.normal.dot(H), 0), shininess);
830
- color = Flog.RayTracer.Color.prototype.add(
831
- Flog.RayTracer.Color.prototype.multiplyScalar(light.color, glossWeight),
832
- color
833
- );
834
- }
835
- }
836
- color.limit();
837
- return color;
838
- }
839
- };
840
-
841
-
842
- function renderScene(){
843
- var scene = new Flog.RayTracer.Scene();
844
-
845
- scene.camera = new Flog.RayTracer.Camera(
846
- new Flog.RayTracer.Vector(0, 0, -15),
847
- new Flog.RayTracer.Vector(-0.2, 0, 5),
848
- new Flog.RayTracer.Vector(0, 1, 0)
849
- );
850
-
851
- scene.background = new Flog.RayTracer.Background(
852
- new Flog.RayTracer.Color(0.5, 0.5, 0.5),
853
- 0.4
854
- );
855
-
856
- var sphere = new Flog.RayTracer.Shape.Sphere(
857
- new Flog.RayTracer.Vector(-1.5, 1.5, 2),
858
- 1.5,
859
- new Flog.RayTracer.Material.Solid(
860
- new Flog.RayTracer.Color(0,0.5,0.5),
861
- 0.3,
862
- 0.0,
863
- 0.0,
864
- 2.0
865
- )
866
- );
867
-
868
- var sphere1 = new Flog.RayTracer.Shape.Sphere(
869
- new Flog.RayTracer.Vector(1, 0.25, 1),
870
- 0.5,
871
- new Flog.RayTracer.Material.Solid(
872
- new Flog.RayTracer.Color(0.9,0.9,0.9),
873
- 0.1,
874
- 0.0,
875
- 0.0,
876
- 1.5
877
- )
878
- );
879
-
880
- var plane = new Flog.RayTracer.Shape.Plane(
881
- new Flog.RayTracer.Vector(0.1, 0.9, -0.5).normalize(),
882
- 1.2,
883
- new Flog.RayTracer.Material.Chessboard(
884
- new Flog.RayTracer.Color(1,1,1),
885
- new Flog.RayTracer.Color(0,0,0),
886
- 0.2,
887
- 0.0,
888
- 1.0,
889
- 0.7
890
- )
891
- );
892
-
893
- scene.shapes.push(plane);
894
- scene.shapes.push(sphere);
895
- scene.shapes.push(sphere1);
896
-
897
- var light = new Flog.RayTracer.Light(
898
- new Flog.RayTracer.Vector(5, 10, -1),
899
- new Flog.RayTracer.Color(0.8, 0.8, 0.8)
900
- );
901
-
902
- var light1 = new Flog.RayTracer.Light(
903
- new Flog.RayTracer.Vector(-3, 5, -15),
904
- new Flog.RayTracer.Color(0.8, 0.8, 0.8),
905
- 100
906
- );
907
-
908
- scene.lights.push(light);
909
- scene.lights.push(light1);
910
-
911
- var imageWidth = 100; // $F('imageWidth');
912
- var imageHeight = 100; // $F('imageHeight');
913
- var pixelSize = "5,5".split(','); // $F('pixelSize').split(',');
914
- var renderDiffuse = true; // $F('renderDiffuse');
915
- var renderShadows = true; // $F('renderShadows');
916
- var renderHighlights = true; // $F('renderHighlights');
917
- var renderReflections = true; // $F('renderReflections');
918
- var rayDepth = 2;//$F('rayDepth');
919
-
920
- var raytracer = new Flog.RayTracer.Engine(
921
- {
922
- canvasWidth: imageWidth,
923
- canvasHeight: imageHeight,
924
- pixelWidth: pixelSize[0],
925
- pixelHeight: pixelSize[1],
926
- "renderDiffuse": renderDiffuse,
927
- "renderHighlights": renderHighlights,
928
- "renderShadows": renderShadows,
929
- "renderReflections": renderReflections,
930
- "rayDepth": rayDepth
931
- }
932
- );
933
-
934
- raytracer.renderScene(scene, null, 0);
935
- }