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,86 +0,0 @@
1
- <html>
2
- <head>
3
- <title>V8 Benchmark Suite Revisions</title>
4
- <link type="text/css" rel="stylesheet" href="style.css" />
5
- </head>
6
- <body>
7
- <div>
8
- <div class="title"><h1>V8 Benchmark Suite Revisions</h1></div>
9
- <table>
10
- <tr>
11
- <td class="contents">
12
-
13
- <p>
14
-
15
- The V8 benchmark suite is changed from time to time as we fix bugs or
16
- expand the scope of the benchmarks. Here is a list of revisions, with
17
- a description of the changes made. Note that benchmark results are
18
- not comparable unless both results are run with the same revision of
19
- the benchmark suite.
20
-
21
- </p>
22
-
23
- <div class="subtitle"><h3>Version 5 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v5/run.html">link</a>)</h3></div>
24
-
25
- <p>Removed duplicate line in random seed code, and changed the name of
26
- the Object.prototype.inherits function in the DeltaBlue benchmark to
27
- inheritsFrom to avoid name clashes when running in Chromium with
28
- extensions enabled.
29
- </p>
30
-
31
- <div class="subtitle"><h3>Version 4 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v4/run.html">link</a>)</h3></div>
32
-
33
- <p>The <i>Splay</i> benchmark is a newcomer in version 4. It
34
- manipulates a splay tree by adding and removing data nodes, thus
35
- exercising the memory management subsystem of the JavaScript engine.
36
- </p>
37
-
38
- <p>
39
- Furthermore, all the unused parts of the Prototype library were
40
- removed from the RayTrace benchmark. This does not affect the running
41
- of the benchmark.
42
- </p>
43
-
44
-
45
- <div class="subtitle"><h3>Version 3 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v3/run.html">link</a>)</h3></div>
46
-
47
- <p>Version 3 adds a new benchmark, <i>RegExp</i>. The RegExp
48
- benchmark is generated by loading 50 of the most popular pages on the
49
- web and logging all regexp operations performed. Each operation is
50
- given a weight that is calculated from an estimate of the popularity
51
- of the pages where it occurs and the number of times it is executed
52
- while loading each page. Finally the literal letters in the data are
53
- encoded using ROT13 in a way that does not affect how the regexps
54
- match their input.
55
- </p>
56
-
57
-
58
- <div class="subtitle"><h3>Version 2 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v2/run.html">link</a>)</h3></div>
59
-
60
- <p>For version 2 the Crypto benchmark was fixed. Previously, the
61
- decryption stage was given plaintext as input, which resulted in an
62
- error. Now, the decryption stage is given the output of the
63
- encryption stage as input. The result is checked against the original
64
- plaintext. For this to give the correct results the crypto objects
65
- are reset for each iteration of the benchmark. In addition, the size
66
- of the plain text has been increased a little and the use of
67
- Math.random() and new Date() to build an RNG pool has been
68
- removed. </p>
69
-
70
- <p>Other benchmarks were fixed to do elementary verification of the
71
- results of their calculations. This is to avoid accidentally
72
- obtaining scores that are the result of an incorrect JavaScript engine
73
- optimization.</p>
74
-
75
-
76
- <div class="subtitle"><h3>Version 1 (<a href="http://v8.googlecode.com/svn/data/benchmarks/v1/run.html">link</a>)</h3></div>
77
-
78
- <p>Initial release.</p>
79
-
80
- </td><td style="text-align: center">
81
- </td></tr></table>
82
-
83
- </div>
84
-
85
- </body>
86
- </html>
@@ -1,539 +0,0 @@
1
- // Copyright 2006-2008 the V8 project authors. All rights reserved.
2
- // Redistribution and use in source and binary forms, with or without
3
- // modification, are permitted provided that the following conditions are
4
- // met:
5
- //
6
- // * Redistributions of source code must retain the above copyright
7
- // notice, this list of conditions and the following disclaimer.
8
- // * Redistributions in binary form must reproduce the above
9
- // copyright notice, this list of conditions and the following
10
- // disclaimer in the documentation and/or other materials provided
11
- // with the distribution.
12
- // * Neither the name of Google Inc. nor the names of its
13
- // contributors may be used to endorse or promote products derived
14
- // from this software without specific prior written permission.
15
- //
16
- // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
- // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
- // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
- // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
- // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
- // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
- // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
- // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
- // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
-
28
-
29
- // This is a JavaScript implementation of the Richards
30
- // benchmark from:
31
- //
32
- // http://www.cl.cam.ac.uk/~mr10/Bench.html
33
- //
34
- // The benchmark was originally implemented in BCPL by
35
- // Martin Richards.
36
-
37
-
38
- var Richards = new BenchmarkSuite('Richards', 34886, [
39
- new Benchmark("Richards", runRichards)
40
- ]);
41
-
42
-
43
- /**
44
- * The Richards benchmark simulates the task dispatcher of an
45
- * operating system.
46
- **/
47
- function runRichards() {
48
- var scheduler = new Scheduler();
49
- scheduler.addIdleTask(ID_IDLE, 0, null, COUNT);
50
-
51
- var queue = new Packet(null, ID_WORKER, KIND_WORK);
52
- queue = new Packet(queue, ID_WORKER, KIND_WORK);
53
- scheduler.addWorkerTask(ID_WORKER, 1000, queue);
54
-
55
- queue = new Packet(null, ID_DEVICE_A, KIND_DEVICE);
56
- queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
57
- queue = new Packet(queue, ID_DEVICE_A, KIND_DEVICE);
58
- scheduler.addHandlerTask(ID_HANDLER_A, 2000, queue);
59
-
60
- queue = new Packet(null, ID_DEVICE_B, KIND_DEVICE);
61
- queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
62
- queue = new Packet(queue, ID_DEVICE_B, KIND_DEVICE);
63
- scheduler.addHandlerTask(ID_HANDLER_B, 3000, queue);
64
-
65
- scheduler.addDeviceTask(ID_DEVICE_A, 4000, null);
66
-
67
- scheduler.addDeviceTask(ID_DEVICE_B, 5000, null);
68
-
69
- scheduler.schedule();
70
-
71
- if (scheduler.queueCount != EXPECTED_QUEUE_COUNT ||
72
- scheduler.holdCount != EXPECTED_HOLD_COUNT) {
73
- var msg =
74
- "Error during execution: queueCount = " + scheduler.queueCount +
75
- ", holdCount = " + scheduler.holdCount + ".";
76
- throw new Error(msg);
77
- }
78
- }
79
-
80
- var COUNT = 1000;
81
-
82
- /**
83
- * These two constants specify how many times a packet is queued and
84
- * how many times a task is put on hold in a correct run of richards.
85
- * They don't have any meaning a such but are characteristic of a
86
- * correct run so if the actual queue or hold count is different from
87
- * the expected there must be a bug in the implementation.
88
- **/
89
- var EXPECTED_QUEUE_COUNT = 2322;
90
- var EXPECTED_HOLD_COUNT = 928;
91
-
92
-
93
- /**
94
- * A scheduler can be used to schedule a set of tasks based on their relative
95
- * priorities. Scheduling is done by maintaining a list of task control blocks
96
- * which holds tasks and the data queue they are processing.
97
- * @constructor
98
- */
99
- function Scheduler() {
100
- this.queueCount = 0;
101
- this.holdCount = 0;
102
- this.blocks = new Array(NUMBER_OF_IDS);
103
- this.list = null;
104
- this.currentTcb = null;
105
- this.currentId = null;
106
- }
107
-
108
- var ID_IDLE = 0;
109
- var ID_WORKER = 1;
110
- var ID_HANDLER_A = 2;
111
- var ID_HANDLER_B = 3;
112
- var ID_DEVICE_A = 4;
113
- var ID_DEVICE_B = 5;
114
- var NUMBER_OF_IDS = 6;
115
-
116
- var KIND_DEVICE = 0;
117
- var KIND_WORK = 1;
118
-
119
- /**
120
- * Add an idle task to this scheduler.
121
- * @param {int} id the identity of the task
122
- * @param {int} priority the task's priority
123
- * @param {Packet} queue the queue of work to be processed by the task
124
- * @param {int} count the number of times to schedule the task
125
- */
126
- Scheduler.prototype.addIdleTask = function (id, priority, queue, count) {
127
- this.addRunningTask(id, priority, queue, new IdleTask(this, 1, count));
128
- };
129
-
130
- /**
131
- * Add a work task to this scheduler.
132
- * @param {int} id the identity of the task
133
- * @param {int} priority the task's priority
134
- * @param {Packet} queue the queue of work to be processed by the task
135
- */
136
- Scheduler.prototype.addWorkerTask = function (id, priority, queue) {
137
- this.addTask(id, priority, queue, new WorkerTask(this, ID_HANDLER_A, 0));
138
- };
139
-
140
- /**
141
- * Add a handler task to this scheduler.
142
- * @param {int} id the identity of the task
143
- * @param {int} priority the task's priority
144
- * @param {Packet} queue the queue of work to be processed by the task
145
- */
146
- Scheduler.prototype.addHandlerTask = function (id, priority, queue) {
147
- this.addTask(id, priority, queue, new HandlerTask(this));
148
- };
149
-
150
- /**
151
- * Add a handler task to this scheduler.
152
- * @param {int} id the identity of the task
153
- * @param {int} priority the task's priority
154
- * @param {Packet} queue the queue of work to be processed by the task
155
- */
156
- Scheduler.prototype.addDeviceTask = function (id, priority, queue) {
157
- this.addTask(id, priority, queue, new DeviceTask(this))
158
- };
159
-
160
- /**
161
- * Add the specified task and mark it as running.
162
- * @param {int} id the identity of the task
163
- * @param {int} priority the task's priority
164
- * @param {Packet} queue the queue of work to be processed by the task
165
- * @param {Task} task the task to add
166
- */
167
- Scheduler.prototype.addRunningTask = function (id, priority, queue, task) {
168
- this.addTask(id, priority, queue, task);
169
- this.currentTcb.setRunning();
170
- };
171
-
172
- /**
173
- * Add the specified task to this scheduler.
174
- * @param {int} id the identity of the task
175
- * @param {int} priority the task's priority
176
- * @param {Packet} queue the queue of work to be processed by the task
177
- * @param {Task} task the task to add
178
- */
179
- Scheduler.prototype.addTask = function (id, priority, queue, task) {
180
- this.currentTcb = new TaskControlBlock(this.list, id, priority, queue, task);
181
- this.list = this.currentTcb;
182
- this.blocks[id] = this.currentTcb;
183
- };
184
-
185
- /**
186
- * Execute the tasks managed by this scheduler.
187
- */
188
- Scheduler.prototype.schedule = function () {
189
- this.currentTcb = this.list;
190
- while (this.currentTcb != null) {
191
- if (this.currentTcb.isHeldOrSuspended()) {
192
- this.currentTcb = this.currentTcb.link;
193
- } else {
194
- this.currentId = this.currentTcb.id;
195
- this.currentTcb = this.currentTcb.run();
196
- }
197
- }
198
- };
199
-
200
- /**
201
- * Release a task that is currently blocked and return the next block to run.
202
- * @param {int} id the id of the task to suspend
203
- */
204
- Scheduler.prototype.release = function (id) {
205
- var tcb = this.blocks[id];
206
- if (tcb == null) return tcb;
207
- tcb.markAsNotHeld();
208
- if (tcb.priority > this.currentTcb.priority) {
209
- return tcb;
210
- } else {
211
- return this.currentTcb;
212
- }
213
- };
214
-
215
- /**
216
- * Block the currently executing task and return the next task control block
217
- * to run. The blocked task will not be made runnable until it is explicitly
218
- * released, even if new work is added to it.
219
- */
220
- Scheduler.prototype.holdCurrent = function () {
221
- this.holdCount++;
222
- this.currentTcb.markAsHeld();
223
- return this.currentTcb.link;
224
- };
225
-
226
- /**
227
- * Suspend the currently executing task and return the next task control block
228
- * to run. If new work is added to the suspended task it will be made runnable.
229
- */
230
- Scheduler.prototype.suspendCurrent = function () {
231
- this.currentTcb.markAsSuspended();
232
- return this.currentTcb;
233
- };
234
-
235
- /**
236
- * Add the specified packet to the end of the worklist used by the task
237
- * associated with the packet and make the task runnable if it is currently
238
- * suspended.
239
- * @param {Packet} packet the packet to add
240
- */
241
- Scheduler.prototype.queue = function (packet) {
242
- var t = this.blocks[packet.id];
243
- if (t == null) return t;
244
- this.queueCount++;
245
- packet.link = null;
246
- packet.id = this.currentId;
247
- return t.checkPriorityAdd(this.currentTcb, packet);
248
- };
249
-
250
- /**
251
- * A task control block manages a task and the queue of work packages associated
252
- * with it.
253
- * @param {TaskControlBlock} link the preceding block in the linked block list
254
- * @param {int} id the id of this block
255
- * @param {int} priority the priority of this block
256
- * @param {Packet} queue the queue of packages to be processed by the task
257
- * @param {Task} task the task
258
- * @constructor
259
- */
260
- function TaskControlBlock(link, id, priority, queue, task) {
261
- this.link = link;
262
- this.id = id;
263
- this.priority = priority;
264
- this.queue = queue;
265
- this.task = task;
266
- if (queue == null) {
267
- this.state = STATE_SUSPENDED;
268
- } else {
269
- this.state = STATE_SUSPENDED_RUNNABLE;
270
- }
271
- }
272
-
273
- /**
274
- * The task is running and is currently scheduled.
275
- */
276
- var STATE_RUNNING = 0;
277
-
278
- /**
279
- * The task has packets left to process.
280
- */
281
- var STATE_RUNNABLE = 1;
282
-
283
- /**
284
- * The task is not currently running. The task is not blocked as such and may
285
- * be started by the scheduler.
286
- */
287
- var STATE_SUSPENDED = 2;
288
-
289
- /**
290
- * The task is blocked and cannot be run until it is explicitly released.
291
- */
292
- var STATE_HELD = 4;
293
-
294
- var STATE_SUSPENDED_RUNNABLE = STATE_SUSPENDED | STATE_RUNNABLE;
295
- var STATE_NOT_HELD = ~STATE_HELD;
296
-
297
- TaskControlBlock.prototype.setRunning = function () {
298
- this.state = STATE_RUNNING;
299
- };
300
-
301
- TaskControlBlock.prototype.markAsNotHeld = function () {
302
- this.state = this.state & STATE_NOT_HELD;
303
- };
304
-
305
- TaskControlBlock.prototype.markAsHeld = function () {
306
- this.state = this.state | STATE_HELD;
307
- };
308
-
309
- TaskControlBlock.prototype.isHeldOrSuspended = function () {
310
- return (this.state & STATE_HELD) != 0 || (this.state == STATE_SUSPENDED);
311
- };
312
-
313
- TaskControlBlock.prototype.markAsSuspended = function () {
314
- this.state = this.state | STATE_SUSPENDED;
315
- };
316
-
317
- TaskControlBlock.prototype.markAsRunnable = function () {
318
- this.state = this.state | STATE_RUNNABLE;
319
- };
320
-
321
- /**
322
- * Runs this task, if it is ready to be run, and returns the next task to run.
323
- */
324
- TaskControlBlock.prototype.run = function () {
325
- var packet;
326
- if (this.state == STATE_SUSPENDED_RUNNABLE) {
327
- packet = this.queue;
328
- this.queue = packet.link;
329
- if (this.queue == null) {
330
- this.state = STATE_RUNNING;
331
- } else {
332
- this.state = STATE_RUNNABLE;
333
- }
334
- } else {
335
- packet = null;
336
- }
337
- return this.task.run(packet);
338
- };
339
-
340
- /**
341
- * Adds a packet to the worklist of this block's task, marks this as runnable if
342
- * necessary, and returns the next runnable object to run (the one
343
- * with the highest priority).
344
- */
345
- TaskControlBlock.prototype.checkPriorityAdd = function (task, packet) {
346
- if (this.queue == null) {
347
- this.queue = packet;
348
- this.markAsRunnable();
349
- if (this.priority > task.priority) return this;
350
- } else {
351
- this.queue = packet.addTo(this.queue);
352
- }
353
- return task;
354
- };
355
-
356
- TaskControlBlock.prototype.toString = function () {
357
- return "tcb { " + this.task + "@" + this.state + " }";
358
- };
359
-
360
- /**
361
- * An idle task doesn't do any work itself but cycles control between the two
362
- * device tasks.
363
- * @param {Scheduler} scheduler the scheduler that manages this task
364
- * @param {int} v1 a seed value that controls how the device tasks are scheduled
365
- * @param {int} count the number of times this task should be scheduled
366
- * @constructor
367
- */
368
- function IdleTask(scheduler, v1, count) {
369
- this.scheduler = scheduler;
370
- this.v1 = v1;
371
- this.count = count;
372
- }
373
-
374
- IdleTask.prototype.run = function (packet) {
375
- this.count--;
376
- if (this.count == 0) return this.scheduler.holdCurrent();
377
- if ((this.v1 & 1) == 0) {
378
- this.v1 = this.v1 >> 1;
379
- return this.scheduler.release(ID_DEVICE_A);
380
- } else {
381
- this.v1 = (this.v1 >> 1) ^ 0xD008;
382
- return this.scheduler.release(ID_DEVICE_B);
383
- }
384
- };
385
-
386
- IdleTask.prototype.toString = function () {
387
- return "IdleTask"
388
- };
389
-
390
- /**
391
- * A task that suspends itself after each time it has been run to simulate
392
- * waiting for data from an external device.
393
- * @param {Scheduler} scheduler the scheduler that manages this task
394
- * @constructor
395
- */
396
- function DeviceTask(scheduler) {
397
- this.scheduler = scheduler;
398
- this.v1 = null;
399
- }
400
-
401
- DeviceTask.prototype.run = function (packet) {
402
- if (packet == null) {
403
- if (this.v1 == null) return this.scheduler.suspendCurrent();
404
- var v = this.v1;
405
- this.v1 = null;
406
- return this.scheduler.queue(v);
407
- } else {
408
- this.v1 = packet;
409
- return this.scheduler.holdCurrent();
410
- }
411
- };
412
-
413
- DeviceTask.prototype.toString = function () {
414
- return "DeviceTask";
415
- };
416
-
417
- /**
418
- * A task that manipulates work packets.
419
- * @param {Scheduler} scheduler the scheduler that manages this task
420
- * @param {int} v1 a seed used to specify how work packets are manipulated
421
- * @param {int} v2 another seed used to specify how work packets are manipulated
422
- * @constructor
423
- */
424
- function WorkerTask(scheduler, v1, v2) {
425
- this.scheduler = scheduler;
426
- this.v1 = v1;
427
- this.v2 = v2;
428
- }
429
-
430
- WorkerTask.prototype.run = function (packet) {
431
- if (packet == null) {
432
- return this.scheduler.suspendCurrent();
433
- } else {
434
- if (this.v1 == ID_HANDLER_A) {
435
- this.v1 = ID_HANDLER_B;
436
- } else {
437
- this.v1 = ID_HANDLER_A;
438
- }
439
- packet.id = this.v1;
440
- packet.a1 = 0;
441
- for (var i = 0; i < DATA_SIZE; i++) {
442
- this.v2++;
443
- if (this.v2 > 26) this.v2 = 1;
444
- packet.a2[i] = this.v2;
445
- }
446
- return this.scheduler.queue(packet);
447
- }
448
- };
449
-
450
- WorkerTask.prototype.toString = function () {
451
- return "WorkerTask";
452
- };
453
-
454
- /**
455
- * A task that manipulates work packets and then suspends itself.
456
- * @param {Scheduler} scheduler the scheduler that manages this task
457
- * @constructor
458
- */
459
- function HandlerTask(scheduler) {
460
- this.scheduler = scheduler;
461
- this.v1 = null;
462
- this.v2 = null;
463
- }
464
-
465
- HandlerTask.prototype.run = function (packet) {
466
- if (packet != null) {
467
- if (packet.kind == KIND_WORK) {
468
- this.v1 = packet.addTo(this.v1);
469
- } else {
470
- this.v2 = packet.addTo(this.v2);
471
- }
472
- }
473
- if (this.v1 != null) {
474
- var count = this.v1.a1;
475
- var v;
476
- if (count < DATA_SIZE) {
477
- if (this.v2 != null) {
478
- v = this.v2;
479
- this.v2 = this.v2.link;
480
- v.a1 = this.v1.a2[count];
481
- this.v1.a1 = count + 1;
482
- return this.scheduler.queue(v);
483
- }
484
- } else {
485
- v = this.v1;
486
- this.v1 = this.v1.link;
487
- return this.scheduler.queue(v);
488
- }
489
- }
490
- return this.scheduler.suspendCurrent();
491
- };
492
-
493
- HandlerTask.prototype.toString = function () {
494
- return "HandlerTask";
495
- };
496
-
497
- /* --- *
498
- * P a c k e t
499
- * --- */
500
-
501
- var DATA_SIZE = 4;
502
-
503
- /**
504
- * A simple package of data that is manipulated by the tasks. The exact layout
505
- * of the payload data carried by a packet is not importaint, and neither is the
506
- * nature of the work performed on packets by the tasks.
507
- *
508
- * Besides carrying data, packets form linked lists and are hence used both as
509
- * data and worklists.
510
- * @param {Packet} link the tail of the linked list of packets
511
- * @param {int} id an ID for this packet
512
- * @param {int} kind the type of this packet
513
- * @constructor
514
- */
515
- function Packet(link, id, kind) {
516
- this.link = link;
517
- this.id = id;
518
- this.kind = kind;
519
- this.a1 = 0;
520
- this.a2 = new Array(DATA_SIZE);
521
- }
522
-
523
- /**
524
- * Add this packet to the end of a worklist, and return the worklist.
525
- * @param {Packet} queue the worklist to add this packet to
526
- */
527
- Packet.prototype.addTo = function (queue) {
528
- this.link = null;
529
- if (queue == null) return this;
530
- var peek, next = queue;
531
- while ((peek = next.link) != null)
532
- next = peek;
533
- next.link = this;
534
- return queue;
535
- };
536
-
537
- Packet.prototype.toString = function () {
538
- return "Packet";
539
- };