mustang 0.0.1 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
data/vendor/v8/src/v8threads.h
CHANGED
@@ -34,8 +34,6 @@ namespace internal {
|
|
34
34
|
|
35
35
|
class ThreadState {
|
36
36
|
public:
|
37
|
-
// Iterate over in-use states.
|
38
|
-
static ThreadState* FirstInUse();
|
39
37
|
// Returns NULL after the last one.
|
40
38
|
ThreadState* Next();
|
41
39
|
|
@@ -44,8 +42,6 @@ class ThreadState {
|
|
44
42
|
void LinkInto(List list);
|
45
43
|
void Unlink();
|
46
44
|
|
47
|
-
static ThreadState* GetFree();
|
48
|
-
|
49
45
|
// Id of thread.
|
50
46
|
void set_id(int id) { id_ = id; }
|
51
47
|
int id() { return id_; }
|
@@ -59,7 +55,7 @@ class ThreadState {
|
|
59
55
|
// Get data area for archiving a thread.
|
60
56
|
char* data() { return data_; }
|
61
57
|
private:
|
62
|
-
ThreadState();
|
58
|
+
explicit ThreadState(ThreadManager* thread_manager);
|
63
59
|
|
64
60
|
void AllocateSpace();
|
65
61
|
|
@@ -69,13 +65,9 @@ class ThreadState {
|
|
69
65
|
ThreadState* next_;
|
70
66
|
ThreadState* previous_;
|
71
67
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
// Head of linked list of free states.
|
76
|
-
static ThreadState* free_anchor_;
|
77
|
-
// Head of linked list of states in use.
|
78
|
-
static ThreadState* in_use_anchor_;
|
68
|
+
ThreadManager* thread_manager_;
|
69
|
+
|
70
|
+
friend class ThreadManager;
|
79
71
|
};
|
80
72
|
|
81
73
|
|
@@ -93,35 +85,52 @@ class ThreadVisitor {
|
|
93
85
|
};
|
94
86
|
|
95
87
|
|
96
|
-
class ThreadManager
|
88
|
+
class ThreadManager {
|
97
89
|
public:
|
98
|
-
|
99
|
-
|
90
|
+
void Lock();
|
91
|
+
void Unlock();
|
100
92
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
93
|
+
void ArchiveThread();
|
94
|
+
bool RestoreThread();
|
95
|
+
void FreeThreadResources();
|
96
|
+
bool IsArchived();
|
105
97
|
|
106
|
-
|
107
|
-
|
108
|
-
|
98
|
+
void Iterate(ObjectVisitor* v);
|
99
|
+
void IterateArchivedThreads(ThreadVisitor* v);
|
100
|
+
bool IsLockedByCurrentThread() { return mutex_owner_.IsSelf(); }
|
109
101
|
|
110
|
-
|
111
|
-
static void AssignId();
|
112
|
-
static bool HasId();
|
102
|
+
int CurrentId();
|
113
103
|
|
114
|
-
|
104
|
+
void TerminateExecution(int thread_id);
|
105
|
+
|
106
|
+
// Iterate over in-use states.
|
107
|
+
ThreadState* FirstThreadStateInUse();
|
108
|
+
ThreadState* GetFreeThreadState();
|
115
109
|
|
116
110
|
static const int kInvalidId = -1;
|
117
111
|
private:
|
118
|
-
|
112
|
+
ThreadManager();
|
113
|
+
~ThreadManager();
|
119
114
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
115
|
+
void EagerlyArchiveThread();
|
116
|
+
|
117
|
+
Mutex* mutex_;
|
118
|
+
ThreadHandle mutex_owner_;
|
119
|
+
ThreadHandle lazily_archived_thread_;
|
120
|
+
ThreadState* lazily_archived_thread_state_;
|
121
|
+
|
122
|
+
// In the following two lists there is always at least one object on the list.
|
123
|
+
// The first object is a flying anchor that is only there to simplify linking
|
124
|
+
// and unlinking.
|
125
|
+
// Head of linked list of free states.
|
126
|
+
ThreadState* free_anchor_;
|
127
|
+
// Head of linked list of states in use.
|
128
|
+
ThreadState* in_use_anchor_;
|
129
|
+
|
130
|
+
Isolate* isolate_;
|
131
|
+
|
132
|
+
friend class Isolate;
|
133
|
+
friend class ThreadState;
|
125
134
|
};
|
126
135
|
|
127
136
|
|
@@ -142,14 +151,12 @@ class ContextSwitcher: public Thread {
|
|
142
151
|
static void PreemptionReceived();
|
143
152
|
|
144
153
|
private:
|
145
|
-
explicit ContextSwitcher(int every_n_ms);
|
154
|
+
explicit ContextSwitcher(Isolate* isolate, int every_n_ms);
|
146
155
|
|
147
156
|
void Run();
|
148
157
|
|
149
158
|
bool keep_going_;
|
150
159
|
int sleep_ms_;
|
151
|
-
|
152
|
-
static ContextSwitcher* singleton_;
|
153
160
|
};
|
154
161
|
|
155
162
|
} } // namespace v8::internal
|
data/vendor/v8/src/v8utils.h
CHANGED
@@ -254,51 +254,14 @@ class StringBuilder {
|
|
254
254
|
};
|
255
255
|
|
256
256
|
|
257
|
-
// Custom memcpy implementation for platforms where the standard version
|
258
|
-
// may not be good enough.
|
259
|
-
#if defined(V8_TARGET_ARCH_IA32)
|
260
|
-
|
261
|
-
// The default memcpy on ia32 architectures is generally not as efficient
|
262
|
-
// as possible. (If any further ia32 platforms are introduced where the
|
263
|
-
// memcpy function is efficient, exclude them from this branch).
|
264
|
-
|
265
|
-
typedef void (*MemCopyFunction)(void* dest, const void* src, size_t size);
|
266
|
-
|
267
|
-
// Implemented in codegen-<arch>.cc.
|
268
|
-
MemCopyFunction CreateMemCopyFunction();
|
269
|
-
|
270
|
-
// Copy memory area to disjoint memory area.
|
271
|
-
static inline void MemCopy(void* dest, const void* src, size_t size) {
|
272
|
-
static MemCopyFunction memcopy = CreateMemCopyFunction();
|
273
|
-
(*memcopy)(dest, src, size);
|
274
|
-
#ifdef DEBUG
|
275
|
-
CHECK_EQ(0, memcmp(dest, src, size));
|
276
|
-
#endif
|
277
|
-
}
|
278
|
-
|
279
|
-
// Limit below which the extra overhead of the MemCopy function is likely
|
280
|
-
// to outweigh the benefits of faster copying.
|
281
|
-
static const int kMinComplexMemCopy = 64;
|
282
|
-
|
283
|
-
#else // V8_TARGET_ARCH_IA32
|
284
|
-
|
285
|
-
static inline void MemCopy(void* dest, const void* src, size_t size) {
|
286
|
-
memcpy(dest, src, size);
|
287
|
-
}
|
288
|
-
|
289
|
-
static const int kMinComplexMemCopy = 256;
|
290
|
-
|
291
|
-
#endif // V8_TARGET_ARCH_IA32
|
292
|
-
|
293
|
-
|
294
257
|
// Copy from ASCII/16bit chars to ASCII/16bit chars.
|
295
258
|
template <typename sourcechar, typename sinkchar>
|
296
259
|
static inline void CopyChars(sinkchar* dest, const sourcechar* src, int chars) {
|
297
260
|
sinkchar* limit = dest + chars;
|
298
261
|
#ifdef V8_HOST_CAN_READ_UNALIGNED
|
299
262
|
if (sizeof(*dest) == sizeof(*src)) {
|
300
|
-
if (chars >= static_cast<int>(kMinComplexMemCopy / sizeof(*dest))) {
|
301
|
-
MemCopy(dest, src, chars * sizeof(*dest));
|
263
|
+
if (chars >= static_cast<int>(OS::kMinComplexMemCopy / sizeof(*dest))) {
|
264
|
+
OS::MemCopy(dest, src, chars * sizeof(*dest));
|
302
265
|
return;
|
303
266
|
}
|
304
267
|
// Number of characters in a uintptr_t.
|
data/vendor/v8/src/variables.h
CHANGED
@@ -165,7 +165,7 @@ class Variable: public ZoneObject {
|
|
165
165
|
|
166
166
|
// True if the variable is named eval and not known to be shadowed.
|
167
167
|
bool is_possibly_eval() const {
|
168
|
-
return IsVariable(
|
168
|
+
return IsVariable(FACTORY->eval_symbol()) &&
|
169
169
|
(mode_ == DYNAMIC || mode_ == DYNAMIC_GLOBAL);
|
170
170
|
}
|
171
171
|
|
data/vendor/v8/src/version.cc
CHANGED
@@ -33,16 +33,37 @@
|
|
33
33
|
// NOTE these macros are used by the SCons build script so their names
|
34
34
|
// cannot be changed without changing the SCons build script.
|
35
35
|
#define MAJOR_VERSION 3
|
36
|
-
#define MINOR_VERSION
|
37
|
-
#define BUILD_NUMBER
|
36
|
+
#define MINOR_VERSION 2
|
37
|
+
#define BUILD_NUMBER 7
|
38
38
|
#define PATCH_LEVEL 0
|
39
|
-
|
39
|
+
// Use 1 for candidates and 0 otherwise.
|
40
|
+
// (Boolean macro values are not supported by all preprocessors.)
|
41
|
+
#define IS_CANDIDATE_VERSION 0
|
40
42
|
|
41
43
|
// Define SONAME to have the SCons build the put a specific SONAME into the
|
42
44
|
// shared library instead the generic SONAME generated from the V8 version
|
43
45
|
// number. This define is mainly used by the SCons build script.
|
44
46
|
#define SONAME ""
|
45
47
|
|
48
|
+
#if IS_CANDIDATE_VERSION
|
49
|
+
#define CANDIDATE_STRING " (candidate)"
|
50
|
+
#else
|
51
|
+
#define CANDIDATE_STRING ""
|
52
|
+
#endif
|
53
|
+
|
54
|
+
#define SX(x) #x
|
55
|
+
#define S(x) SX(x)
|
56
|
+
|
57
|
+
#if PATCH_LEVEL > 0
|
58
|
+
#define VERSION_STRING \
|
59
|
+
S(MAJOR_VERSION) "." S(MINOR_VERSION) "." S(BUILD_NUMBER) "." \
|
60
|
+
S(PATCH_LEVEL) CANDIDATE_STRING
|
61
|
+
#else
|
62
|
+
#define VERSION_STRING \
|
63
|
+
S(MAJOR_VERSION) "." S(MINOR_VERSION) "." S(BUILD_NUMBER) \
|
64
|
+
CANDIDATE_STRING
|
65
|
+
#endif
|
66
|
+
|
46
67
|
namespace v8 {
|
47
68
|
namespace internal {
|
48
69
|
|
@@ -50,9 +71,9 @@ int Version::major_ = MAJOR_VERSION;
|
|
50
71
|
int Version::minor_ = MINOR_VERSION;
|
51
72
|
int Version::build_ = BUILD_NUMBER;
|
52
73
|
int Version::patch_ = PATCH_LEVEL;
|
53
|
-
bool Version::candidate_ =
|
74
|
+
bool Version::candidate_ = (IS_CANDIDATE_VERSION != 0);
|
54
75
|
const char* Version::soname_ = SONAME;
|
55
|
-
|
76
|
+
const char* Version::version_string_ = VERSION_STRING;
|
56
77
|
|
57
78
|
// Calculate the V8 version string.
|
58
79
|
void Version::GetString(Vector<char> str) {
|
data/vendor/v8/src/version.h
CHANGED
@@ -46,13 +46,17 @@ class Version {
|
|
46
46
|
// Calculate the SONAME for the V8 shared library.
|
47
47
|
static void GetSONAME(Vector<char> str);
|
48
48
|
|
49
|
+
static const char* GetVersion() { return version_string_; }
|
50
|
+
|
49
51
|
private:
|
52
|
+
// NOTE: can't make these really const because of test-version.cc.
|
50
53
|
static int major_;
|
51
54
|
static int minor_;
|
52
55
|
static int build_;
|
53
56
|
static int patch_;
|
54
57
|
static bool candidate_;
|
55
58
|
static const char* soname_;
|
59
|
+
static const char* version_string_;
|
56
60
|
|
57
61
|
// In test-version.cc.
|
58
62
|
friend void SetVersion(int major, int minor, int build, int patch,
|
@@ -82,10 +82,8 @@ void VirtualFrame::Push(Register reg, TypeInfo info) {
|
|
82
82
|
}
|
83
83
|
|
84
84
|
|
85
|
-
|
86
|
-
FrameElement
|
87
|
-
FrameElement::ConstantElement(value, FrameElement::NOT_SYNCED);
|
88
|
-
elements_.Add(element);
|
85
|
+
bool VirtualFrame::ConstantPoolOverflowed() {
|
86
|
+
return FrameElement::ConstantPoolOverflowed();
|
89
87
|
}
|
90
88
|
|
91
89
|
|
@@ -83,8 +83,9 @@ void VirtualFrame::PrepareForReturn() {
|
|
83
83
|
VirtualFrame::RegisterAllocationScope::RegisterAllocationScope(
|
84
84
|
CodeGenerator* cgen)
|
85
85
|
: cgen_(cgen),
|
86
|
-
old_is_spilled_(
|
87
|
-
|
86
|
+
old_is_spilled_(
|
87
|
+
Isolate::Current()->is_virtual_frame_in_spilled_scope()) {
|
88
|
+
Isolate::Current()->set_is_virtual_frame_in_spilled_scope(false);
|
88
89
|
if (old_is_spilled_) {
|
89
90
|
VirtualFrame* frame = cgen->frame();
|
90
91
|
if (frame != NULL) {
|
@@ -95,7 +96,7 @@ VirtualFrame::RegisterAllocationScope::RegisterAllocationScope(
|
|
95
96
|
|
96
97
|
|
97
98
|
VirtualFrame::RegisterAllocationScope::~RegisterAllocationScope() {
|
98
|
-
|
99
|
+
Isolate::Current()->set_is_virtual_frame_in_spilled_scope(old_is_spilled_);
|
99
100
|
if (old_is_spilled_) {
|
100
101
|
VirtualFrame* frame = cgen_->frame();
|
101
102
|
if (frame != NULL) {
|
@@ -106,7 +107,7 @@ VirtualFrame::RegisterAllocationScope::~RegisterAllocationScope() {
|
|
106
107
|
|
107
108
|
|
108
109
|
CodeGenerator* VirtualFrame::cgen() const {
|
109
|
-
return CodeGeneratorScope::Current();
|
110
|
+
return CodeGeneratorScope::Current(Isolate::Current());
|
110
111
|
}
|
111
112
|
|
112
113
|
|
@@ -58,25 +58,27 @@ inline const char* StateToString(StateTag state) {
|
|
58
58
|
}
|
59
59
|
}
|
60
60
|
|
61
|
-
|
61
|
+
|
62
|
+
VMState::VMState(Isolate* isolate, StateTag tag)
|
63
|
+
: isolate_(isolate), previous_tag_(isolate->current_vm_state()) {
|
62
64
|
#ifdef ENABLE_LOGGING_AND_PROFILING
|
63
65
|
if (FLAG_log_state_changes) {
|
64
|
-
LOG(UncheckedStringEvent("Entering", StateToString(tag)));
|
65
|
-
LOG(UncheckedStringEvent("From", StateToString(previous_tag_)));
|
66
|
+
LOG(isolate, UncheckedStringEvent("Entering", StateToString(tag)));
|
67
|
+
LOG(isolate, UncheckedStringEvent("From", StateToString(previous_tag_)));
|
66
68
|
}
|
67
69
|
#endif
|
68
70
|
|
69
|
-
|
71
|
+
isolate_->SetCurrentVMState(tag);
|
70
72
|
|
71
73
|
#ifdef ENABLE_HEAP_PROTECTION
|
72
74
|
if (FLAG_protect_heap) {
|
73
75
|
if (tag == EXTERNAL) {
|
74
76
|
// We are leaving V8.
|
75
77
|
ASSERT(previous_tag_ != EXTERNAL);
|
76
|
-
|
78
|
+
isolate_->heap()->Protect();
|
77
79
|
} else if (previous_tag_ = EXTERNAL) {
|
78
80
|
// We are entering V8.
|
79
|
-
|
81
|
+
isolate_->heap()->Unprotect();
|
80
82
|
}
|
81
83
|
}
|
82
84
|
#endif
|
@@ -86,27 +88,29 @@ VMState::VMState(StateTag tag) : previous_tag_(Top::current_vm_state()) {
|
|
86
88
|
VMState::~VMState() {
|
87
89
|
#ifdef ENABLE_LOGGING_AND_PROFILING
|
88
90
|
if (FLAG_log_state_changes) {
|
89
|
-
LOG(
|
90
|
-
|
91
|
-
|
91
|
+
LOG(isolate_,
|
92
|
+
UncheckedStringEvent("Leaving",
|
93
|
+
StateToString(isolate_->current_vm_state())));
|
94
|
+
LOG(isolate_,
|
95
|
+
UncheckedStringEvent("To", StateToString(previous_tag_)));
|
92
96
|
}
|
93
97
|
#endif // ENABLE_LOGGING_AND_PROFILING
|
94
98
|
|
95
99
|
#ifdef ENABLE_HEAP_PROTECTION
|
96
|
-
StateTag tag =
|
100
|
+
StateTag tag = isolate_->current_vm_state();
|
97
101
|
#endif
|
98
102
|
|
99
|
-
|
103
|
+
isolate_->SetCurrentVMState(previous_tag_);
|
100
104
|
|
101
105
|
#ifdef ENABLE_HEAP_PROTECTION
|
102
106
|
if (FLAG_protect_heap) {
|
103
107
|
if (tag == EXTERNAL) {
|
104
108
|
// We are reentering V8.
|
105
109
|
ASSERT(previous_tag_ != EXTERNAL);
|
106
|
-
|
110
|
+
isolate_->heap()->Unprotect();
|
107
111
|
} else if (previous_tag_ == EXTERNAL) {
|
108
112
|
// We are leaving V8.
|
109
|
-
|
113
|
+
isolate_->heap()->Protect();
|
110
114
|
}
|
111
115
|
}
|
112
116
|
#endif // ENABLE_HEAP_PROTECTION
|
@@ -117,13 +121,13 @@ VMState::~VMState() {
|
|
117
121
|
|
118
122
|
#ifdef ENABLE_LOGGING_AND_PROFILING
|
119
123
|
|
120
|
-
ExternalCallbackScope::ExternalCallbackScope(Address callback)
|
121
|
-
: previous_callback_(
|
122
|
-
|
124
|
+
ExternalCallbackScope::ExternalCallbackScope(Isolate* isolate, Address callback)
|
125
|
+
: isolate_(isolate), previous_callback_(isolate->external_callback()) {
|
126
|
+
isolate_->set_external_callback(callback);
|
123
127
|
}
|
124
128
|
|
125
129
|
ExternalCallbackScope::~ExternalCallbackScope() {
|
126
|
-
|
130
|
+
isolate_->set_external_callback(previous_callback_);
|
127
131
|
}
|
128
132
|
|
129
133
|
#endif // ENABLE_LOGGING_AND_PROFILING
|
data/vendor/v8/src/vm-state.h
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
#ifndef V8_VM_STATE_H_
|
29
29
|
#define V8_VM_STATE_H_
|
30
30
|
|
31
|
-
#include "
|
31
|
+
#include "isolate.h"
|
32
32
|
|
33
33
|
namespace v8 {
|
34
34
|
namespace internal {
|
@@ -36,15 +36,16 @@ namespace internal {
|
|
36
36
|
class VMState BASE_EMBEDDED {
|
37
37
|
#ifdef ENABLE_VMSTATE_TRACKING
|
38
38
|
public:
|
39
|
-
inline
|
39
|
+
inline VMState(Isolate* isolate, StateTag tag);
|
40
40
|
inline ~VMState();
|
41
41
|
|
42
42
|
private:
|
43
|
+
Isolate* isolate_;
|
43
44
|
StateTag previous_tag_;
|
44
45
|
|
45
46
|
#else
|
46
47
|
public:
|
47
|
-
|
48
|
+
VMState(Isolate* isolate, StateTag state) {}
|
48
49
|
#endif
|
49
50
|
};
|
50
51
|
|
@@ -52,13 +53,14 @@ class VMState BASE_EMBEDDED {
|
|
52
53
|
class ExternalCallbackScope BASE_EMBEDDED {
|
53
54
|
#ifdef ENABLE_LOGGING_AND_PROFILING
|
54
55
|
public:
|
55
|
-
inline
|
56
|
+
inline ExternalCallbackScope(Isolate* isolate, Address callback);
|
56
57
|
inline ~ExternalCallbackScope();
|
57
58
|
private:
|
59
|
+
Isolate* isolate_;
|
58
60
|
Address previous_callback_;
|
59
61
|
#else
|
60
62
|
public:
|
61
|
-
|
63
|
+
ExternalCallbackScope(Isolate* isolate, Address callback) {}
|
62
64
|
#endif
|
63
65
|
};
|
64
66
|
|
@@ -66,6 +66,7 @@
|
|
66
66
|
#endif // __MINGW32__
|
67
67
|
#ifndef __MINGW32__
|
68
68
|
#include <dbghelp.h> // For SymLoadModule64 and al.
|
69
|
+
#include <errno.h> // For STRUNCATE
|
69
70
|
#endif // __MINGW32__
|
70
71
|
#include <limits.h> // For INT_MAX and al.
|
71
72
|
#include <tlhelp32.h> // For Module32First and al.
|