mustang 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +1 -0
- data/Isolate +9 -0
- data/README.md +6 -12
- data/Rakefile +30 -4
- data/TODO.md +9 -0
- data/ext/v8/extconf.rb +56 -0
- data/ext/v8/v8.cpp +37 -0
- data/ext/v8/v8_array.cpp +161 -0
- data/ext/v8/v8_array.h +17 -0
- data/ext/v8/v8_base.cpp +147 -0
- data/ext/v8/v8_base.h +23 -0
- data/ext/v8/v8_cast.cpp +151 -0
- data/ext/v8/v8_cast.h +64 -0
- data/ext/v8/v8_context.cpp +174 -0
- data/ext/v8/v8_context.h +12 -0
- data/ext/v8/v8_date.cpp +61 -0
- data/ext/v8/v8_date.h +16 -0
- data/ext/v8/v8_errors.cpp +147 -0
- data/ext/v8/v8_errors.h +19 -0
- data/ext/v8/v8_external.cpp +66 -0
- data/ext/v8/v8_external.h +16 -0
- data/ext/v8/v8_function.cpp +182 -0
- data/ext/v8/v8_function.h +14 -0
- data/ext/v8/v8_integer.cpp +70 -0
- data/ext/v8/v8_integer.h +16 -0
- data/ext/v8/v8_macros.h +30 -0
- data/ext/v8/v8_main.cpp +53 -0
- data/ext/v8/v8_main.h +13 -0
- data/ext/v8/v8_number.cpp +62 -0
- data/ext/v8/v8_number.h +16 -0
- data/ext/v8/v8_object.cpp +172 -0
- data/ext/v8/v8_object.h +17 -0
- data/ext/v8/v8_ref.cpp +72 -0
- data/ext/v8/v8_ref.h +43 -0
- data/ext/v8/v8_regexp.cpp +148 -0
- data/ext/v8/v8_regexp.h +16 -0
- data/ext/v8/v8_string.cpp +78 -0
- data/ext/v8/v8_string.h +16 -0
- data/ext/v8/v8_value.cpp +370 -0
- data/ext/v8/v8_value.h +19 -0
- data/gemspec.yml +2 -1
- data/lib/core_ext/class.rb +14 -0
- data/lib/core_ext/object.rb +12 -0
- data/lib/core_ext/symbol.rb +23 -0
- data/lib/mustang.rb +44 -0
- data/lib/mustang/context.rb +69 -0
- data/lib/mustang/errors.rb +36 -0
- data/lib/support/delegated.rb +25 -0
- data/lib/v8/array.rb +21 -0
- data/lib/v8/context.rb +13 -0
- data/lib/v8/date.rb +20 -0
- data/lib/v8/error.rb +15 -0
- data/lib/v8/external.rb +16 -0
- data/lib/v8/function.rb +11 -0
- data/lib/v8/integer.rb +16 -0
- data/lib/v8/number.rb +16 -0
- data/lib/v8/object.rb +66 -0
- data/lib/v8/regexp.rb +23 -0
- data/lib/v8/string.rb +27 -0
- data/mustang.gemspec +3 -0
- data/spec/core_ext/class_spec.rb +19 -0
- data/spec/core_ext/object_spec.rb +19 -0
- data/spec/core_ext/symbol_spec.rb +27 -0
- data/spec/fixtures/test1.js +2 -0
- data/spec/fixtures/test2.js +2 -0
- data/spec/spec_helper.rb +20 -0
- data/spec/v8/array_spec.rb +88 -0
- data/spec/v8/cast_spec.rb +151 -0
- data/spec/v8/context_spec.rb +78 -0
- data/spec/v8/data_spec.rb +39 -0
- data/spec/v8/date_spec.rb +45 -0
- data/spec/v8/empty_spec.rb +27 -0
- data/spec/v8/errors_spec.rb +142 -0
- data/spec/v8/external_spec.rb +44 -0
- data/spec/v8/function_spec.rb +170 -0
- data/spec/v8/integer_spec.rb +41 -0
- data/spec/v8/main_spec.rb +18 -0
- data/spec/v8/null_spec.rb +27 -0
- data/spec/v8/number_spec.rb +40 -0
- data/spec/v8/object_spec.rb +79 -0
- data/spec/v8/primitive_spec.rb +9 -0
- data/spec/v8/regexp_spec.rb +65 -0
- data/spec/v8/string_spec.rb +48 -0
- data/spec/v8/undefined_spec.rb +27 -0
- data/spec/v8/value_spec.rb +215 -0
- data/vendor/v8/.gitignore +2 -0
- data/vendor/v8/AUTHORS +3 -1
- data/vendor/v8/ChangeLog +117 -0
- data/vendor/v8/SConstruct +334 -53
- data/vendor/v8/include/v8-debug.h +21 -11
- data/vendor/v8/include/v8-preparser.h +1 -1
- data/vendor/v8/include/v8-profiler.h +122 -43
- data/vendor/v8/include/v8-testing.h +5 -0
- data/vendor/v8/include/v8.h +171 -17
- data/vendor/v8/preparser/SConscript +38 -0
- data/vendor/v8/preparser/preparser-process.cc +77 -114
- data/vendor/v8/samples/shell.cc +232 -46
- data/vendor/v8/src/SConscript +29 -5
- data/vendor/v8/src/accessors.cc +70 -211
- data/vendor/v8/{test/cctest/test-mips.cc → src/allocation-inl.h} +15 -18
- data/vendor/v8/src/allocation.cc +0 -82
- data/vendor/v8/src/allocation.h +9 -42
- data/vendor/v8/src/api.cc +1645 -1156
- data/vendor/v8/src/api.h +76 -12
- data/vendor/v8/src/apiutils.h +0 -7
- data/vendor/v8/src/arguments.h +15 -4
- data/vendor/v8/src/arm/assembler-arm-inl.h +10 -9
- data/vendor/v8/src/arm/assembler-arm.cc +62 -23
- data/vendor/v8/src/arm/assembler-arm.h +76 -11
- data/vendor/v8/src/arm/builtins-arm.cc +39 -33
- data/vendor/v8/src/arm/code-stubs-arm.cc +1182 -402
- data/vendor/v8/src/arm/code-stubs-arm.h +20 -54
- data/vendor/v8/src/arm/codegen-arm.cc +159 -106
- data/vendor/v8/src/arm/codegen-arm.h +6 -6
- data/vendor/v8/src/arm/constants-arm.h +16 -1
- data/vendor/v8/src/arm/cpu-arm.cc +7 -5
- data/vendor/v8/src/arm/debug-arm.cc +6 -4
- data/vendor/v8/src/arm/deoptimizer-arm.cc +51 -14
- data/vendor/v8/src/arm/disasm-arm.cc +47 -15
- data/vendor/v8/src/arm/frames-arm.h +1 -1
- data/vendor/v8/src/arm/full-codegen-arm.cc +724 -408
- data/vendor/v8/src/arm/ic-arm.cc +90 -85
- data/vendor/v8/src/arm/lithium-arm.cc +140 -69
- data/vendor/v8/src/arm/lithium-arm.h +161 -46
- data/vendor/v8/src/arm/lithium-codegen-arm.cc +567 -297
- data/vendor/v8/src/arm/lithium-codegen-arm.h +21 -9
- data/vendor/v8/src/arm/lithium-gap-resolver-arm.cc +2 -0
- data/vendor/v8/src/arm/macro-assembler-arm.cc +457 -96
- data/vendor/v8/src/arm/macro-assembler-arm.h +115 -18
- data/vendor/v8/src/arm/regexp-macro-assembler-arm.cc +20 -13
- data/vendor/v8/src/arm/regexp-macro-assembler-arm.h +1 -0
- data/vendor/v8/src/arm/simulator-arm.cc +184 -101
- data/vendor/v8/src/arm/simulator-arm.h +26 -21
- data/vendor/v8/src/arm/stub-cache-arm.cc +450 -467
- data/vendor/v8/src/arm/virtual-frame-arm.cc +14 -12
- data/vendor/v8/src/arm/virtual-frame-arm.h +11 -8
- data/vendor/v8/src/array.js +35 -18
- data/vendor/v8/src/assembler.cc +186 -92
- data/vendor/v8/src/assembler.h +106 -69
- data/vendor/v8/src/ast-inl.h +5 -0
- data/vendor/v8/src/ast.cc +46 -35
- data/vendor/v8/src/ast.h +107 -50
- data/vendor/v8/src/atomicops.h +2 -0
- data/vendor/v8/src/atomicops_internals_mips_gcc.h +169 -0
- data/vendor/v8/src/bootstrapper.cc +649 -399
- data/vendor/v8/src/bootstrapper.h +94 -27
- data/vendor/v8/src/builtins.cc +359 -227
- data/vendor/v8/src/builtins.h +157 -123
- data/vendor/v8/src/checks.cc +2 -2
- data/vendor/v8/src/checks.h +4 -0
- data/vendor/v8/src/code-stubs.cc +27 -17
- data/vendor/v8/src/code-stubs.h +38 -17
- data/vendor/v8/src/codegen-inl.h +5 -1
- data/vendor/v8/src/codegen.cc +27 -17
- data/vendor/v8/src/codegen.h +9 -9
- data/vendor/v8/src/compilation-cache.cc +92 -206
- data/vendor/v8/src/compilation-cache.h +205 -30
- data/vendor/v8/src/compiler.cc +107 -120
- data/vendor/v8/src/compiler.h +17 -2
- data/vendor/v8/src/contexts.cc +22 -15
- data/vendor/v8/src/contexts.h +14 -8
- data/vendor/v8/src/conversions.cc +86 -30
- data/vendor/v8/src/counters.cc +19 -4
- data/vendor/v8/src/counters.h +28 -16
- data/vendor/v8/src/cpu-profiler-inl.h +4 -3
- data/vendor/v8/src/cpu-profiler.cc +123 -72
- data/vendor/v8/src/cpu-profiler.h +33 -19
- data/vendor/v8/src/cpu.h +2 -0
- data/vendor/v8/src/d8-debug.cc +3 -3
- data/vendor/v8/src/d8-debug.h +7 -6
- data/vendor/v8/src/d8-posix.cc +2 -0
- data/vendor/v8/src/d8.cc +22 -12
- data/vendor/v8/src/d8.gyp +3 -0
- data/vendor/v8/src/d8.js +618 -0
- data/vendor/v8/src/data-flow.h +3 -3
- data/vendor/v8/src/dateparser.h +4 -2
- data/vendor/v8/src/debug-agent.cc +10 -9
- data/vendor/v8/src/debug-agent.h +9 -11
- data/vendor/v8/src/debug-debugger.js +121 -0
- data/vendor/v8/src/debug.cc +331 -227
- data/vendor/v8/src/debug.h +248 -219
- data/vendor/v8/src/deoptimizer.cc +173 -62
- data/vendor/v8/src/deoptimizer.h +119 -19
- data/vendor/v8/src/disasm.h +3 -0
- data/vendor/v8/src/disassembler.cc +10 -9
- data/vendor/v8/src/execution.cc +185 -129
- data/vendor/v8/src/execution.h +47 -78
- data/vendor/v8/src/extensions/experimental/break-iterator.cc +250 -0
- data/vendor/v8/src/extensions/experimental/break-iterator.h +89 -0
- data/vendor/v8/src/extensions/experimental/experimental.gyp +2 -0
- data/vendor/v8/src/extensions/experimental/i18n-extension.cc +22 -2
- data/vendor/v8/src/extensions/externalize-string-extension.cc +2 -2
- data/vendor/v8/src/extensions/gc-extension.cc +1 -1
- data/vendor/v8/src/factory.cc +261 -154
- data/vendor/v8/src/factory.h +162 -158
- data/vendor/v8/src/flag-definitions.h +17 -11
- data/vendor/v8/src/frame-element.cc +0 -5
- data/vendor/v8/src/frame-element.h +9 -13
- data/vendor/v8/src/frames-inl.h +7 -0
- data/vendor/v8/src/frames.cc +56 -46
- data/vendor/v8/src/frames.h +36 -25
- data/vendor/v8/src/full-codegen.cc +15 -24
- data/vendor/v8/src/full-codegen.h +13 -41
- data/vendor/v8/src/func-name-inferrer.cc +7 -6
- data/vendor/v8/src/func-name-inferrer.h +1 -1
- data/vendor/v8/src/gdb-jit.cc +1 -0
- data/vendor/v8/src/global-handles.cc +118 -56
- data/vendor/v8/src/global-handles.h +98 -40
- data/vendor/v8/src/globals.h +2 -2
- data/vendor/v8/src/handles-inl.h +106 -9
- data/vendor/v8/src/handles.cc +220 -157
- data/vendor/v8/src/handles.h +38 -59
- data/vendor/v8/src/hashmap.h +3 -3
- data/vendor/v8/src/heap-inl.h +141 -25
- data/vendor/v8/src/heap-profiler.cc +117 -63
- data/vendor/v8/src/heap-profiler.h +38 -21
- data/vendor/v8/src/heap.cc +805 -564
- data/vendor/v8/src/heap.h +640 -594
- data/vendor/v8/src/hydrogen-instructions.cc +216 -73
- data/vendor/v8/src/hydrogen-instructions.h +259 -124
- data/vendor/v8/src/hydrogen.cc +996 -1171
- data/vendor/v8/src/hydrogen.h +163 -144
- data/vendor/v8/src/ia32/assembler-ia32-inl.h +12 -11
- data/vendor/v8/src/ia32/assembler-ia32.cc +85 -39
- data/vendor/v8/src/ia32/assembler-ia32.h +82 -16
- data/vendor/v8/src/ia32/builtins-ia32.cc +64 -58
- data/vendor/v8/src/ia32/code-stubs-ia32.cc +248 -324
- data/vendor/v8/src/ia32/code-stubs-ia32.h +3 -44
- data/vendor/v8/src/ia32/codegen-ia32.cc +217 -165
- data/vendor/v8/src/ia32/codegen-ia32.h +3 -0
- data/vendor/v8/src/ia32/cpu-ia32.cc +6 -5
- data/vendor/v8/src/ia32/debug-ia32.cc +8 -5
- data/vendor/v8/src/ia32/deoptimizer-ia32.cc +124 -14
- data/vendor/v8/src/ia32/disasm-ia32.cc +85 -62
- data/vendor/v8/src/ia32/frames-ia32.h +1 -1
- data/vendor/v8/src/ia32/full-codegen-ia32.cc +348 -435
- data/vendor/v8/src/ia32/ic-ia32.cc +91 -91
- data/vendor/v8/src/ia32/lithium-codegen-ia32.cc +500 -255
- data/vendor/v8/src/ia32/lithium-codegen-ia32.h +13 -4
- data/vendor/v8/src/ia32/lithium-gap-resolver-ia32.cc +6 -0
- data/vendor/v8/src/ia32/lithium-ia32.cc +122 -45
- data/vendor/v8/src/ia32/lithium-ia32.h +128 -41
- data/vendor/v8/src/ia32/macro-assembler-ia32.cc +109 -84
- data/vendor/v8/src/ia32/macro-assembler-ia32.h +18 -9
- data/vendor/v8/src/ia32/regexp-macro-assembler-ia32.cc +26 -15
- data/vendor/v8/src/ia32/regexp-macro-assembler-ia32.h +1 -0
- data/vendor/v8/src/ia32/register-allocator-ia32.cc +30 -30
- data/vendor/v8/src/ia32/simulator-ia32.h +4 -4
- data/vendor/v8/src/ia32/stub-cache-ia32.cc +383 -400
- data/vendor/v8/src/ia32/virtual-frame-ia32.cc +36 -13
- data/vendor/v8/src/ia32/virtual-frame-ia32.h +11 -5
- data/vendor/v8/src/ic-inl.h +12 -2
- data/vendor/v8/src/ic.cc +304 -221
- data/vendor/v8/src/ic.h +115 -58
- data/vendor/v8/src/interpreter-irregexp.cc +25 -21
- data/vendor/v8/src/interpreter-irregexp.h +2 -1
- data/vendor/v8/src/isolate.cc +883 -0
- data/vendor/v8/src/isolate.h +1304 -0
- data/vendor/v8/src/json.js +10 -10
- data/vendor/v8/src/jsregexp.cc +111 -80
- data/vendor/v8/src/jsregexp.h +6 -7
- data/vendor/v8/src/jump-target-heavy.cc +5 -8
- data/vendor/v8/src/jump-target-heavy.h +0 -6
- data/vendor/v8/src/jump-target-inl.h +1 -1
- data/vendor/v8/src/jump-target-light.cc +3 -3
- data/vendor/v8/src/lithium-allocator-inl.h +2 -0
- data/vendor/v8/src/lithium-allocator.cc +42 -30
- data/vendor/v8/src/lithium-allocator.h +8 -22
- data/vendor/v8/src/lithium.cc +1 -0
- data/vendor/v8/src/liveedit.cc +141 -99
- data/vendor/v8/src/liveedit.h +7 -2
- data/vendor/v8/src/liveobjectlist-inl.h +90 -0
- data/vendor/v8/src/liveobjectlist.cc +2537 -1
- data/vendor/v8/src/liveobjectlist.h +245 -35
- data/vendor/v8/src/log-utils.cc +122 -35
- data/vendor/v8/src/log-utils.h +33 -36
- data/vendor/v8/src/log.cc +299 -241
- data/vendor/v8/src/log.h +177 -110
- data/vendor/v8/src/mark-compact.cc +612 -470
- data/vendor/v8/src/mark-compact.h +153 -80
- data/vendor/v8/src/messages.cc +16 -14
- data/vendor/v8/src/messages.js +30 -7
- data/vendor/v8/src/mips/assembler-mips-inl.h +155 -35
- data/vendor/v8/src/mips/assembler-mips.cc +1093 -219
- data/vendor/v8/src/mips/assembler-mips.h +552 -153
- data/vendor/v8/src/mips/builtins-mips.cc +43 -100
- data/vendor/v8/src/mips/code-stubs-mips.cc +752 -0
- data/vendor/v8/src/mips/code-stubs-mips.h +511 -0
- data/vendor/v8/src/mips/codegen-mips-inl.h +8 -14
- data/vendor/v8/src/mips/codegen-mips.cc +672 -896
- data/vendor/v8/src/mips/codegen-mips.h +271 -69
- data/vendor/v8/src/mips/constants-mips.cc +44 -20
- data/vendor/v8/src/mips/constants-mips.h +238 -40
- data/vendor/v8/src/mips/cpu-mips.cc +20 -3
- data/vendor/v8/src/mips/debug-mips.cc +35 -7
- data/vendor/v8/src/mips/deoptimizer-mips.cc +91 -0
- data/vendor/v8/src/mips/disasm-mips.cc +329 -93
- data/vendor/v8/src/mips/frames-mips.cc +2 -50
- data/vendor/v8/src/mips/frames-mips.h +24 -9
- data/vendor/v8/src/mips/full-codegen-mips.cc +473 -23
- data/vendor/v8/src/mips/ic-mips.cc +81 -45
- data/vendor/v8/src/mips/jump-target-mips.cc +11 -106
- data/vendor/v8/src/mips/lithium-codegen-mips.h +65 -0
- data/vendor/v8/src/mips/lithium-mips.h +304 -0
- data/vendor/v8/src/mips/macro-assembler-mips.cc +2391 -390
- data/vendor/v8/src/mips/macro-assembler-mips.h +718 -121
- data/vendor/v8/src/mips/regexp-macro-assembler-mips.cc +478 -0
- data/vendor/v8/src/mips/regexp-macro-assembler-mips.h +250 -0
- data/vendor/v8/src/mips/register-allocator-mips-inl.h +0 -3
- data/vendor/v8/src/mips/register-allocator-mips.h +3 -2
- data/vendor/v8/src/mips/simulator-mips.cc +1009 -221
- data/vendor/v8/src/mips/simulator-mips.h +119 -36
- data/vendor/v8/src/mips/stub-cache-mips.cc +331 -148
- data/vendor/v8/src/mips/{fast-codegen-mips.cc → virtual-frame-mips-inl.h} +11 -30
- data/vendor/v8/src/mips/virtual-frame-mips.cc +137 -149
- data/vendor/v8/src/mips/virtual-frame-mips.h +294 -312
- data/vendor/v8/src/mirror-debugger.js +9 -8
- data/vendor/v8/src/mksnapshot.cc +2 -2
- data/vendor/v8/src/objects-debug.cc +16 -16
- data/vendor/v8/src/objects-inl.h +421 -195
- data/vendor/v8/src/objects-printer.cc +7 -7
- data/vendor/v8/src/objects-visiting.cc +1 -1
- data/vendor/v8/src/objects-visiting.h +33 -12
- data/vendor/v8/src/objects.cc +935 -658
- data/vendor/v8/src/objects.h +234 -139
- data/vendor/v8/src/parser.cc +484 -439
- data/vendor/v8/src/parser.h +35 -14
- data/vendor/v8/src/platform-cygwin.cc +173 -107
- data/vendor/v8/src/platform-freebsd.cc +224 -72
- data/vendor/v8/src/platform-linux.cc +234 -95
- data/vendor/v8/src/platform-macos.cc +215 -82
- data/vendor/v8/src/platform-nullos.cc +9 -3
- data/vendor/v8/src/platform-openbsd.cc +22 -7
- data/vendor/v8/src/platform-posix.cc +30 -5
- data/vendor/v8/src/platform-solaris.cc +120 -38
- data/vendor/v8/src/platform-tls-mac.h +62 -0
- data/vendor/v8/src/platform-tls-win32.h +62 -0
- data/vendor/v8/src/platform-tls.h +50 -0
- data/vendor/v8/src/platform-win32.cc +195 -97
- data/vendor/v8/src/platform.h +72 -15
- data/vendor/v8/src/preparse-data.cc +2 -0
- data/vendor/v8/src/preparser-api.cc +8 -2
- data/vendor/v8/src/preparser.cc +1 -1
- data/vendor/v8/src/prettyprinter.cc +43 -52
- data/vendor/v8/src/prettyprinter.h +1 -1
- data/vendor/v8/src/profile-generator-inl.h +0 -28
- data/vendor/v8/src/profile-generator.cc +942 -685
- data/vendor/v8/src/profile-generator.h +210 -176
- data/vendor/v8/src/property.cc +6 -0
- data/vendor/v8/src/property.h +14 -3
- data/vendor/v8/src/regexp-macro-assembler-irregexp.cc +1 -1
- data/vendor/v8/src/regexp-macro-assembler.cc +28 -19
- data/vendor/v8/src/regexp-macro-assembler.h +11 -6
- data/vendor/v8/src/regexp-stack.cc +18 -10
- data/vendor/v8/src/regexp-stack.h +45 -21
- data/vendor/v8/src/regexp.js +3 -3
- data/vendor/v8/src/register-allocator-inl.h +3 -3
- data/vendor/v8/src/register-allocator.cc +1 -7
- data/vendor/v8/src/register-allocator.h +5 -15
- data/vendor/v8/src/rewriter.cc +2 -1
- data/vendor/v8/src/runtime-profiler.cc +158 -128
- data/vendor/v8/src/runtime-profiler.h +131 -15
- data/vendor/v8/src/runtime.cc +2409 -1692
- data/vendor/v8/src/runtime.h +93 -17
- data/vendor/v8/src/safepoint-table.cc +3 -0
- data/vendor/v8/src/safepoint-table.h +9 -3
- data/vendor/v8/src/scanner-base.cc +21 -28
- data/vendor/v8/src/scanner-base.h +22 -11
- data/vendor/v8/src/scanner.cc +3 -5
- data/vendor/v8/src/scanner.h +4 -2
- data/vendor/v8/src/scopeinfo.cc +11 -16
- data/vendor/v8/src/scopeinfo.h +26 -15
- data/vendor/v8/src/scopes.cc +67 -37
- data/vendor/v8/src/scopes.h +26 -12
- data/vendor/v8/src/serialize.cc +193 -154
- data/vendor/v8/src/serialize.h +41 -36
- data/vendor/v8/src/small-pointer-list.h +163 -0
- data/vendor/v8/src/snapshot-common.cc +1 -1
- data/vendor/v8/src/snapshot.h +3 -1
- data/vendor/v8/src/spaces-inl.h +30 -25
- data/vendor/v8/src/spaces.cc +263 -370
- data/vendor/v8/src/spaces.h +178 -166
- data/vendor/v8/src/string-search.cc +4 -3
- data/vendor/v8/src/string-search.h +21 -20
- data/vendor/v8/src/string-stream.cc +32 -24
- data/vendor/v8/src/string.js +7 -7
- data/vendor/v8/src/stub-cache.cc +324 -248
- data/vendor/v8/src/stub-cache.h +181 -155
- data/vendor/v8/src/token.cc +3 -3
- data/vendor/v8/src/token.h +3 -3
- data/vendor/v8/src/top.cc +218 -390
- data/vendor/v8/src/type-info.cc +98 -32
- data/vendor/v8/src/type-info.h +10 -3
- data/vendor/v8/src/unicode.cc +1 -1
- data/vendor/v8/src/unicode.h +1 -1
- data/vendor/v8/src/utils.h +3 -0
- data/vendor/v8/src/v8-counters.cc +18 -11
- data/vendor/v8/src/v8-counters.h +34 -13
- data/vendor/v8/src/v8.cc +66 -121
- data/vendor/v8/src/v8.h +7 -4
- data/vendor/v8/src/v8globals.h +18 -12
- data/vendor/v8/src/{memory.h → v8memory.h} +0 -0
- data/vendor/v8/src/v8natives.js +59 -18
- data/vendor/v8/src/v8threads.cc +127 -114
- data/vendor/v8/src/v8threads.h +42 -35
- data/vendor/v8/src/v8utils.h +2 -39
- data/vendor/v8/src/variables.h +1 -1
- data/vendor/v8/src/version.cc +26 -5
- data/vendor/v8/src/version.h +4 -0
- data/vendor/v8/src/virtual-frame-heavy-inl.h +2 -4
- data/vendor/v8/src/virtual-frame-light-inl.h +5 -4
- data/vendor/v8/src/vm-state-inl.h +21 -17
- data/vendor/v8/src/vm-state.h +7 -5
- data/vendor/v8/src/win32-headers.h +1 -0
- data/vendor/v8/src/x64/assembler-x64-inl.h +12 -11
- data/vendor/v8/src/x64/assembler-x64.cc +80 -40
- data/vendor/v8/src/x64/assembler-x64.h +67 -17
- data/vendor/v8/src/x64/builtins-x64.cc +34 -33
- data/vendor/v8/src/x64/code-stubs-x64.cc +636 -377
- data/vendor/v8/src/x64/code-stubs-x64.h +14 -48
- data/vendor/v8/src/x64/codegen-x64-inl.h +1 -1
- data/vendor/v8/src/x64/codegen-x64.cc +158 -136
- data/vendor/v8/src/x64/codegen-x64.h +4 -1
- data/vendor/v8/src/x64/cpu-x64.cc +7 -5
- data/vendor/v8/src/x64/debug-x64.cc +8 -6
- data/vendor/v8/src/x64/deoptimizer-x64.cc +195 -20
- data/vendor/v8/src/x64/disasm-x64.cc +42 -23
- data/vendor/v8/src/x64/frames-x64.cc +1 -1
- data/vendor/v8/src/x64/frames-x64.h +2 -2
- data/vendor/v8/src/x64/full-codegen-x64.cc +780 -218
- data/vendor/v8/src/x64/ic-x64.cc +77 -79
- data/vendor/v8/src/x64/jump-target-x64.cc +1 -1
- data/vendor/v8/src/x64/lithium-codegen-x64.cc +698 -181
- data/vendor/v8/src/x64/lithium-codegen-x64.h +31 -6
- data/vendor/v8/src/x64/lithium-x64.cc +136 -54
- data/vendor/v8/src/x64/lithium-x64.h +142 -51
- data/vendor/v8/src/x64/macro-assembler-x64.cc +456 -187
- data/vendor/v8/src/x64/macro-assembler-x64.h +166 -34
- data/vendor/v8/src/x64/regexp-macro-assembler-x64.cc +44 -28
- data/vendor/v8/src/x64/regexp-macro-assembler-x64.h +8 -4
- data/vendor/v8/src/x64/register-allocator-x64-inl.h +3 -3
- data/vendor/v8/src/x64/register-allocator-x64.cc +12 -8
- data/vendor/v8/src/x64/simulator-x64.h +5 -5
- data/vendor/v8/src/x64/stub-cache-x64.cc +299 -344
- data/vendor/v8/src/x64/virtual-frame-x64.cc +37 -13
- data/vendor/v8/src/x64/virtual-frame-x64.h +13 -7
- data/vendor/v8/src/zone-inl.h +49 -3
- data/vendor/v8/src/zone.cc +42 -41
- data/vendor/v8/src/zone.h +37 -34
- data/vendor/v8/test/benchmarks/testcfg.py +100 -0
- data/vendor/v8/test/cctest/SConscript +5 -4
- data/vendor/v8/test/cctest/cctest.h +3 -2
- data/vendor/v8/test/cctest/cctest.status +6 -11
- data/vendor/v8/test/cctest/test-accessors.cc +3 -3
- data/vendor/v8/test/cctest/test-alloc.cc +39 -33
- data/vendor/v8/test/cctest/test-api.cc +1092 -205
- data/vendor/v8/test/cctest/test-assembler-arm.cc +39 -25
- data/vendor/v8/test/cctest/test-assembler-ia32.cc +36 -37
- data/vendor/v8/test/cctest/test-assembler-mips.cc +1098 -40
- data/vendor/v8/test/cctest/test-assembler-x64.cc +32 -25
- data/vendor/v8/test/cctest/test-ast.cc +1 -0
- data/vendor/v8/test/cctest/test-circular-queue.cc +8 -5
- data/vendor/v8/test/cctest/test-compiler.cc +24 -24
- data/vendor/v8/test/cctest/test-cpu-profiler.cc +140 -5
- data/vendor/v8/test/cctest/test-dataflow.cc +1 -0
- data/vendor/v8/test/cctest/test-debug.cc +136 -77
- data/vendor/v8/test/cctest/test-decls.cc +1 -1
- data/vendor/v8/test/cctest/test-deoptimization.cc +25 -24
- data/vendor/v8/test/cctest/test-disasm-arm.cc +9 -4
- data/vendor/v8/test/cctest/test-disasm-ia32.cc +10 -8
- data/vendor/v8/test/cctest/test-func-name-inference.cc +10 -4
- data/vendor/v8/test/cctest/test-heap-profiler.cc +226 -164
- data/vendor/v8/test/cctest/test-heap.cc +240 -217
- data/vendor/v8/test/cctest/test-liveedit.cc +1 -0
- data/vendor/v8/test/cctest/test-log-stack-tracer.cc +18 -20
- data/vendor/v8/test/cctest/test-log.cc +114 -108
- data/vendor/v8/test/cctest/test-macro-assembler-x64.cc +247 -177
- data/vendor/v8/test/cctest/test-mark-compact.cc +129 -90
- data/vendor/v8/test/cctest/test-parsing.cc +15 -14
- data/vendor/v8/test/cctest/test-platform-linux.cc +1 -0
- data/vendor/v8/test/cctest/test-platform-tls.cc +66 -0
- data/vendor/v8/test/cctest/test-platform-win32.cc +1 -0
- data/vendor/v8/test/cctest/test-profile-generator.cc +1 -1
- data/vendor/v8/test/cctest/test-regexp.cc +53 -41
- data/vendor/v8/test/cctest/test-reloc-info.cc +18 -11
- data/vendor/v8/test/cctest/test-serialize.cc +44 -43
- data/vendor/v8/test/cctest/test-sockets.cc +8 -3
- data/vendor/v8/test/cctest/test-spaces.cc +47 -29
- data/vendor/v8/test/cctest/test-strings.cc +20 -20
- data/vendor/v8/test/cctest/test-thread-termination.cc +8 -3
- data/vendor/v8/test/cctest/test-threads.cc +5 -3
- data/vendor/v8/test/cctest/test-utils.cc +5 -4
- data/vendor/v8/test/cctest/testcfg.py +7 -3
- data/vendor/v8/test/es5conform/es5conform.status +2 -77
- data/vendor/v8/test/es5conform/testcfg.py +1 -1
- data/vendor/v8/test/message/testcfg.py +1 -1
- data/vendor/v8/test/mjsunit/accessors-on-global-object.js +3 -3
- data/vendor/v8/test/mjsunit/array-concat.js +43 -1
- data/vendor/v8/test/mjsunit/array-join.js +25 -0
- data/vendor/v8/test/mjsunit/bitops-info.js +7 -1
- data/vendor/v8/test/mjsunit/compiler/array-length.js +2 -2
- data/vendor/v8/test/mjsunit/compiler/global-accessors.js +47 -0
- data/vendor/v8/test/mjsunit/compiler/pic.js +1 -1
- data/vendor/v8/test/mjsunit/compiler/regress-loadfield.js +65 -0
- data/vendor/v8/test/mjsunit/math-sqrt.js +5 -1
- data/vendor/v8/test/mjsunit/mjsunit.js +59 -8
- data/vendor/v8/test/mjsunit/mjsunit.status +0 -12
- data/vendor/v8/test/mjsunit/mul-exhaustive.js +129 -11
- data/vendor/v8/test/mjsunit/negate-zero.js +1 -1
- data/vendor/v8/test/mjsunit/object-freeze.js +5 -13
- data/vendor/v8/test/mjsunit/object-prevent-extensions.js +9 -50
- data/vendor/v8/test/mjsunit/object-seal.js +4 -13
- data/vendor/v8/test/mjsunit/override-eval-with-non-function.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-1145.js +54 -0
- data/vendor/v8/test/mjsunit/regress/regress-1172-bis.js +37 -0
- data/vendor/v8/test/mjsunit/regress/regress-1181.js +54 -0
- data/vendor/v8/test/mjsunit/regress/regress-1207.js +35 -0
- data/vendor/v8/test/mjsunit/regress/regress-1209.js +34 -0
- data/vendor/v8/test/mjsunit/regress/regress-1210.js +48 -0
- data/vendor/v8/test/mjsunit/regress/regress-1213.js +43 -0
- data/vendor/v8/test/mjsunit/regress/regress-1218.js +29 -0
- data/vendor/v8/test/mjsunit/regress/regress-1229.js +79 -0
- data/vendor/v8/test/mjsunit/regress/regress-1233.js +47 -0
- data/vendor/v8/test/mjsunit/regress/regress-1236.js +34 -0
- data/vendor/v8/test/mjsunit/regress/regress-1237.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-1240.js +39 -0
- data/vendor/v8/test/mjsunit/regress/regress-1257.js +58 -0
- data/vendor/v8/test/mjsunit/regress/regress-1278.js +69 -0
- data/vendor/v8/test/mjsunit/regress/regress-create-exception.js +1 -0
- data/vendor/v8/test/mjsunit/regress/regress-lazy-deopt-reloc.js +52 -0
- data/vendor/v8/test/mjsunit/sin-cos.js +15 -10
- data/vendor/v8/test/mjsunit/smi-negative-zero.js +2 -2
- data/vendor/v8/test/mjsunit/str-to-num.js +1 -1
- data/vendor/v8/test/mjsunit/strict-mode.js +435 -0
- data/vendor/v8/test/mjsunit/testcfg.py +23 -6
- data/vendor/v8/test/mozilla/mozilla.status +0 -2
- data/vendor/v8/test/mozilla/testcfg.py +1 -1
- data/vendor/v8/test/preparser/empty.js +28 -0
- data/vendor/v8/test/preparser/functions-only.js +38 -0
- data/vendor/v8/test/preparser/non-alphanum.js +34 -0
- data/vendor/v8/test/preparser/symbols-only.js +49 -0
- data/vendor/v8/test/preparser/testcfg.py +90 -0
- data/vendor/v8/test/sputnik/testcfg.py +1 -1
- data/vendor/v8/test/test262/README +16 -0
- data/vendor/v8/test/test262/harness-adapt.js +80 -0
- data/vendor/v8/test/test262/test262.status +1506 -0
- data/vendor/v8/test/test262/testcfg.py +123 -0
- data/vendor/v8/tools/freebsd-tick-processor +10 -0
- data/vendor/v8/tools/gyp/v8.gyp +8 -33
- data/vendor/v8/tools/linux-tick-processor +5 -3
- data/vendor/v8/tools/test.py +37 -14
- data/vendor/v8/tools/tickprocessor.js +22 -8
- data/vendor/v8/tools/visual_studio/v8_base.vcproj +13 -1
- data/vendor/v8/tools/visual_studio/v8_base_arm.vcproj +5 -1
- data/vendor/v8/tools/visual_studio/v8_base_x64.vcproj +5 -1
- data/vendor/v8/tools/visual_studio/x64.vsprops +1 -0
- metadata +1495 -1341
- data/ext/extconf.rb +0 -22
- data/ext/mustang.cpp +0 -58
- data/vendor/v8/src/top.h +0 -608
@@ -0,0 +1,66 @@
|
|
1
|
+
// Copyright 2011 the V8 project authors. All rights reserved.
|
2
|
+
//
|
3
|
+
// Tests of fast TLS support.
|
4
|
+
|
5
|
+
#include "v8.h"
|
6
|
+
|
7
|
+
#include "cctest.h"
|
8
|
+
#include "checks.h"
|
9
|
+
#include "platform.h"
|
10
|
+
|
11
|
+
using v8::internal::Thread;
|
12
|
+
|
13
|
+
static const int kValueCount = 128;
|
14
|
+
|
15
|
+
static Thread::LocalStorageKey keys[kValueCount];
|
16
|
+
|
17
|
+
static void* GetValue(int num) {
|
18
|
+
return reinterpret_cast<void*>(static_cast<intptr_t>(num + 1));
|
19
|
+
}
|
20
|
+
|
21
|
+
static void DoTest() {
|
22
|
+
for (int i = 0; i < kValueCount; i++) {
|
23
|
+
CHECK(!Thread::HasThreadLocal(keys[i]));
|
24
|
+
}
|
25
|
+
for (int i = 0; i < kValueCount; i++) {
|
26
|
+
Thread::SetThreadLocal(keys[i], GetValue(i));
|
27
|
+
}
|
28
|
+
for (int i = 0; i < kValueCount; i++) {
|
29
|
+
CHECK(Thread::HasThreadLocal(keys[i]));
|
30
|
+
}
|
31
|
+
for (int i = 0; i < kValueCount; i++) {
|
32
|
+
CHECK_EQ(GetValue(i), Thread::GetThreadLocal(keys[i]));
|
33
|
+
CHECK_EQ(GetValue(i), Thread::GetExistingThreadLocal(keys[i]));
|
34
|
+
}
|
35
|
+
for (int i = 0; i < kValueCount; i++) {
|
36
|
+
Thread::SetThreadLocal(keys[i], GetValue(kValueCount - i - 1));
|
37
|
+
}
|
38
|
+
for (int i = 0; i < kValueCount; i++) {
|
39
|
+
CHECK(Thread::HasThreadLocal(keys[i]));
|
40
|
+
}
|
41
|
+
for (int i = 0; i < kValueCount; i++) {
|
42
|
+
CHECK_EQ(GetValue(kValueCount - i - 1),
|
43
|
+
Thread::GetThreadLocal(keys[i]));
|
44
|
+
CHECK_EQ(GetValue(kValueCount - i - 1),
|
45
|
+
Thread::GetExistingThreadLocal(keys[i]));
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
class TestThread : public Thread {
|
50
|
+
public:
|
51
|
+
TestThread() : Thread(NULL, "TestThread") {}
|
52
|
+
|
53
|
+
virtual void Run() {
|
54
|
+
DoTest();
|
55
|
+
}
|
56
|
+
};
|
57
|
+
|
58
|
+
TEST(FastTLS) {
|
59
|
+
for (int i = 0; i < kValueCount; i++) {
|
60
|
+
keys[i] = Thread::CreateThreadLocalKey();
|
61
|
+
}
|
62
|
+
DoTest();
|
63
|
+
TestThread thread;
|
64
|
+
thread.Start();
|
65
|
+
thread.Join();
|
66
|
+
}
|
@@ -56,7 +56,7 @@ TEST(TokenEnumerator) {
|
|
56
56
|
CHECK_EQ(0, te.GetTokenId(*v8::Utils::OpenHandle(*token1)));
|
57
57
|
}
|
58
58
|
CHECK(!i::TokenEnumeratorTester::token_removed(&te)->at(2));
|
59
|
-
|
59
|
+
HEAP->CollectAllGarbage(false);
|
60
60
|
CHECK(i::TokenEnumeratorTester::token_removed(&te)->at(2));
|
61
61
|
CHECK_EQ(1, te.GetTokenId(*v8::Utils::OpenHandle(*token2)));
|
62
62
|
CHECK_EQ(0, te.GetTokenId(*v8::Utils::OpenHandle(*token1)));
|
@@ -45,6 +45,10 @@
|
|
45
45
|
#include "arm/macro-assembler-arm.h"
|
46
46
|
#include "arm/regexp-macro-assembler-arm.h"
|
47
47
|
#endif
|
48
|
+
#ifdef V8_TARGET_ARCH_MIPS
|
49
|
+
#include "mips/macro-assembler-mips.h"
|
50
|
+
#include "mips/regexp-macro-assembler-mips.h"
|
51
|
+
#endif
|
48
52
|
#ifdef V8_TARGET_ARCH_X64
|
49
53
|
#include "x64/macro-assembler-x64.h"
|
50
54
|
#include "x64/regexp-macro-assembler-x64.h"
|
@@ -62,7 +66,7 @@ static bool CheckParse(const char* input) {
|
|
62
66
|
V8::Initialize(NULL);
|
63
67
|
v8::HandleScope scope;
|
64
68
|
ZoneScope zone_scope(DELETE_ON_EXIT);
|
65
|
-
FlatStringReader reader(CStrVector(input));
|
69
|
+
FlatStringReader reader(Isolate::Current(), CStrVector(input));
|
66
70
|
RegExpCompileData result;
|
67
71
|
return v8::internal::RegExpParser::ParseRegExp(&reader, false, &result);
|
68
72
|
}
|
@@ -72,7 +76,7 @@ static SmartPointer<const char> Parse(const char* input) {
|
|
72
76
|
V8::Initialize(NULL);
|
73
77
|
v8::HandleScope scope;
|
74
78
|
ZoneScope zone_scope(DELETE_ON_EXIT);
|
75
|
-
FlatStringReader reader(CStrVector(input));
|
79
|
+
FlatStringReader reader(Isolate::Current(), CStrVector(input));
|
76
80
|
RegExpCompileData result;
|
77
81
|
CHECK(v8::internal::RegExpParser::ParseRegExp(&reader, false, &result));
|
78
82
|
CHECK(result.tree != NULL);
|
@@ -86,7 +90,7 @@ static bool CheckSimple(const char* input) {
|
|
86
90
|
v8::HandleScope scope;
|
87
91
|
unibrow::Utf8InputBuffer<> buffer(input, StrLength(input));
|
88
92
|
ZoneScope zone_scope(DELETE_ON_EXIT);
|
89
|
-
FlatStringReader reader(CStrVector(input));
|
93
|
+
FlatStringReader reader(Isolate::Current(), CStrVector(input));
|
90
94
|
RegExpCompileData result;
|
91
95
|
CHECK(v8::internal::RegExpParser::ParseRegExp(&reader, false, &result));
|
92
96
|
CHECK(result.tree != NULL);
|
@@ -104,7 +108,7 @@ static MinMaxPair CheckMinMaxMatch(const char* input) {
|
|
104
108
|
v8::HandleScope scope;
|
105
109
|
unibrow::Utf8InputBuffer<> buffer(input, StrLength(input));
|
106
110
|
ZoneScope zone_scope(DELETE_ON_EXIT);
|
107
|
-
FlatStringReader reader(CStrVector(input));
|
111
|
+
FlatStringReader reader(Isolate::Current(), CStrVector(input));
|
108
112
|
RegExpCompileData result;
|
109
113
|
CHECK(v8::internal::RegExpParser::ParseRegExp(&reader, false, &result));
|
110
114
|
CHECK(result.tree != NULL);
|
@@ -375,7 +379,7 @@ static void ExpectError(const char* input,
|
|
375
379
|
V8::Initialize(NULL);
|
376
380
|
v8::HandleScope scope;
|
377
381
|
ZoneScope zone_scope(DELETE_ON_EXIT);
|
378
|
-
FlatStringReader reader(CStrVector(input));
|
382
|
+
FlatStringReader reader(Isolate::Current(), CStrVector(input));
|
379
383
|
RegExpCompileData result;
|
380
384
|
CHECK(!v8::internal::RegExpParser::ParseRegExp(&reader, false, &result));
|
381
385
|
CHECK(result.tree == NULL);
|
@@ -471,6 +475,7 @@ static void TestCharacterClassEscapes(uc16 c, bool (pred)(uc16 c)) {
|
|
471
475
|
|
472
476
|
|
473
477
|
TEST(CharacterClassEscapes) {
|
478
|
+
v8::internal::V8::Initialize(NULL);
|
474
479
|
TestCharacterClassEscapes('.', IsRegExpNewline);
|
475
480
|
TestCharacterClassEscapes('d', IsDigit);
|
476
481
|
TestCharacterClassEscapes('D', NotDigit);
|
@@ -483,12 +488,12 @@ TEST(CharacterClassEscapes) {
|
|
483
488
|
|
484
489
|
static RegExpNode* Compile(const char* input, bool multiline, bool is_ascii) {
|
485
490
|
V8::Initialize(NULL);
|
486
|
-
FlatStringReader reader(CStrVector(input));
|
491
|
+
FlatStringReader reader(Isolate::Current(), CStrVector(input));
|
487
492
|
RegExpCompileData compile_data;
|
488
493
|
if (!v8::internal::RegExpParser::ParseRegExp(&reader, multiline,
|
489
494
|
&compile_data))
|
490
495
|
return NULL;
|
491
|
-
Handle<String> pattern =
|
496
|
+
Handle<String> pattern = FACTORY->NewStringFromUtf8(CStrVector(input));
|
492
497
|
RegExpEngine::Compile(&compile_data, false, multiline, pattern, is_ascii);
|
493
498
|
return compile_data.node;
|
494
499
|
}
|
@@ -538,6 +543,7 @@ static unsigned PseudoRandom(int i, int j) {
|
|
538
543
|
|
539
544
|
|
540
545
|
TEST(SplayTreeSimple) {
|
546
|
+
v8::internal::V8::Initialize(NULL);
|
541
547
|
static const unsigned kLimit = 1000;
|
542
548
|
ZoneScope zone_scope(DELETE_ON_EXIT);
|
543
549
|
ZoneSplayTree<TestConfig> tree;
|
@@ -590,6 +596,7 @@ TEST(SplayTreeSimple) {
|
|
590
596
|
|
591
597
|
|
592
598
|
TEST(DispatchTableConstruction) {
|
599
|
+
v8::internal::V8::Initialize(NULL);
|
593
600
|
// Initialize test data.
|
594
601
|
static const int kLimit = 1000;
|
595
602
|
static const int kRangeCount = 8;
|
@@ -667,13 +674,13 @@ typedef RegExpMacroAssemblerX64 ArchRegExpMacroAssembler;
|
|
667
674
|
#elif V8_TARGET_ARCH_ARM
|
668
675
|
typedef RegExpMacroAssemblerARM ArchRegExpMacroAssembler;
|
669
676
|
#elif V8_TARGET_ARCH_MIPS
|
670
|
-
typedef
|
677
|
+
typedef RegExpMacroAssemblerMIPS ArchRegExpMacroAssembler;
|
671
678
|
#endif
|
672
679
|
|
673
680
|
class ContextInitializer {
|
674
681
|
public:
|
675
682
|
ContextInitializer()
|
676
|
-
: env_(), scope_(), zone_(DELETE_ON_EXIT)
|
683
|
+
: env_(), scope_(), zone_(DELETE_ON_EXIT) {
|
677
684
|
env_ = v8::Context::New();
|
678
685
|
env_->Enter();
|
679
686
|
}
|
@@ -685,7 +692,6 @@ class ContextInitializer {
|
|
685
692
|
v8::Persistent<v8::Context> env_;
|
686
693
|
v8::HandleScope scope_;
|
687
694
|
v8::internal::ZoneScope zone_;
|
688
|
-
v8::internal::StackGuard stack_guard_;
|
689
695
|
};
|
690
696
|
|
691
697
|
|
@@ -701,7 +707,8 @@ static ArchRegExpMacroAssembler::Result Execute(Code* code,
|
|
701
707
|
start_offset,
|
702
708
|
input_start,
|
703
709
|
input_end,
|
704
|
-
captures
|
710
|
+
captures,
|
711
|
+
Isolate::Current());
|
705
712
|
}
|
706
713
|
|
707
714
|
|
@@ -713,12 +720,12 @@ TEST(MacroAssemblerNativeSuccess) {
|
|
713
720
|
|
714
721
|
m.Succeed();
|
715
722
|
|
716
|
-
Handle<String> source =
|
723
|
+
Handle<String> source = FACTORY->NewStringFromAscii(CStrVector(""));
|
717
724
|
Handle<Object> code_object = m.GetCode(source);
|
718
725
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
719
726
|
|
720
727
|
int captures[4] = {42, 37, 87, 117};
|
721
|
-
Handle<String> input =
|
728
|
+
Handle<String> input = FACTORY->NewStringFromAscii(CStrVector("foofoo"));
|
722
729
|
Handle<SeqAsciiString> seq_input = Handle<SeqAsciiString>::cast(input);
|
723
730
|
const byte* start_adr =
|
724
731
|
reinterpret_cast<const byte*>(seq_input->GetCharsAddress());
|
@@ -757,12 +764,12 @@ TEST(MacroAssemblerNativeSimple) {
|
|
757
764
|
m.Bind(&fail);
|
758
765
|
m.Fail();
|
759
766
|
|
760
|
-
Handle<String> source =
|
767
|
+
Handle<String> source = FACTORY->NewStringFromAscii(CStrVector("^foo"));
|
761
768
|
Handle<Object> code_object = m.GetCode(source);
|
762
769
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
763
770
|
|
764
771
|
int captures[4] = {42, 37, 87, 117};
|
765
|
-
Handle<String> input =
|
772
|
+
Handle<String> input = FACTORY->NewStringFromAscii(CStrVector("foofoo"));
|
766
773
|
Handle<SeqAsciiString> seq_input = Handle<SeqAsciiString>::cast(input);
|
767
774
|
Address start_adr = seq_input->GetCharsAddress();
|
768
775
|
|
@@ -780,7 +787,7 @@ TEST(MacroAssemblerNativeSimple) {
|
|
780
787
|
CHECK_EQ(-1, captures[2]);
|
781
788
|
CHECK_EQ(-1, captures[3]);
|
782
789
|
|
783
|
-
input =
|
790
|
+
input = FACTORY->NewStringFromAscii(CStrVector("barbarbar"));
|
784
791
|
seq_input = Handle<SeqAsciiString>::cast(input);
|
785
792
|
start_adr = seq_input->GetCharsAddress();
|
786
793
|
|
@@ -813,14 +820,14 @@ TEST(MacroAssemblerNativeSimpleUC16) {
|
|
813
820
|
m.Bind(&fail);
|
814
821
|
m.Fail();
|
815
822
|
|
816
|
-
Handle<String> source =
|
823
|
+
Handle<String> source = FACTORY->NewStringFromAscii(CStrVector("^foo"));
|
817
824
|
Handle<Object> code_object = m.GetCode(source);
|
818
825
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
819
826
|
|
820
827
|
int captures[4] = {42, 37, 87, 117};
|
821
828
|
const uc16 input_data[6] = {'f', 'o', 'o', 'f', 'o', '\xa0'};
|
822
829
|
Handle<String> input =
|
823
|
-
|
830
|
+
FACTORY->NewStringFromTwoByte(Vector<const uc16>(input_data, 6));
|
824
831
|
Handle<SeqTwoByteString> seq_input = Handle<SeqTwoByteString>::cast(input);
|
825
832
|
Address start_adr = seq_input->GetCharsAddress();
|
826
833
|
|
@@ -839,7 +846,7 @@ TEST(MacroAssemblerNativeSimpleUC16) {
|
|
839
846
|
CHECK_EQ(-1, captures[3]);
|
840
847
|
|
841
848
|
const uc16 input_data2[9] = {'b', 'a', 'r', 'b', 'a', 'r', 'b', 'a', '\xa0'};
|
842
|
-
input =
|
849
|
+
input = FACTORY->NewStringFromTwoByte(Vector<const uc16>(input_data2, 9));
|
843
850
|
seq_input = Handle<SeqTwoByteString>::cast(input);
|
844
851
|
start_adr = seq_input->GetCharsAddress();
|
845
852
|
|
@@ -871,11 +878,11 @@ TEST(MacroAssemblerNativeBacktrack) {
|
|
871
878
|
m.Bind(&backtrack);
|
872
879
|
m.Fail();
|
873
880
|
|
874
|
-
Handle<String> source =
|
881
|
+
Handle<String> source = FACTORY->NewStringFromAscii(CStrVector(".........."));
|
875
882
|
Handle<Object> code_object = m.GetCode(source);
|
876
883
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
877
884
|
|
878
|
-
Handle<String> input =
|
885
|
+
Handle<String> input = FACTORY->NewStringFromAscii(CStrVector("foofoo"));
|
879
886
|
Handle<SeqAsciiString> seq_input = Handle<SeqAsciiString>::cast(input);
|
880
887
|
Address start_adr = seq_input->GetCharsAddress();
|
881
888
|
|
@@ -912,11 +919,11 @@ TEST(MacroAssemblerNativeBackReferenceASCII) {
|
|
912
919
|
m.Bind(&missing_match);
|
913
920
|
m.Fail();
|
914
921
|
|
915
|
-
Handle<String> source =
|
922
|
+
Handle<String> source = FACTORY->NewStringFromAscii(CStrVector("^(..)..\1"));
|
916
923
|
Handle<Object> code_object = m.GetCode(source);
|
917
924
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
918
925
|
|
919
|
-
Handle<String> input =
|
926
|
+
Handle<String> input = FACTORY->NewStringFromAscii(CStrVector("fooofo"));
|
920
927
|
Handle<SeqAsciiString> seq_input = Handle<SeqAsciiString>::cast(input);
|
921
928
|
Address start_adr = seq_input->GetCharsAddress();
|
922
929
|
|
@@ -958,13 +965,13 @@ TEST(MacroAssemblerNativeBackReferenceUC16) {
|
|
958
965
|
m.Bind(&missing_match);
|
959
966
|
m.Fail();
|
960
967
|
|
961
|
-
Handle<String> source =
|
968
|
+
Handle<String> source = FACTORY->NewStringFromAscii(CStrVector("^(..)..\1"));
|
962
969
|
Handle<Object> code_object = m.GetCode(source);
|
963
970
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
964
971
|
|
965
972
|
const uc16 input_data[6] = {'f', 0x2028, 'o', 'o', 'f', 0x2028};
|
966
973
|
Handle<String> input =
|
967
|
-
|
974
|
+
FACTORY->NewStringFromTwoByte(Vector<const uc16>(input_data, 6));
|
968
975
|
Handle<SeqTwoByteString> seq_input = Handle<SeqTwoByteString>::cast(input);
|
969
976
|
Address start_adr = seq_input->GetCharsAddress();
|
970
977
|
|
@@ -1013,11 +1020,11 @@ TEST(MacroAssemblernativeAtStart) {
|
|
1013
1020
|
m.CheckNotCharacter('b', &fail);
|
1014
1021
|
m.Succeed();
|
1015
1022
|
|
1016
|
-
Handle<String> source =
|
1023
|
+
Handle<String> source = FACTORY->NewStringFromAscii(CStrVector("(^f|ob)"));
|
1017
1024
|
Handle<Object> code_object = m.GetCode(source);
|
1018
1025
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
1019
1026
|
|
1020
|
-
Handle<String> input =
|
1027
|
+
Handle<String> input = FACTORY->NewStringFromAscii(CStrVector("foobar"));
|
1021
1028
|
Handle<SeqAsciiString> seq_input = Handle<SeqAsciiString>::cast(input);
|
1022
1029
|
Address start_adr = seq_input->GetCharsAddress();
|
1023
1030
|
|
@@ -1071,12 +1078,12 @@ TEST(MacroAssemblerNativeBackRefNoCase) {
|
|
1071
1078
|
m.Succeed();
|
1072
1079
|
|
1073
1080
|
Handle<String> source =
|
1074
|
-
|
1081
|
+
FACTORY->NewStringFromAscii(CStrVector("^(abc)\1\1(?!\1)...(?!\1)"));
|
1075
1082
|
Handle<Object> code_object = m.GetCode(source);
|
1076
1083
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
1077
1084
|
|
1078
1085
|
Handle<String> input =
|
1079
|
-
|
1086
|
+
FACTORY->NewStringFromAscii(CStrVector("aBcAbCABCxYzab"));
|
1080
1087
|
Handle<SeqAsciiString> seq_input = Handle<SeqAsciiString>::cast(input);
|
1081
1088
|
Address start_adr = seq_input->GetCharsAddress();
|
1082
1089
|
|
@@ -1169,13 +1176,13 @@ TEST(MacroAssemblerNativeRegisters) {
|
|
1169
1176
|
m.Fail();
|
1170
1177
|
|
1171
1178
|
Handle<String> source =
|
1172
|
-
|
1179
|
+
FACTORY->NewStringFromAscii(CStrVector("<loop test>"));
|
1173
1180
|
Handle<Object> code_object = m.GetCode(source);
|
1174
1181
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
1175
1182
|
|
1176
1183
|
// String long enough for test (content doesn't matter).
|
1177
1184
|
Handle<String> input =
|
1178
|
-
|
1185
|
+
FACTORY->NewStringFromAscii(CStrVector("foofoofoofoofoo"));
|
1179
1186
|
Handle<SeqAsciiString> seq_input = Handle<SeqAsciiString>::cast(input);
|
1180
1187
|
Address start_adr = seq_input->GetCharsAddress();
|
1181
1188
|
|
@@ -1210,13 +1217,13 @@ TEST(MacroAssemblerStackOverflow) {
|
|
1210
1217
|
m.GoTo(&loop);
|
1211
1218
|
|
1212
1219
|
Handle<String> source =
|
1213
|
-
|
1220
|
+
FACTORY->NewStringFromAscii(CStrVector("<stack overflow test>"));
|
1214
1221
|
Handle<Object> code_object = m.GetCode(source);
|
1215
1222
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
1216
1223
|
|
1217
1224
|
// String long enough for test (content doesn't matter).
|
1218
1225
|
Handle<String> input =
|
1219
|
-
|
1226
|
+
FACTORY->NewStringFromAscii(CStrVector("dummy"));
|
1220
1227
|
Handle<SeqAsciiString> seq_input = Handle<SeqAsciiString>::cast(input);
|
1221
1228
|
Address start_adr = seq_input->GetCharsAddress();
|
1222
1229
|
|
@@ -1229,8 +1236,8 @@ TEST(MacroAssemblerStackOverflow) {
|
|
1229
1236
|
NULL);
|
1230
1237
|
|
1231
1238
|
CHECK_EQ(NativeRegExpMacroAssembler::EXCEPTION, result);
|
1232
|
-
CHECK(
|
1233
|
-
|
1239
|
+
CHECK(Isolate::Current()->has_pending_exception());
|
1240
|
+
Isolate::Current()->clear_pending_exception();
|
1234
1241
|
}
|
1235
1242
|
|
1236
1243
|
|
@@ -1254,13 +1261,13 @@ TEST(MacroAssemblerNativeLotsOfRegisters) {
|
|
1254
1261
|
m.Succeed();
|
1255
1262
|
|
1256
1263
|
Handle<String> source =
|
1257
|
-
|
1264
|
+
FACTORY->NewStringFromAscii(CStrVector("<huge register space test>"));
|
1258
1265
|
Handle<Object> code_object = m.GetCode(source);
|
1259
1266
|
Handle<Code> code = Handle<Code>::cast(code_object);
|
1260
1267
|
|
1261
1268
|
// String long enough for test (content doesn't matter).
|
1262
1269
|
Handle<String> input =
|
1263
|
-
|
1270
|
+
FACTORY->NewStringFromAscii(CStrVector("sample text"));
|
1264
1271
|
Handle<SeqAsciiString> seq_input = Handle<SeqAsciiString>::cast(input);
|
1265
1272
|
Address start_adr = seq_input->GetCharsAddress();
|
1266
1273
|
|
@@ -1277,7 +1284,7 @@ TEST(MacroAssemblerNativeLotsOfRegisters) {
|
|
1277
1284
|
CHECK_EQ(0, captures[0]);
|
1278
1285
|
CHECK_EQ(42, captures[1]);
|
1279
1286
|
|
1280
|
-
|
1287
|
+
Isolate::Current()->clear_pending_exception();
|
1281
1288
|
}
|
1282
1289
|
|
1283
1290
|
#else // V8_INTERPRETED_REGEXP
|
@@ -1322,13 +1329,13 @@ TEST(MacroAssembler) {
|
|
1322
1329
|
|
1323
1330
|
v8::HandleScope scope;
|
1324
1331
|
|
1325
|
-
Handle<String> source =
|
1332
|
+
Handle<String> source = FACTORY->NewStringFromAscii(CStrVector("^f(o)o"));
|
1326
1333
|
Handle<ByteArray> array = Handle<ByteArray>::cast(m.GetCode(source));
|
1327
1334
|
int captures[5];
|
1328
1335
|
|
1329
1336
|
const uc16 str1[] = {'f', 'o', 'o', 'b', 'a', 'r'};
|
1330
1337
|
Handle<String> f1_16 =
|
1331
|
-
|
1338
|
+
FACTORY->NewStringFromTwoByte(Vector<const uc16>(str1, 6));
|
1332
1339
|
|
1333
1340
|
CHECK(IrregexpInterpreter::Match(array, f1_16, captures, 0));
|
1334
1341
|
CHECK_EQ(0, captures[0]);
|
@@ -1339,7 +1346,7 @@ TEST(MacroAssembler) {
|
|
1339
1346
|
|
1340
1347
|
const uc16 str2[] = {'b', 'a', 'r', 'f', 'o', 'o'};
|
1341
1348
|
Handle<String> f2_16 =
|
1342
|
-
|
1349
|
+
FACTORY->NewStringFromTwoByte(Vector<const uc16>(str2, 6));
|
1343
1350
|
|
1344
1351
|
CHECK(!IrregexpInterpreter::Match(array, f2_16, captures, 0));
|
1345
1352
|
CHECK_EQ(42, captures[0]);
|
@@ -1349,6 +1356,7 @@ TEST(MacroAssembler) {
|
|
1349
1356
|
|
1350
1357
|
|
1351
1358
|
TEST(AddInverseToTable) {
|
1359
|
+
v8::internal::V8::Initialize(NULL);
|
1352
1360
|
static const int kLimit = 1000;
|
1353
1361
|
static const int kRangeCount = 16;
|
1354
1362
|
for (int t = 0; t < 10; t++) {
|
@@ -1507,6 +1515,7 @@ static void TestSimpleRangeCaseIndependence(CharacterRange input,
|
|
1507
1515
|
|
1508
1516
|
|
1509
1517
|
TEST(CharacterRangeCaseIndependence) {
|
1518
|
+
v8::internal::V8::Initialize(NULL);
|
1510
1519
|
TestSimpleRangeCaseIndependence(CharacterRange::Singleton('a'),
|
1511
1520
|
CharacterRange::Singleton('A'));
|
1512
1521
|
TestSimpleRangeCaseIndependence(CharacterRange::Singleton('z'),
|
@@ -1548,6 +1557,7 @@ static bool InClass(uc16 c, ZoneList<CharacterRange>* ranges) {
|
|
1548
1557
|
|
1549
1558
|
|
1550
1559
|
TEST(CharClassDifference) {
|
1560
|
+
v8::internal::V8::Initialize(NULL);
|
1551
1561
|
ZoneScope zone_scope(DELETE_ON_EXIT);
|
1552
1562
|
ZoneList<CharacterRange>* base = new ZoneList<CharacterRange>(1);
|
1553
1563
|
base->Add(CharacterRange::Everything());
|
@@ -1574,6 +1584,7 @@ TEST(CharClassDifference) {
|
|
1574
1584
|
|
1575
1585
|
|
1576
1586
|
TEST(CanonicalizeCharacterSets) {
|
1587
|
+
v8::internal::V8::Initialize(NULL);
|
1577
1588
|
ZoneScope scope(DELETE_ON_EXIT);
|
1578
1589
|
ZoneList<CharacterRange>* list = new ZoneList<CharacterRange>(4);
|
1579
1590
|
CharacterSet set(list);
|
@@ -1644,6 +1655,7 @@ static bool CharacterInSet(ZoneList<CharacterRange>* set, uc16 value) {
|
|
1644
1655
|
}
|
1645
1656
|
|
1646
1657
|
TEST(CharacterRangeMerge) {
|
1658
|
+
v8::internal::V8::Initialize(NULL);
|
1647
1659
|
ZoneScope zone_scope(DELETE_ON_EXIT);
|
1648
1660
|
ZoneList<CharacterRange> l1(4);
|
1649
1661
|
ZoneList<CharacterRange> l2(4);
|