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