libv8 3.11.8.17 → 3.16.14.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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -2
- data/Gemfile +1 -1
- data/Rakefile +6 -7
- data/lib/libv8/version.rb +1 -1
- data/vendor/v8/.gitignore +24 -3
- data/vendor/v8/AUTHORS +7 -0
- data/vendor/v8/ChangeLog +839 -0
- data/vendor/v8/DEPS +1 -1
- data/vendor/v8/Makefile.android +92 -0
- data/vendor/v8/OWNERS +11 -0
- data/vendor/v8/PRESUBMIT.py +71 -0
- data/vendor/v8/SConstruct +34 -39
- data/vendor/v8/build/android.gypi +56 -37
- data/vendor/v8/build/common.gypi +112 -30
- data/vendor/v8/build/gyp_v8 +1 -1
- data/vendor/v8/build/standalone.gypi +15 -11
- data/vendor/v8/include/v8-debug.h +9 -1
- data/vendor/v8/include/v8-preparser.h +4 -3
- data/vendor/v8/include/v8-profiler.h +25 -25
- data/vendor/v8/include/v8-testing.h +4 -3
- data/vendor/v8/include/v8.h +994 -540
- data/vendor/v8/preparser/preparser-process.cc +3 -3
- data/vendor/v8/samples/lineprocessor.cc +20 -27
- data/vendor/v8/samples/process.cc +18 -14
- data/vendor/v8/samples/shell.cc +16 -15
- data/vendor/v8/src/SConscript +15 -14
- data/vendor/v8/src/accessors.cc +169 -77
- data/vendor/v8/src/accessors.h +4 -0
- data/vendor/v8/src/allocation-inl.h +2 -2
- data/vendor/v8/src/allocation.h +7 -7
- data/vendor/v8/src/api.cc +810 -497
- data/vendor/v8/src/api.h +85 -60
- data/vendor/v8/src/arm/assembler-arm-inl.h +179 -22
- data/vendor/v8/src/arm/assembler-arm.cc +633 -264
- data/vendor/v8/src/arm/assembler-arm.h +264 -197
- data/vendor/v8/src/arm/builtins-arm.cc +117 -27
- data/vendor/v8/src/arm/code-stubs-arm.cc +1241 -700
- data/vendor/v8/src/arm/code-stubs-arm.h +35 -138
- data/vendor/v8/src/arm/codegen-arm.cc +285 -16
- data/vendor/v8/src/arm/codegen-arm.h +22 -0
- data/vendor/v8/src/arm/constants-arm.cc +5 -3
- data/vendor/v8/src/arm/constants-arm.h +24 -11
- data/vendor/v8/src/arm/debug-arm.cc +3 -3
- data/vendor/v8/src/arm/deoptimizer-arm.cc +382 -92
- data/vendor/v8/src/arm/disasm-arm.cc +61 -12
- data/vendor/v8/src/arm/frames-arm.h +0 -14
- data/vendor/v8/src/arm/full-codegen-arm.cc +332 -304
- data/vendor/v8/src/arm/ic-arm.cc +180 -259
- data/vendor/v8/src/arm/lithium-arm.cc +364 -316
- data/vendor/v8/src/arm/lithium-arm.h +512 -275
- data/vendor/v8/src/arm/lithium-codegen-arm.cc +1768 -809
- data/vendor/v8/src/arm/lithium-codegen-arm.h +97 -35
- data/vendor/v8/src/arm/lithium-gap-resolver-arm.cc +12 -5
- data/vendor/v8/src/arm/macro-assembler-arm.cc +439 -228
- data/vendor/v8/src/arm/macro-assembler-arm.h +116 -70
- data/vendor/v8/src/arm/regexp-macro-assembler-arm.cc +54 -44
- data/vendor/v8/src/arm/regexp-macro-assembler-arm.h +3 -10
- data/vendor/v8/src/arm/simulator-arm.cc +272 -238
- data/vendor/v8/src/arm/simulator-arm.h +38 -8
- data/vendor/v8/src/arm/stub-cache-arm.cc +522 -895
- data/vendor/v8/src/array.js +101 -70
- data/vendor/v8/src/assembler.cc +270 -19
- data/vendor/v8/src/assembler.h +110 -15
- data/vendor/v8/src/ast.cc +79 -69
- data/vendor/v8/src/ast.h +255 -301
- data/vendor/v8/src/atomicops.h +7 -1
- data/vendor/v8/src/atomicops_internals_tsan.h +335 -0
- data/vendor/v8/src/bootstrapper.cc +481 -418
- data/vendor/v8/src/bootstrapper.h +4 -4
- data/vendor/v8/src/builtins.cc +498 -311
- data/vendor/v8/src/builtins.h +75 -47
- data/vendor/v8/src/checks.cc +2 -1
- data/vendor/v8/src/checks.h +8 -0
- data/vendor/v8/src/code-stubs-hydrogen.cc +253 -0
- data/vendor/v8/src/code-stubs.cc +249 -84
- data/vendor/v8/src/code-stubs.h +501 -169
- data/vendor/v8/src/codegen.cc +36 -18
- data/vendor/v8/src/codegen.h +25 -3
- data/vendor/v8/src/collection.js +54 -17
- data/vendor/v8/src/compilation-cache.cc +24 -16
- data/vendor/v8/src/compilation-cache.h +15 -6
- data/vendor/v8/src/compiler.cc +497 -195
- data/vendor/v8/src/compiler.h +246 -38
- data/vendor/v8/src/contexts.cc +64 -24
- data/vendor/v8/src/contexts.h +60 -29
- data/vendor/v8/src/conversions-inl.h +24 -14
- data/vendor/v8/src/conversions.h +7 -4
- data/vendor/v8/src/counters.cc +21 -12
- data/vendor/v8/src/counters.h +44 -16
- data/vendor/v8/src/cpu-profiler.h +1 -1
- data/vendor/v8/src/d8-debug.cc +2 -2
- data/vendor/v8/src/d8-readline.cc +13 -2
- data/vendor/v8/src/d8.cc +681 -273
- data/vendor/v8/src/d8.gyp +4 -4
- data/vendor/v8/src/d8.h +38 -18
- data/vendor/v8/src/d8.js +0 -617
- data/vendor/v8/src/data-flow.h +55 -0
- data/vendor/v8/src/date.js +1 -42
- data/vendor/v8/src/dateparser-inl.h +5 -1
- data/vendor/v8/src/debug-agent.cc +10 -15
- data/vendor/v8/src/debug-debugger.js +147 -149
- data/vendor/v8/src/debug.cc +323 -164
- data/vendor/v8/src/debug.h +26 -14
- data/vendor/v8/src/deoptimizer.cc +765 -290
- data/vendor/v8/src/deoptimizer.h +130 -28
- data/vendor/v8/src/disassembler.cc +10 -4
- data/vendor/v8/src/elements-kind.cc +7 -2
- data/vendor/v8/src/elements-kind.h +19 -0
- data/vendor/v8/src/elements.cc +607 -285
- data/vendor/v8/src/elements.h +36 -13
- data/vendor/v8/src/execution.cc +52 -31
- data/vendor/v8/src/execution.h +4 -4
- data/vendor/v8/src/extensions/externalize-string-extension.cc +5 -4
- data/vendor/v8/src/extensions/gc-extension.cc +5 -1
- data/vendor/v8/src/extensions/statistics-extension.cc +153 -0
- data/vendor/v8/src/{inspector.h → extensions/statistics-extension.h} +12 -23
- data/vendor/v8/src/factory.cc +101 -134
- data/vendor/v8/src/factory.h +36 -31
- data/vendor/v8/src/flag-definitions.h +102 -25
- data/vendor/v8/src/flags.cc +9 -5
- data/vendor/v8/src/frames-inl.h +10 -0
- data/vendor/v8/src/frames.cc +116 -26
- data/vendor/v8/src/frames.h +96 -12
- data/vendor/v8/src/full-codegen.cc +219 -74
- data/vendor/v8/src/full-codegen.h +63 -21
- data/vendor/v8/src/func-name-inferrer.cc +8 -7
- data/vendor/v8/src/func-name-inferrer.h +5 -3
- data/vendor/v8/src/gdb-jit.cc +71 -57
- data/vendor/v8/src/global-handles.cc +230 -101
- data/vendor/v8/src/global-handles.h +26 -27
- data/vendor/v8/src/globals.h +17 -19
- data/vendor/v8/src/handles-inl.h +59 -12
- data/vendor/v8/src/handles.cc +180 -200
- data/vendor/v8/src/handles.h +80 -11
- data/vendor/v8/src/hashmap.h +60 -40
- data/vendor/v8/src/heap-inl.h +107 -45
- data/vendor/v8/src/heap-profiler.cc +38 -19
- data/vendor/v8/src/heap-profiler.h +24 -14
- data/vendor/v8/src/heap.cc +1123 -738
- data/vendor/v8/src/heap.h +385 -146
- data/vendor/v8/src/hydrogen-instructions.cc +700 -217
- data/vendor/v8/src/hydrogen-instructions.h +1158 -472
- data/vendor/v8/src/hydrogen.cc +3319 -1662
- data/vendor/v8/src/hydrogen.h +411 -170
- data/vendor/v8/src/ia32/assembler-ia32-inl.h +46 -16
- data/vendor/v8/src/ia32/assembler-ia32.cc +131 -61
- data/vendor/v8/src/ia32/assembler-ia32.h +115 -57
- data/vendor/v8/src/ia32/builtins-ia32.cc +99 -5
- data/vendor/v8/src/ia32/code-stubs-ia32.cc +787 -495
- data/vendor/v8/src/ia32/code-stubs-ia32.h +10 -100
- data/vendor/v8/src/ia32/codegen-ia32.cc +227 -23
- data/vendor/v8/src/ia32/codegen-ia32.h +14 -0
- data/vendor/v8/src/ia32/deoptimizer-ia32.cc +428 -87
- data/vendor/v8/src/ia32/disasm-ia32.cc +28 -1
- data/vendor/v8/src/ia32/frames-ia32.h +6 -16
- data/vendor/v8/src/ia32/full-codegen-ia32.cc +280 -272
- data/vendor/v8/src/ia32/ic-ia32.cc +150 -250
- data/vendor/v8/src/ia32/lithium-codegen-ia32.cc +1600 -517
- data/vendor/v8/src/ia32/lithium-codegen-ia32.h +90 -24
- data/vendor/v8/src/ia32/lithium-gap-resolver-ia32.cc +10 -6
- data/vendor/v8/src/ia32/lithium-gap-resolver-ia32.h +2 -2
- data/vendor/v8/src/ia32/lithium-ia32.cc +405 -302
- data/vendor/v8/src/ia32/lithium-ia32.h +526 -271
- data/vendor/v8/src/ia32/macro-assembler-ia32.cc +378 -119
- data/vendor/v8/src/ia32/macro-assembler-ia32.h +62 -28
- data/vendor/v8/src/ia32/regexp-macro-assembler-ia32.cc +43 -30
- data/vendor/v8/src/ia32/regexp-macro-assembler-ia32.h +2 -10
- data/vendor/v8/src/ia32/stub-cache-ia32.cc +492 -678
- data/vendor/v8/src/ic-inl.h +9 -4
- data/vendor/v8/src/ic.cc +836 -923
- data/vendor/v8/src/ic.h +228 -247
- data/vendor/v8/src/incremental-marking-inl.h +26 -30
- data/vendor/v8/src/incremental-marking.cc +276 -248
- data/vendor/v8/src/incremental-marking.h +29 -37
- data/vendor/v8/src/interface.cc +34 -25
- data/vendor/v8/src/interface.h +69 -25
- data/vendor/v8/src/interpreter-irregexp.cc +2 -2
- data/vendor/v8/src/isolate.cc +382 -76
- data/vendor/v8/src/isolate.h +109 -56
- data/vendor/v8/src/json-parser.h +217 -104
- data/vendor/v8/src/json-stringifier.h +745 -0
- data/vendor/v8/src/json.js +10 -132
- data/vendor/v8/src/jsregexp-inl.h +106 -0
- data/vendor/v8/src/jsregexp.cc +517 -285
- data/vendor/v8/src/jsregexp.h +145 -117
- data/vendor/v8/src/list-inl.h +35 -22
- data/vendor/v8/src/list.h +46 -19
- data/vendor/v8/src/lithium-allocator-inl.h +22 -2
- data/vendor/v8/src/lithium-allocator.cc +85 -70
- data/vendor/v8/src/lithium-allocator.h +21 -39
- data/vendor/v8/src/lithium.cc +259 -5
- data/vendor/v8/src/lithium.h +131 -32
- data/vendor/v8/src/liveedit-debugger.js +52 -3
- data/vendor/v8/src/liveedit.cc +393 -113
- data/vendor/v8/src/liveedit.h +7 -3
- data/vendor/v8/src/log-utils.cc +4 -2
- data/vendor/v8/src/log.cc +170 -140
- data/vendor/v8/src/log.h +62 -11
- data/vendor/v8/src/macro-assembler.h +17 -0
- data/vendor/v8/src/macros.py +2 -0
- data/vendor/v8/src/mark-compact-inl.h +3 -23
- data/vendor/v8/src/mark-compact.cc +801 -830
- data/vendor/v8/src/mark-compact.h +154 -47
- data/vendor/v8/src/marking-thread.cc +85 -0
- data/vendor/v8/src/{inspector.cc → marking-thread.h} +32 -24
- data/vendor/v8/src/math.js +12 -18
- data/vendor/v8/src/messages.cc +18 -8
- data/vendor/v8/src/messages.js +314 -261
- data/vendor/v8/src/mips/assembler-mips-inl.h +58 -6
- data/vendor/v8/src/mips/assembler-mips.cc +92 -75
- data/vendor/v8/src/mips/assembler-mips.h +54 -60
- data/vendor/v8/src/mips/builtins-mips.cc +116 -17
- data/vendor/v8/src/mips/code-stubs-mips.cc +919 -556
- data/vendor/v8/src/mips/code-stubs-mips.h +22 -131
- data/vendor/v8/src/mips/codegen-mips.cc +281 -6
- data/vendor/v8/src/mips/codegen-mips.h +22 -0
- data/vendor/v8/src/mips/constants-mips.cc +2 -0
- data/vendor/v8/src/mips/constants-mips.h +12 -2
- data/vendor/v8/src/mips/deoptimizer-mips.cc +286 -50
- data/vendor/v8/src/mips/disasm-mips.cc +13 -0
- data/vendor/v8/src/mips/full-codegen-mips.cc +297 -284
- data/vendor/v8/src/mips/ic-mips.cc +182 -263
- data/vendor/v8/src/mips/lithium-codegen-mips.cc +1208 -556
- data/vendor/v8/src/mips/lithium-codegen-mips.h +72 -19
- data/vendor/v8/src/mips/lithium-gap-resolver-mips.cc +9 -2
- data/vendor/v8/src/mips/lithium-mips.cc +290 -302
- data/vendor/v8/src/mips/lithium-mips.h +463 -266
- data/vendor/v8/src/mips/macro-assembler-mips.cc +208 -115
- data/vendor/v8/src/mips/macro-assembler-mips.h +67 -24
- data/vendor/v8/src/mips/regexp-macro-assembler-mips.cc +40 -25
- data/vendor/v8/src/mips/regexp-macro-assembler-mips.h +3 -9
- data/vendor/v8/src/mips/simulator-mips.cc +112 -40
- data/vendor/v8/src/mips/simulator-mips.h +5 -0
- data/vendor/v8/src/mips/stub-cache-mips.cc +502 -884
- data/vendor/v8/src/mirror-debugger.js +157 -30
- data/vendor/v8/src/mksnapshot.cc +88 -14
- data/vendor/v8/src/object-observe.js +235 -0
- data/vendor/v8/src/objects-debug.cc +178 -176
- data/vendor/v8/src/objects-inl.h +1333 -486
- data/vendor/v8/src/objects-printer.cc +125 -43
- data/vendor/v8/src/objects-visiting-inl.h +578 -6
- data/vendor/v8/src/objects-visiting.cc +2 -2
- data/vendor/v8/src/objects-visiting.h +172 -79
- data/vendor/v8/src/objects.cc +3533 -2885
- data/vendor/v8/src/objects.h +1352 -1131
- data/vendor/v8/src/optimizing-compiler-thread.cc +152 -0
- data/vendor/v8/src/optimizing-compiler-thread.h +111 -0
- data/vendor/v8/src/parser.cc +390 -500
- data/vendor/v8/src/parser.h +45 -33
- data/vendor/v8/src/platform-cygwin.cc +10 -21
- data/vendor/v8/src/platform-freebsd.cc +36 -41
- data/vendor/v8/src/platform-linux.cc +160 -124
- data/vendor/v8/src/platform-macos.cc +30 -27
- data/vendor/v8/src/platform-nullos.cc +17 -1
- data/vendor/v8/src/platform-openbsd.cc +19 -50
- data/vendor/v8/src/platform-posix.cc +14 -0
- data/vendor/v8/src/platform-solaris.cc +20 -53
- data/vendor/v8/src/platform-win32.cc +49 -26
- data/vendor/v8/src/platform.h +40 -1
- data/vendor/v8/src/preparser.cc +8 -5
- data/vendor/v8/src/preparser.h +2 -2
- data/vendor/v8/src/prettyprinter.cc +16 -0
- data/vendor/v8/src/prettyprinter.h +2 -0
- data/vendor/v8/src/profile-generator-inl.h +1 -0
- data/vendor/v8/src/profile-generator.cc +209 -147
- data/vendor/v8/src/profile-generator.h +15 -12
- data/vendor/v8/src/property-details.h +46 -31
- data/vendor/v8/src/property.cc +27 -46
- data/vendor/v8/src/property.h +163 -83
- data/vendor/v8/src/proxy.js +7 -2
- data/vendor/v8/src/regexp-macro-assembler-irregexp.cc +4 -13
- data/vendor/v8/src/regexp-macro-assembler-irregexp.h +1 -2
- data/vendor/v8/src/regexp-macro-assembler-tracer.cc +1 -11
- data/vendor/v8/src/regexp-macro-assembler-tracer.h +0 -1
- data/vendor/v8/src/regexp-macro-assembler.cc +31 -14
- data/vendor/v8/src/regexp-macro-assembler.h +14 -11
- data/vendor/v8/src/regexp-stack.cc +1 -0
- data/vendor/v8/src/regexp.js +9 -8
- data/vendor/v8/src/rewriter.cc +18 -7
- data/vendor/v8/src/runtime-profiler.cc +52 -43
- data/vendor/v8/src/runtime-profiler.h +0 -25
- data/vendor/v8/src/runtime.cc +2006 -2023
- data/vendor/v8/src/runtime.h +56 -49
- data/vendor/v8/src/safepoint-table.cc +12 -18
- data/vendor/v8/src/safepoint-table.h +11 -8
- data/vendor/v8/src/scanner.cc +1 -0
- data/vendor/v8/src/scanner.h +4 -10
- data/vendor/v8/src/scopeinfo.cc +35 -9
- data/vendor/v8/src/scopeinfo.h +64 -3
- data/vendor/v8/src/scopes.cc +251 -156
- data/vendor/v8/src/scopes.h +61 -27
- data/vendor/v8/src/serialize.cc +348 -396
- data/vendor/v8/src/serialize.h +125 -114
- data/vendor/v8/src/small-pointer-list.h +11 -11
- data/vendor/v8/src/{smart-array-pointer.h → smart-pointers.h} +64 -15
- data/vendor/v8/src/snapshot-common.cc +64 -15
- data/vendor/v8/src/snapshot-empty.cc +7 -1
- data/vendor/v8/src/snapshot.h +9 -2
- data/vendor/v8/src/spaces-inl.h +17 -0
- data/vendor/v8/src/spaces.cc +477 -183
- data/vendor/v8/src/spaces.h +238 -58
- data/vendor/v8/src/splay-tree-inl.h +8 -7
- data/vendor/v8/src/splay-tree.h +24 -10
- data/vendor/v8/src/store-buffer.cc +12 -5
- data/vendor/v8/src/store-buffer.h +2 -4
- data/vendor/v8/src/string-search.h +22 -6
- data/vendor/v8/src/string-stream.cc +11 -8
- data/vendor/v8/src/string.js +47 -15
- data/vendor/v8/src/stub-cache.cc +461 -224
- data/vendor/v8/src/stub-cache.h +164 -102
- data/vendor/v8/src/sweeper-thread.cc +105 -0
- data/vendor/v8/src/sweeper-thread.h +81 -0
- data/vendor/v8/src/token.h +1 -0
- data/vendor/v8/src/transitions-inl.h +220 -0
- data/vendor/v8/src/transitions.cc +160 -0
- data/vendor/v8/src/transitions.h +207 -0
- data/vendor/v8/src/type-info.cc +182 -181
- data/vendor/v8/src/type-info.h +31 -19
- data/vendor/v8/src/unicode-inl.h +62 -106
- data/vendor/v8/src/unicode.cc +57 -67
- data/vendor/v8/src/unicode.h +45 -91
- data/vendor/v8/src/uri.js +57 -29
- data/vendor/v8/src/utils.h +105 -5
- data/vendor/v8/src/v8-counters.cc +54 -11
- data/vendor/v8/src/v8-counters.h +134 -19
- data/vendor/v8/src/v8.cc +29 -29
- data/vendor/v8/src/v8.h +1 -0
- data/vendor/v8/src/v8conversions.cc +26 -22
- data/vendor/v8/src/v8globals.h +56 -43
- data/vendor/v8/src/v8natives.js +83 -30
- data/vendor/v8/src/v8threads.cc +42 -21
- data/vendor/v8/src/v8threads.h +4 -1
- data/vendor/v8/src/v8utils.cc +9 -93
- data/vendor/v8/src/v8utils.h +37 -33
- data/vendor/v8/src/variables.cc +6 -3
- data/vendor/v8/src/variables.h +6 -13
- data/vendor/v8/src/version.cc +2 -2
- data/vendor/v8/src/vm-state-inl.h +11 -0
- data/vendor/v8/src/x64/assembler-x64-inl.h +39 -8
- data/vendor/v8/src/x64/assembler-x64.cc +78 -64
- data/vendor/v8/src/x64/assembler-x64.h +38 -33
- data/vendor/v8/src/x64/builtins-x64.cc +105 -7
- data/vendor/v8/src/x64/code-stubs-x64.cc +790 -413
- data/vendor/v8/src/x64/code-stubs-x64.h +10 -106
- data/vendor/v8/src/x64/codegen-x64.cc +210 -8
- data/vendor/v8/src/x64/codegen-x64.h +20 -1
- data/vendor/v8/src/x64/deoptimizer-x64.cc +336 -75
- data/vendor/v8/src/x64/disasm-x64.cc +15 -0
- data/vendor/v8/src/x64/frames-x64.h +0 -14
- data/vendor/v8/src/x64/full-codegen-x64.cc +293 -270
- data/vendor/v8/src/x64/ic-x64.cc +153 -251
- data/vendor/v8/src/x64/lithium-codegen-x64.cc +1379 -531
- data/vendor/v8/src/x64/lithium-codegen-x64.h +67 -23
- data/vendor/v8/src/x64/lithium-gap-resolver-x64.cc +2 -2
- data/vendor/v8/src/x64/lithium-x64.cc +349 -289
- data/vendor/v8/src/x64/lithium-x64.h +460 -250
- data/vendor/v8/src/x64/macro-assembler-x64.cc +350 -177
- data/vendor/v8/src/x64/macro-assembler-x64.h +67 -49
- data/vendor/v8/src/x64/regexp-macro-assembler-x64.cc +46 -33
- data/vendor/v8/src/x64/regexp-macro-assembler-x64.h +2 -3
- data/vendor/v8/src/x64/stub-cache-x64.cc +484 -653
- data/vendor/v8/src/zone-inl.h +9 -27
- data/vendor/v8/src/zone.cc +5 -5
- data/vendor/v8/src/zone.h +53 -27
- data/vendor/v8/test/benchmarks/testcfg.py +5 -0
- data/vendor/v8/test/cctest/cctest.cc +4 -0
- data/vendor/v8/test/cctest/cctest.gyp +3 -1
- data/vendor/v8/test/cctest/cctest.h +57 -9
- data/vendor/v8/test/cctest/cctest.status +15 -15
- data/vendor/v8/test/cctest/test-accessors.cc +26 -0
- data/vendor/v8/test/cctest/test-alloc.cc +22 -30
- data/vendor/v8/test/cctest/test-api.cc +1943 -314
- data/vendor/v8/test/cctest/test-assembler-arm.cc +133 -13
- data/vendor/v8/test/cctest/test-assembler-ia32.cc +1 -1
- data/vendor/v8/test/cctest/test-assembler-mips.cc +12 -0
- data/vendor/v8/test/cctest/test-ast.cc +4 -2
- data/vendor/v8/test/cctest/test-compiler.cc +61 -29
- data/vendor/v8/test/cctest/test-dataflow.cc +2 -2
- data/vendor/v8/test/cctest/test-debug.cc +212 -33
- data/vendor/v8/test/cctest/test-decls.cc +257 -11
- data/vendor/v8/test/cctest/test-dictionary.cc +24 -10
- data/vendor/v8/test/cctest/test-disasm-arm.cc +118 -1
- data/vendor/v8/test/cctest/test-disasm-ia32.cc +3 -2
- data/vendor/v8/test/cctest/test-flags.cc +14 -1
- data/vendor/v8/test/cctest/test-func-name-inference.cc +7 -4
- data/vendor/v8/test/cctest/test-global-object.cc +51 -0
- data/vendor/v8/test/cctest/test-hashing.cc +32 -23
- data/vendor/v8/test/cctest/test-heap-profiler.cc +131 -77
- data/vendor/v8/test/cctest/test-heap.cc +1084 -143
- data/vendor/v8/test/cctest/test-list.cc +1 -1
- data/vendor/v8/test/cctest/test-liveedit.cc +3 -2
- data/vendor/v8/test/cctest/test-lockers.cc +12 -13
- data/vendor/v8/test/cctest/test-log.cc +10 -8
- data/vendor/v8/test/cctest/test-macro-assembler-x64.cc +2 -2
- data/vendor/v8/test/cctest/test-mark-compact.cc +44 -22
- data/vendor/v8/test/cctest/test-object-observe.cc +434 -0
- data/vendor/v8/test/cctest/test-parsing.cc +86 -39
- data/vendor/v8/test/cctest/test-platform-linux.cc +6 -0
- data/vendor/v8/test/cctest/test-platform-win32.cc +7 -0
- data/vendor/v8/test/cctest/test-random.cc +5 -4
- data/vendor/v8/test/cctest/test-regexp.cc +137 -101
- data/vendor/v8/test/cctest/test-serialize.cc +150 -230
- data/vendor/v8/test/cctest/test-sockets.cc +1 -1
- data/vendor/v8/test/cctest/test-spaces.cc +139 -0
- data/vendor/v8/test/cctest/test-strings.cc +736 -74
- data/vendor/v8/test/cctest/test-thread-termination.cc +10 -11
- data/vendor/v8/test/cctest/test-threads.cc +4 -4
- data/vendor/v8/test/cctest/test-utils.cc +16 -0
- data/vendor/v8/test/cctest/test-weakmaps.cc +7 -3
- data/vendor/v8/test/cctest/testcfg.py +64 -5
- data/vendor/v8/test/es5conform/testcfg.py +5 -0
- data/vendor/v8/test/message/message.status +1 -1
- data/vendor/v8/test/message/overwritten-builtins.out +3 -0
- data/vendor/v8/test/message/testcfg.py +89 -8
- data/vendor/v8/test/message/try-catch-finally-no-message.out +26 -26
- data/vendor/v8/test/mjsunit/accessor-map-sharing.js +18 -2
- data/vendor/v8/test/mjsunit/allocation-site-info.js +126 -0
- data/vendor/v8/test/mjsunit/array-bounds-check-removal.js +62 -1
- data/vendor/v8/test/mjsunit/array-iteration.js +1 -1
- data/vendor/v8/test/mjsunit/array-literal-transitions.js +2 -0
- data/vendor/v8/test/mjsunit/array-natives-elements.js +317 -0
- data/vendor/v8/test/mjsunit/array-reduce.js +8 -8
- data/vendor/v8/test/mjsunit/array-slice.js +12 -0
- data/vendor/v8/test/mjsunit/array-store-and-grow.js +4 -1
- data/vendor/v8/test/mjsunit/assert-opt-and-deopt.js +1 -1
- data/vendor/v8/test/mjsunit/bugs/bug-2337.js +53 -0
- data/vendor/v8/test/mjsunit/compare-known-objects-slow.js +69 -0
- data/vendor/v8/test/mjsunit/compiler/alloc-object-huge.js +3 -1
- data/vendor/v8/test/mjsunit/compiler/inline-accessors.js +368 -0
- data/vendor/v8/test/mjsunit/compiler/inline-arguments.js +87 -1
- data/vendor/v8/test/mjsunit/compiler/inline-closures.js +49 -0
- data/vendor/v8/test/mjsunit/compiler/inline-construct.js +55 -43
- data/vendor/v8/test/mjsunit/compiler/inline-literals.js +39 -0
- data/vendor/v8/test/mjsunit/compiler/multiply-add.js +69 -0
- data/vendor/v8/test/mjsunit/compiler/optimized-closures.js +57 -0
- data/vendor/v8/test/mjsunit/compiler/parallel-proto-change.js +44 -0
- data/vendor/v8/test/mjsunit/compiler/property-static.js +69 -0
- data/vendor/v8/test/mjsunit/compiler/proto-chain-constant.js +55 -0
- data/vendor/v8/test/mjsunit/compiler/proto-chain-load.js +44 -0
- data/vendor/v8/test/mjsunit/compiler/regress-gvn.js +3 -2
- data/vendor/v8/test/mjsunit/compiler/regress-or.js +6 -2
- data/vendor/v8/test/mjsunit/compiler/rotate.js +224 -0
- data/vendor/v8/test/mjsunit/compiler/uint32.js +173 -0
- data/vendor/v8/test/mjsunit/count-based-osr.js +2 -1
- data/vendor/v8/test/mjsunit/d8-os.js +3 -3
- data/vendor/v8/test/mjsunit/date-parse.js +3 -0
- data/vendor/v8/test/mjsunit/date.js +22 -0
- data/vendor/v8/test/mjsunit/debug-break-inline.js +1 -0
- data/vendor/v8/test/mjsunit/debug-evaluate-locals-optimized-double.js +22 -12
- data/vendor/v8/test/mjsunit/debug-evaluate-locals-optimized.js +21 -10
- data/vendor/v8/test/mjsunit/debug-liveedit-compile-error.js +60 -0
- data/vendor/v8/test/mjsunit/debug-liveedit-double-call.js +142 -0
- data/vendor/v8/test/mjsunit/debug-liveedit-literals.js +94 -0
- data/vendor/v8/test/mjsunit/debug-liveedit-restart-frame.js +153 -0
- data/vendor/v8/test/mjsunit/debug-multiple-breakpoints.js +1 -1
- data/vendor/v8/test/mjsunit/debug-script-breakpoints-closure.js +67 -0
- data/vendor/v8/test/mjsunit/debug-script-breakpoints-nested.js +82 -0
- data/vendor/v8/test/mjsunit/debug-script.js +4 -2
- data/vendor/v8/test/mjsunit/debug-set-variable-value.js +308 -0
- data/vendor/v8/test/mjsunit/debug-stepout-scope-part1.js +190 -0
- data/vendor/v8/test/mjsunit/debug-stepout-scope-part2.js +83 -0
- data/vendor/v8/test/mjsunit/debug-stepout-scope-part3.js +80 -0
- data/vendor/v8/test/mjsunit/debug-stepout-scope-part4.js +80 -0
- data/vendor/v8/test/mjsunit/debug-stepout-scope-part5.js +77 -0
- data/vendor/v8/test/mjsunit/debug-stepout-scope-part6.js +79 -0
- data/vendor/v8/test/mjsunit/debug-stepout-scope-part7.js +79 -0
- data/vendor/v8/test/mjsunit/{debug-stepout-scope.js → debug-stepout-scope-part8.js} +0 -189
- data/vendor/v8/test/mjsunit/delete-non-configurable.js +74 -0
- data/vendor/v8/test/mjsunit/deopt-minus-zero.js +56 -0
- data/vendor/v8/test/mjsunit/elements-kind.js +6 -4
- data/vendor/v8/test/mjsunit/elements-length-no-holey.js +33 -0
- data/vendor/v8/test/mjsunit/elements-transition-hoisting.js +46 -19
- data/vendor/v8/test/mjsunit/error-accessors.js +54 -0
- data/vendor/v8/test/mjsunit/error-constructors.js +1 -14
- data/vendor/v8/test/mjsunit/error-tostring.js +8 -0
- data/vendor/v8/test/mjsunit/eval-stack-trace.js +204 -0
- data/vendor/v8/test/mjsunit/external-array.js +364 -1
- data/vendor/v8/test/mjsunit/fast-array-length.js +37 -0
- data/vendor/v8/test/mjsunit/fast-non-keyed.js +113 -0
- data/vendor/v8/test/mjsunit/fast-prototype.js +117 -0
- data/vendor/v8/test/mjsunit/function-call.js +14 -18
- data/vendor/v8/test/mjsunit/fuzz-natives-part1.js +230 -0
- data/vendor/v8/test/mjsunit/fuzz-natives-part2.js +229 -0
- data/vendor/v8/test/mjsunit/fuzz-natives-part3.js +229 -0
- data/vendor/v8/test/mjsunit/{fuzz-natives.js → fuzz-natives-part4.js} +12 -2
- data/vendor/v8/test/mjsunit/generated-transition-stub.js +218 -0
- data/vendor/v8/test/mjsunit/greedy.js +1 -1
- data/vendor/v8/test/mjsunit/harmony/block-conflicts.js +2 -1
- data/vendor/v8/test/mjsunit/harmony/block-let-crankshaft.js +1 -1
- data/vendor/v8/test/mjsunit/harmony/collections.js +69 -11
- data/vendor/v8/test/mjsunit/harmony/debug-blockscopes.js +2 -2
- data/vendor/v8/test/mjsunit/harmony/module-linking.js +180 -3
- data/vendor/v8/test/mjsunit/harmony/module-parsing.js +31 -0
- data/vendor/v8/test/mjsunit/harmony/module-recompile.js +87 -0
- data/vendor/v8/test/mjsunit/harmony/module-resolution.js +15 -2
- data/vendor/v8/test/mjsunit/harmony/object-observe.js +1056 -0
- data/vendor/v8/test/mjsunit/harmony/proxies-json.js +178 -0
- data/vendor/v8/test/mjsunit/harmony/proxies.js +25 -10
- data/vendor/v8/test/mjsunit/json-parser-recursive.js +33 -0
- data/vendor/v8/test/mjsunit/json-stringify-recursive.js +52 -0
- data/vendor/v8/test/mjsunit/json.js +38 -2
- data/vendor/v8/test/mjsunit/json2.js +153 -0
- data/vendor/v8/test/mjsunit/limit-locals.js +5 -4
- data/vendor/v8/test/mjsunit/manual-parallel-recompile.js +79 -0
- data/vendor/v8/test/mjsunit/math-exp-precision.js +64 -0
- data/vendor/v8/test/mjsunit/math-floor-negative.js +59 -0
- data/vendor/v8/test/mjsunit/math-floor-of-div-minus-zero.js +41 -0
- data/vendor/v8/test/mjsunit/math-floor-of-div-nosudiv.js +288 -0
- data/vendor/v8/test/mjsunit/math-floor-of-div.js +81 -9
- data/vendor/v8/test/mjsunit/{math-floor.js → math-floor-part1.js} +1 -72
- data/vendor/v8/test/mjsunit/math-floor-part2.js +76 -0
- data/vendor/v8/test/mjsunit/math-floor-part3.js +78 -0
- data/vendor/v8/test/mjsunit/math-floor-part4.js +76 -0
- data/vendor/v8/test/mjsunit/mirror-object.js +43 -9
- data/vendor/v8/test/mjsunit/mjsunit.js +1 -1
- data/vendor/v8/test/mjsunit/mjsunit.status +52 -27
- data/vendor/v8/test/mjsunit/mul-exhaustive-part1.js +491 -0
- data/vendor/v8/test/mjsunit/mul-exhaustive-part10.js +470 -0
- data/vendor/v8/test/mjsunit/mul-exhaustive-part2.js +525 -0
- data/vendor/v8/test/mjsunit/mul-exhaustive-part3.js +532 -0
- data/vendor/v8/test/mjsunit/mul-exhaustive-part4.js +509 -0
- data/vendor/v8/test/mjsunit/mul-exhaustive-part5.js +505 -0
- data/vendor/v8/test/mjsunit/mul-exhaustive-part6.js +554 -0
- data/vendor/v8/test/mjsunit/mul-exhaustive-part7.js +497 -0
- data/vendor/v8/test/mjsunit/mul-exhaustive-part8.js +526 -0
- data/vendor/v8/test/mjsunit/mul-exhaustive-part9.js +533 -0
- data/vendor/v8/test/mjsunit/new-function.js +34 -0
- data/vendor/v8/test/mjsunit/numops-fuzz-part1.js +1172 -0
- data/vendor/v8/test/mjsunit/numops-fuzz-part2.js +1178 -0
- data/vendor/v8/test/mjsunit/numops-fuzz-part3.js +1178 -0
- data/vendor/v8/test/mjsunit/numops-fuzz-part4.js +1177 -0
- data/vendor/v8/test/mjsunit/object-define-property.js +107 -2
- data/vendor/v8/test/mjsunit/override-read-only-property.js +6 -4
- data/vendor/v8/test/mjsunit/packed-elements.js +2 -2
- data/vendor/v8/test/mjsunit/parse-int-float.js +4 -4
- data/vendor/v8/test/mjsunit/pixel-array-rounding.js +1 -1
- data/vendor/v8/test/mjsunit/readonly.js +228 -0
- data/vendor/v8/test/mjsunit/regexp-capture-3.js +16 -18
- data/vendor/v8/test/mjsunit/regexp-capture.js +2 -0
- data/vendor/v8/test/mjsunit/regexp-global.js +122 -0
- data/vendor/v8/test/mjsunit/regexp-results-cache.js +78 -0
- data/vendor/v8/test/mjsunit/regress/regress-1117.js +12 -3
- data/vendor/v8/test/mjsunit/regress/regress-1118.js +1 -1
- data/vendor/v8/test/mjsunit/regress/regress-115100.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-1199637.js +1 -3
- data/vendor/v8/test/mjsunit/regress/regress-121407.js +1 -1
- data/vendor/v8/test/mjsunit/regress/regress-131923.js +30 -0
- data/vendor/v8/test/mjsunit/regress/regress-131994.js +70 -0
- data/vendor/v8/test/mjsunit/regress/regress-133211.js +35 -0
- data/vendor/v8/test/mjsunit/regress/regress-133211b.js +39 -0
- data/vendor/v8/test/mjsunit/regress/regress-136048.js +34 -0
- data/vendor/v8/test/mjsunit/regress/regress-137768.js +73 -0
- data/vendor/v8/test/mjsunit/regress/regress-143967.js +34 -0
- data/vendor/v8/test/mjsunit/regress/regress-145201.js +107 -0
- data/vendor/v8/test/mjsunit/regress/regress-147497.js +45 -0
- data/vendor/v8/test/mjsunit/regress/regress-148378.js +38 -0
- data/vendor/v8/test/mjsunit/regress/regress-1563.js +1 -1
- data/vendor/v8/test/mjsunit/regress/regress-1591.js +48 -0
- data/vendor/v8/test/mjsunit/regress/regress-164442.js +45 -0
- data/vendor/v8/test/mjsunit/regress/regress-165637.js +61 -0
- data/vendor/v8/test/mjsunit/regress/regress-166379.js +39 -0
- data/vendor/v8/test/mjsunit/regress/regress-166553.js +33 -0
- data/vendor/v8/test/mjsunit/regress/regress-1692.js +1 -1
- data/vendor/v8/test/mjsunit/regress/regress-171641.js +40 -0
- data/vendor/v8/test/mjsunit/regress/regress-1980.js +1 -1
- data/vendor/v8/test/mjsunit/regress/regress-2073.js +99 -0
- data/vendor/v8/test/mjsunit/regress/regress-2119.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-2156.js +39 -0
- data/vendor/v8/test/mjsunit/regress/regress-2163.js +70 -0
- data/vendor/v8/test/mjsunit/regress/regress-2170.js +58 -0
- data/vendor/v8/test/mjsunit/regress/regress-2172.js +35 -0
- data/vendor/v8/test/mjsunit/regress/regress-2185-2.js +145 -0
- data/vendor/v8/test/mjsunit/regress/regress-2185.js +38 -0
- data/vendor/v8/test/mjsunit/regress/regress-2186.js +49 -0
- data/vendor/v8/test/mjsunit/regress/regress-2193.js +58 -0
- data/vendor/v8/test/mjsunit/regress/regress-2219.js +32 -0
- data/vendor/v8/test/mjsunit/regress/regress-2225.js +65 -0
- data/vendor/v8/test/mjsunit/regress/regress-2226.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-2234.js +41 -0
- data/vendor/v8/test/mjsunit/regress/regress-2243.js +31 -0
- data/vendor/v8/test/mjsunit/regress/regress-2249.js +33 -0
- data/vendor/v8/test/mjsunit/regress/regress-2250.js +68 -0
- data/vendor/v8/test/mjsunit/regress/regress-2261.js +113 -0
- data/vendor/v8/test/mjsunit/regress/regress-2263.js +30 -0
- data/vendor/v8/test/mjsunit/regress/regress-2284.js +32 -0
- data/vendor/v8/test/mjsunit/regress/regress-2285.js +32 -0
- data/vendor/v8/test/mjsunit/regress/regress-2286.js +32 -0
- data/vendor/v8/test/mjsunit/regress/regress-2289.js +34 -0
- data/vendor/v8/test/mjsunit/regress/regress-2291.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-2294.js +70 -0
- data/vendor/v8/test/mjsunit/regress/regress-2296.js +40 -0
- data/vendor/v8/test/mjsunit/regress/regress-2315.js +40 -0
- data/vendor/v8/test/mjsunit/regress/regress-2318.js +66 -0
- data/vendor/v8/test/mjsunit/regress/regress-2322.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-2326.js +54 -0
- data/vendor/v8/test/mjsunit/regress/regress-2336.js +53 -0
- data/vendor/v8/test/mjsunit/regress/regress-2339.js +59 -0
- data/vendor/v8/test/mjsunit/regress/regress-2346.js +123 -0
- data/vendor/v8/test/mjsunit/regress/regress-2373.js +29 -0
- data/vendor/v8/test/mjsunit/regress/regress-2374.js +33 -0
- data/vendor/v8/test/mjsunit/regress/regress-2398.js +41 -0
- data/vendor/v8/test/mjsunit/regress/regress-2410.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-2416.js +75 -0
- data/vendor/v8/test/mjsunit/regress/regress-2419.js +37 -0
- data/vendor/v8/test/mjsunit/regress/regress-2433.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-2437.js +156 -0
- data/vendor/v8/test/mjsunit/regress/regress-2438.js +52 -0
- data/vendor/v8/test/mjsunit/regress/regress-2443.js +129 -0
- data/vendor/v8/test/mjsunit/regress/regress-2444.js +120 -0
- data/vendor/v8/test/mjsunit/regress/regress-2489.js +50 -0
- data/vendor/v8/test/mjsunit/regress/regress-2499.js +40 -0
- data/vendor/v8/test/mjsunit/regress/regress-334.js +1 -1
- data/vendor/v8/test/mjsunit/regress/regress-492.js +39 -1
- data/vendor/v8/test/mjsunit/regress/regress-builtin-array-op.js +38 -0
- data/vendor/v8/test/mjsunit/regress/regress-cnlt-elements.js +43 -0
- data/vendor/v8/test/mjsunit/regress/regress-cnlt-enum-indices.js +45 -0
- data/vendor/v8/test/mjsunit/regress/regress-cntl-descriptors-enum.js +46 -0
- data/vendor/v8/test/mjsunit/regress/regress-convert-enum.js +60 -0
- data/vendor/v8/test/mjsunit/regress/regress-convert-enum2.js +46 -0
- data/vendor/v8/test/mjsunit/regress/regress-convert-transition.js +40 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-119926.js +3 -1
- data/vendor/v8/test/mjsunit/regress/regress-crbug-125148.js +90 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-134055.js +63 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-134609.js +59 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-135008.js +45 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-135066.js +55 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-137689.js +47 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-138887.js +48 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-140083.js +44 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-142087.js +38 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-142218.js +44 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-145961.js +39 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-146910.js +33 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-147475.js +48 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-148376.js +35 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-150545.js +53 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-150729.js +39 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-157019.js +54 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-157520.js +38 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-158185.js +39 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-160010.js +35 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-162085.js +71 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-168545.js +34 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-170856.js +33 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-172345.js +34 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-173974.js +36 -0
- data/vendor/v8/test/mjsunit/regress/regress-crbug-18639.js +9 -5
- data/vendor/v8/test/mjsunit/regress/regress-debug-code-recompilation.js +2 -1
- data/vendor/v8/test/mjsunit/regress/regress-deep-proto.js +45 -0
- data/vendor/v8/test/mjsunit/regress/regress-delete-empty-double.js +40 -0
- data/vendor/v8/test/mjsunit/regress/regress-iteration-order.js +42 -0
- data/vendor/v8/test/mjsunit/regress/regress-json-stringify-gc.js +41 -0
- data/vendor/v8/test/mjsunit/regress/regress-latin-1.js +78 -0
- data/vendor/v8/test/mjsunit/regress/regress-load-elements.js +49 -0
- data/vendor/v8/test/mjsunit/regress/regress-observe-empty-double-array.js +38 -0
- data/vendor/v8/test/mjsunit/regress/regress-undefined-store-keyed-fast-element.js +37 -0
- data/vendor/v8/test/mjsunit/shift-for-integer-div.js +59 -0
- data/vendor/v8/test/mjsunit/stack-traces-gc.js +119 -0
- data/vendor/v8/test/mjsunit/stack-traces-overflow.js +122 -0
- data/vendor/v8/test/mjsunit/stack-traces.js +39 -1
- data/vendor/v8/test/mjsunit/str-to-num.js +7 -2
- data/vendor/v8/test/mjsunit/strict-mode.js +36 -11
- data/vendor/v8/test/mjsunit/string-charcodeat.js +3 -0
- data/vendor/v8/test/mjsunit/string-natives.js +72 -0
- data/vendor/v8/test/mjsunit/string-split.js +17 -0
- data/vendor/v8/test/mjsunit/testcfg.py +76 -6
- data/vendor/v8/test/mjsunit/tools/tickprocessor.js +4 -1
- data/vendor/v8/test/mjsunit/try-finally-continue.js +72 -0
- data/vendor/v8/test/mjsunit/typed-array-slice.js +61 -0
- data/vendor/v8/test/mjsunit/unbox-double-arrays.js +2 -0
- data/vendor/v8/test/mjsunit/uri.js +12 -0
- data/vendor/v8/test/mjsunit/with-readonly.js +4 -2
- data/vendor/v8/test/mozilla/mozilla.status +19 -113
- data/vendor/v8/test/mozilla/testcfg.py +122 -3
- data/vendor/v8/test/preparser/preparser.status +5 -0
- data/vendor/v8/test/preparser/strict-identifiers.pyt +1 -1
- data/vendor/v8/test/preparser/testcfg.py +101 -5
- data/vendor/v8/test/sputnik/sputnik.status +1 -1
- data/vendor/v8/test/sputnik/testcfg.py +5 -0
- data/vendor/v8/test/test262/README +2 -2
- data/vendor/v8/test/test262/test262.status +13 -36
- data/vendor/v8/test/test262/testcfg.py +102 -8
- data/vendor/v8/tools/android-build.sh +0 -0
- data/vendor/v8/tools/android-ll-prof.sh +69 -0
- data/vendor/v8/tools/android-run.py +109 -0
- data/vendor/v8/tools/android-sync.sh +105 -0
- data/vendor/v8/tools/bash-completion.sh +0 -0
- data/vendor/v8/tools/check-static-initializers.sh +0 -0
- data/vendor/v8/tools/common-includes.sh +15 -22
- data/vendor/v8/tools/disasm.py +4 -4
- data/vendor/v8/tools/fuzz-harness.sh +0 -0
- data/vendor/v8/tools/gen-postmortem-metadata.py +6 -8
- data/vendor/v8/tools/grokdump.py +404 -129
- data/vendor/v8/tools/gyp/v8.gyp +105 -43
- data/vendor/v8/tools/linux-tick-processor +5 -5
- data/vendor/v8/tools/ll_prof.py +75 -15
- data/vendor/v8/tools/merge-to-branch.sh +2 -2
- data/vendor/v8/tools/plot-timer-events +70 -0
- data/vendor/v8/tools/plot-timer-events.js +510 -0
- data/vendor/v8/tools/presubmit.py +1 -0
- data/vendor/v8/tools/push-to-trunk.sh +14 -4
- data/vendor/v8/tools/run-llprof.sh +69 -0
- data/vendor/v8/tools/run-tests.py +372 -0
- data/vendor/v8/tools/run-valgrind.py +1 -1
- data/vendor/v8/tools/status-file-converter.py +39 -0
- data/vendor/v8/tools/test-server.py +224 -0
- data/vendor/v8/tools/test-wrapper-gypbuild.py +13 -16
- data/vendor/v8/tools/test.py +10 -19
- data/vendor/v8/tools/testrunner/README +174 -0
- data/vendor/v8/tools/testrunner/__init__.py +26 -0
- data/vendor/v8/tools/testrunner/local/__init__.py +26 -0
- data/vendor/v8/tools/testrunner/local/commands.py +153 -0
- data/vendor/v8/tools/testrunner/local/execution.py +182 -0
- data/vendor/v8/tools/testrunner/local/old_statusfile.py +460 -0
- data/vendor/v8/tools/testrunner/local/progress.py +238 -0
- data/vendor/v8/tools/testrunner/local/statusfile.py +145 -0
- data/vendor/v8/tools/testrunner/local/testsuite.py +187 -0
- data/vendor/v8/tools/testrunner/local/utils.py +108 -0
- data/vendor/v8/tools/testrunner/local/verbose.py +99 -0
- data/vendor/v8/tools/testrunner/network/__init__.py +26 -0
- data/vendor/v8/tools/testrunner/network/distro.py +90 -0
- data/vendor/v8/tools/testrunner/network/endpoint.py +124 -0
- data/vendor/v8/tools/testrunner/network/network_execution.py +253 -0
- data/vendor/v8/tools/testrunner/network/perfdata.py +120 -0
- data/vendor/v8/tools/testrunner/objects/__init__.py +26 -0
- data/vendor/v8/tools/testrunner/objects/context.py +50 -0
- data/vendor/v8/tools/testrunner/objects/output.py +60 -0
- data/vendor/v8/tools/testrunner/objects/peer.py +80 -0
- data/vendor/v8/tools/testrunner/objects/testcase.py +83 -0
- data/vendor/v8/tools/testrunner/objects/workpacket.py +90 -0
- data/vendor/v8/tools/testrunner/server/__init__.py +26 -0
- data/vendor/v8/tools/testrunner/server/compression.py +111 -0
- data/vendor/v8/tools/testrunner/server/constants.py +51 -0
- data/vendor/v8/tools/testrunner/server/daemon.py +147 -0
- data/vendor/v8/tools/testrunner/server/local_handler.py +119 -0
- data/vendor/v8/tools/testrunner/server/main.py +245 -0
- data/vendor/v8/tools/testrunner/server/presence_handler.py +120 -0
- data/vendor/v8/tools/testrunner/server/signatures.py +63 -0
- data/vendor/v8/tools/testrunner/server/status_handler.py +112 -0
- data/vendor/v8/tools/testrunner/server/work_handler.py +150 -0
- data/vendor/v8/tools/tick-processor.html +168 -0
- data/vendor/v8/tools/tickprocessor-driver.js +5 -3
- data/vendor/v8/tools/tickprocessor.js +58 -15
- metadata +534 -30
- data/patches/add-freebsd9-and-freebsd10-to-gyp-GetFlavor.patch +0 -11
- data/patches/do-not-imply-vfp3-and-armv7.patch +0 -44
- data/patches/fPIC-on-x64.patch +0 -14
- data/vendor/v8/src/liveobjectlist-inl.h +0 -126
- data/vendor/v8/src/liveobjectlist.cc +0 -2631
- data/vendor/v8/src/liveobjectlist.h +0 -319
- data/vendor/v8/test/mjsunit/mul-exhaustive.js +0 -4629
- data/vendor/v8/test/mjsunit/numops-fuzz.js +0 -4609
- data/vendor/v8/test/mjsunit/regress/regress-1969.js +0 -5045
@@ -45,7 +45,8 @@ class TokenEnumerator {
|
|
45
45
|
static const int kInheritsSecurityToken = -2;
|
46
46
|
|
47
47
|
private:
|
48
|
-
static void TokenRemovedCallback(v8::
|
48
|
+
static void TokenRemovedCallback(v8::Isolate* isolate,
|
49
|
+
v8::Persistent<v8::Value> handle,
|
49
50
|
void* parameter);
|
50
51
|
void TokenRemoved(Object** token_location);
|
51
52
|
|
@@ -72,6 +73,7 @@ class StringsStorage {
|
|
72
73
|
const char* GetName(int index);
|
73
74
|
inline const char* GetFunctionName(String* name);
|
74
75
|
inline const char* GetFunctionName(const char* name);
|
76
|
+
size_t GetUsedMemorySize() const;
|
75
77
|
|
76
78
|
private:
|
77
79
|
static const int kMaxNameSize = 1024;
|
@@ -649,7 +651,8 @@ class HeapObjectsMap {
|
|
649
651
|
}
|
650
652
|
|
651
653
|
void StopHeapObjectsTracking();
|
652
|
-
|
654
|
+
SnapshotObjectId PushHeapObjectsStats(OutputStream* stream);
|
655
|
+
size_t GetUsedMemorySize() const;
|
653
656
|
|
654
657
|
static SnapshotObjectId GenerateId(v8::RetainedObjectInfo* info);
|
655
658
|
static inline SnapshotObjectId GetNthGcSubrootId(int delta);
|
@@ -707,7 +710,7 @@ class HeapSnapshotsCollection {
|
|
707
710
|
~HeapSnapshotsCollection();
|
708
711
|
|
709
712
|
bool is_tracking_objects() { return is_tracking_objects_; }
|
710
|
-
|
713
|
+
SnapshotObjectId PushHeapObjectsStats(OutputStream* stream) {
|
711
714
|
return ids_.PushHeapObjectsStats(stream);
|
712
715
|
}
|
713
716
|
void StartHeapObjectsTracking() { is_tracking_objects_ = true; }
|
@@ -734,6 +737,7 @@ class HeapSnapshotsCollection {
|
|
734
737
|
SnapshotObjectId last_assigned_id() const {
|
735
738
|
return ids_.last_assigned_id();
|
736
739
|
}
|
740
|
+
size_t GetUsedMemorySize() const;
|
737
741
|
|
738
742
|
private:
|
739
743
|
INLINE(static bool HeapSnapshotsMatch(void* key1, void* key2)) {
|
@@ -848,7 +852,8 @@ class SnapshottingProgressReportingInterface {
|
|
848
852
|
class V8HeapExplorer : public HeapEntriesAllocator {
|
849
853
|
public:
|
850
854
|
V8HeapExplorer(HeapSnapshot* snapshot,
|
851
|
-
SnapshottingProgressReportingInterface* progress
|
855
|
+
SnapshottingProgressReportingInterface* progress,
|
856
|
+
v8::HeapProfiler::ObjectNameResolver* resolver);
|
852
857
|
virtual ~V8HeapExplorer();
|
853
858
|
virtual HeapEntry* AllocateEntry(HeapThing ptr);
|
854
859
|
void AddRootEntries(SnapshotFillerInterface* filler);
|
@@ -922,10 +927,6 @@ class V8HeapExplorer : public HeapEntriesAllocator {
|
|
922
927
|
Object* child,
|
923
928
|
const char* name_format_string = NULL,
|
924
929
|
int field_offset = -1);
|
925
|
-
void SetPropertyShortcutReference(HeapObject* parent_obj,
|
926
|
-
int parent,
|
927
|
-
String* reference_name,
|
928
|
-
Object* child);
|
929
930
|
void SetUserGlobalReference(Object* user_global);
|
930
931
|
void SetRootGcRootsReference();
|
931
932
|
void SetGcRootsReference(VisitorSynchronization::SyncTag tag);
|
@@ -946,6 +947,7 @@ class V8HeapExplorer : public HeapEntriesAllocator {
|
|
946
947
|
SnapshotFillerInterface* filler_;
|
947
948
|
HeapObjectsSet objects_tags_;
|
948
949
|
HeapObjectsSet strong_gc_subroot_names_;
|
950
|
+
v8::HeapProfiler::ObjectNameResolver* global_object_name_resolver_;
|
949
951
|
|
950
952
|
static HeapObject* const kGcRootsObject;
|
951
953
|
static HeapObject* const kFirstGcSubrootObject;
|
@@ -1022,7 +1024,8 @@ class NativeObjectsExplorer {
|
|
1022
1024
|
class HeapSnapshotGenerator : public SnapshottingProgressReportingInterface {
|
1023
1025
|
public:
|
1024
1026
|
HeapSnapshotGenerator(HeapSnapshot* snapshot,
|
1025
|
-
v8::ActivityControl* control
|
1027
|
+
v8::ActivityControl* control,
|
1028
|
+
v8::HeapProfiler::ObjectNameResolver* resolver);
|
1026
1029
|
bool GenerateSnapshot();
|
1027
1030
|
|
1028
1031
|
private:
|
@@ -1072,10 +1075,10 @@ class HeapSnapshotJSONSerializer {
|
|
1072
1075
|
int GetStringId(const char* s);
|
1073
1076
|
int entry_index(HeapEntry* e) { return e->index() * kNodeFieldsCount; }
|
1074
1077
|
void SerializeEdge(HeapGraphEdge* edge, bool first_edge);
|
1075
|
-
void SerializeEdges(
|
1078
|
+
void SerializeEdges();
|
1076
1079
|
void SerializeImpl();
|
1077
|
-
void SerializeNode(HeapEntry* entry
|
1078
|
-
void SerializeNodes(
|
1080
|
+
void SerializeNode(HeapEntry* entry);
|
1081
|
+
void SerializeNodes();
|
1079
1082
|
void SerializeSnapshot();
|
1080
1083
|
void SerializeString(const unsigned char* s);
|
1081
1084
|
void SerializeStrings();
|
@@ -38,6 +38,10 @@ enum PropertyAttributes {
|
|
38
38
|
READ_ONLY = v8::ReadOnly,
|
39
39
|
DONT_ENUM = v8::DontEnum,
|
40
40
|
DONT_DELETE = v8::DontDelete,
|
41
|
+
|
42
|
+
SEALED = DONT_ENUM | DONT_DELETE,
|
43
|
+
FROZEN = SEALED | READ_ONLY,
|
44
|
+
|
41
45
|
ABSENT = 16 // Used in runtime to indicate a property is absent.
|
42
46
|
// ABSENT can never be stored in or returned from a descriptor's attributes
|
43
47
|
// bitfield. It is only used as a return value meaning the attributes of
|
@@ -55,21 +59,18 @@ class Smi;
|
|
55
59
|
// Must fit in the BitField PropertyDetails::TypeField.
|
56
60
|
// A copy of this is in mirror-debugger.js.
|
57
61
|
enum PropertyType {
|
58
|
-
|
59
|
-
|
60
|
-
|
62
|
+
// Only in slow mode.
|
63
|
+
NORMAL = 0,
|
64
|
+
// Only in fast mode.
|
65
|
+
FIELD = 1,
|
66
|
+
CONSTANT_FUNCTION = 2,
|
61
67
|
CALLBACKS = 3,
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
NULL_DESCRIPTOR = 9, // only in fast mode
|
69
|
-
// There are no IC stubs for NULL_DESCRIPTORS. Therefore,
|
70
|
-
// NULL_DESCRIPTOR can be used as the type flag for IC stubs for
|
71
|
-
// nonexistent properties.
|
72
|
-
NONEXISTENT = NULL_DESCRIPTOR
|
68
|
+
// Only in lookup results, not in descriptors.
|
69
|
+
HANDLER = 4,
|
70
|
+
INTERCEPTOR = 5,
|
71
|
+
TRANSITION = 6,
|
72
|
+
// Only used as a marker in LookupResult.
|
73
|
+
NONEXISTENT = 7
|
73
74
|
};
|
74
75
|
|
75
76
|
|
@@ -80,50 +81,64 @@ class PropertyDetails BASE_EMBEDDED {
|
|
80
81
|
PropertyDetails(PropertyAttributes attributes,
|
81
82
|
PropertyType type,
|
82
83
|
int index = 0) {
|
83
|
-
ASSERT(TypeField::is_valid(type));
|
84
|
-
ASSERT(AttributesField::is_valid(attributes));
|
85
|
-
ASSERT(StorageField::is_valid(index));
|
86
|
-
|
87
84
|
value_ = TypeField::encode(type)
|
88
85
|
| AttributesField::encode(attributes)
|
89
|
-
|
|
86
|
+
| DictionaryStorageField::encode(index);
|
90
87
|
|
91
88
|
ASSERT(type == this->type());
|
92
89
|
ASSERT(attributes == this->attributes());
|
93
|
-
ASSERT(index == this->
|
90
|
+
ASSERT(index == this->dictionary_index());
|
94
91
|
}
|
95
92
|
|
93
|
+
int pointer() { return DescriptorPointer::decode(value_); }
|
94
|
+
|
95
|
+
PropertyDetails set_pointer(int i) { return PropertyDetails(value_, i); }
|
96
|
+
|
96
97
|
// Conversion for storing details as Object*.
|
97
98
|
explicit inline PropertyDetails(Smi* smi);
|
98
99
|
inline Smi* AsSmi();
|
99
100
|
|
100
101
|
PropertyType type() { return TypeField::decode(value_); }
|
101
102
|
|
102
|
-
PropertyAttributes attributes() {
|
103
|
+
PropertyAttributes attributes() const {
|
104
|
+
return AttributesField::decode(value_);
|
105
|
+
}
|
103
106
|
|
104
|
-
int
|
107
|
+
int dictionary_index() {
|
108
|
+
return DictionaryStorageField::decode(value_);
|
109
|
+
}
|
110
|
+
|
111
|
+
int descriptor_index() {
|
112
|
+
return DescriptorStorageField::decode(value_);
|
113
|
+
}
|
105
114
|
|
106
115
|
inline PropertyDetails AsDeleted();
|
107
116
|
|
108
117
|
static bool IsValidIndex(int index) {
|
109
|
-
return
|
118
|
+
return DictionaryStorageField::is_valid(index);
|
110
119
|
}
|
111
120
|
|
112
|
-
bool IsReadOnly() { return (attributes() & READ_ONLY) != 0; }
|
113
|
-
bool IsDontDelete() { return (attributes() & DONT_DELETE) != 0; }
|
114
|
-
bool IsDontEnum() { return (attributes() & DONT_ENUM) != 0; }
|
115
|
-
bool IsDeleted() { return DeletedField::decode(value_) != 0;}
|
121
|
+
bool IsReadOnly() const { return (attributes() & READ_ONLY) != 0; }
|
122
|
+
bool IsDontDelete() const { return (attributes() & DONT_DELETE) != 0; }
|
123
|
+
bool IsDontEnum() const { return (attributes() & DONT_ENUM) != 0; }
|
124
|
+
bool IsDeleted() const { return DeletedField::decode(value_) != 0;}
|
116
125
|
|
117
126
|
// Bit fields in value_ (type, shift, size). Must be public so the
|
118
127
|
// constants can be embedded in generated code.
|
119
|
-
class TypeField:
|
120
|
-
class AttributesField:
|
121
|
-
class DeletedField:
|
122
|
-
class
|
128
|
+
class TypeField: public BitField<PropertyType, 0, 3> {};
|
129
|
+
class AttributesField: public BitField<PropertyAttributes, 3, 3> {};
|
130
|
+
class DeletedField: public BitField<uint32_t, 6, 1> {};
|
131
|
+
class DictionaryStorageField: public BitField<uint32_t, 7, 24> {};
|
132
|
+
class DescriptorStorageField: public BitField<uint32_t, 7, 11> {};
|
133
|
+
class DescriptorPointer: public BitField<uint32_t, 18, 11> {};
|
123
134
|
|
124
135
|
static const int kInitialIndex = 1;
|
125
136
|
|
126
137
|
private:
|
138
|
+
PropertyDetails(int value, int pointer) {
|
139
|
+
value_ = DescriptorPointer::update(value, pointer);
|
140
|
+
}
|
141
|
+
|
127
142
|
uint32_t value_;
|
128
143
|
};
|
129
144
|
|
data/vendor/v8/src/property.cc
CHANGED
@@ -55,18 +55,6 @@ void LookupResult::Print(FILE* out) {
|
|
55
55
|
PrintF(out, " -type = normal\n");
|
56
56
|
PrintF(out, " -entry = %d", GetDictionaryEntry());
|
57
57
|
break;
|
58
|
-
case MAP_TRANSITION:
|
59
|
-
PrintF(out, " -type = map transition\n");
|
60
|
-
PrintF(out, " -map:\n");
|
61
|
-
GetTransitionMap()->Print(out);
|
62
|
-
PrintF(out, "\n");
|
63
|
-
break;
|
64
|
-
case ELEMENTS_TRANSITION:
|
65
|
-
PrintF(out, " -type = elements transition\n");
|
66
|
-
PrintF(out, " -map:\n");
|
67
|
-
GetTransitionMap()->Print(out);
|
68
|
-
PrintF(out, "\n");
|
69
|
-
break;
|
70
58
|
case CONSTANT_FUNCTION:
|
71
59
|
PrintF(out, " -type = constant function\n");
|
72
60
|
PrintF(out, " -function:\n");
|
@@ -75,7 +63,7 @@ void LookupResult::Print(FILE* out) {
|
|
75
63
|
break;
|
76
64
|
case FIELD:
|
77
65
|
PrintF(out, " -type = field\n");
|
78
|
-
PrintF(out, " -index = %d", GetFieldIndex());
|
66
|
+
PrintF(out, " -index = %d", GetFieldIndex().field_index());
|
79
67
|
PrintF(out, "\n");
|
80
68
|
break;
|
81
69
|
case CALLBACKS:
|
@@ -89,14 +77,31 @@ void LookupResult::Print(FILE* out) {
|
|
89
77
|
case INTERCEPTOR:
|
90
78
|
PrintF(out, " -type = lookup interceptor\n");
|
91
79
|
break;
|
92
|
-
case
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
80
|
+
case TRANSITION:
|
81
|
+
switch (GetTransitionDetails().type()) {
|
82
|
+
case FIELD:
|
83
|
+
PrintF(out, " -type = map transition\n");
|
84
|
+
PrintF(out, " -map:\n");
|
85
|
+
GetTransitionMap()->Print(out);
|
86
|
+
PrintF(out, "\n");
|
87
|
+
return;
|
88
|
+
case CONSTANT_FUNCTION:
|
89
|
+
PrintF(out, " -type = constant property transition\n");
|
90
|
+
PrintF(out, " -map:\n");
|
91
|
+
GetTransitionMap()->Print(out);
|
92
|
+
PrintF(out, "\n");
|
93
|
+
return;
|
94
|
+
case CALLBACKS:
|
95
|
+
PrintF(out, " -type = callbacks transition\n");
|
96
|
+
PrintF(out, " -callback object:\n");
|
97
|
+
GetCallbackObject()->Print(out);
|
98
|
+
return;
|
99
|
+
default:
|
100
|
+
UNREACHABLE();
|
101
|
+
return;
|
102
|
+
}
|
103
|
+
case NONEXISTENT:
|
104
|
+
UNREACHABLE();
|
100
105
|
break;
|
101
106
|
}
|
102
107
|
}
|
@@ -107,35 +112,11 @@ void Descriptor::Print(FILE* out) {
|
|
107
112
|
GetKey()->ShortPrint(out);
|
108
113
|
PrintF(out, " @ ");
|
109
114
|
GetValue()->ShortPrint(out);
|
110
|
-
PrintF(out, " %d\n", GetDetails().
|
115
|
+
PrintF(out, " %d\n", GetDetails().descriptor_index());
|
111
116
|
}
|
112
117
|
|
113
118
|
|
114
119
|
#endif
|
115
120
|
|
116
121
|
|
117
|
-
bool Descriptor::ContainsTransition() {
|
118
|
-
switch (details_.type()) {
|
119
|
-
case MAP_TRANSITION:
|
120
|
-
case CONSTANT_TRANSITION:
|
121
|
-
case ELEMENTS_TRANSITION:
|
122
|
-
return true;
|
123
|
-
case CALLBACKS: {
|
124
|
-
if (!value_->IsAccessorPair()) return false;
|
125
|
-
AccessorPair* accessors = AccessorPair::cast(value_);
|
126
|
-
return accessors->getter()->IsMap() || accessors->setter()->IsMap();
|
127
|
-
}
|
128
|
-
case NORMAL:
|
129
|
-
case FIELD:
|
130
|
-
case CONSTANT_FUNCTION:
|
131
|
-
case HANDLER:
|
132
|
-
case INTERCEPTOR:
|
133
|
-
case NULL_DESCRIPTOR:
|
134
|
-
return false;
|
135
|
-
}
|
136
|
-
UNREACHABLE(); // Keep the compiler happy.
|
137
|
-
return false;
|
138
|
-
}
|
139
|
-
|
140
|
-
|
141
122
|
} } // namespace v8::internal
|
data/vendor/v8/src/property.h
CHANGED
@@ -29,6 +29,7 @@
|
|
29
29
|
#define V8_PROPERTY_H_
|
30
30
|
|
31
31
|
#include "allocation.h"
|
32
|
+
#include "transitions.h"
|
32
33
|
|
33
34
|
namespace v8 {
|
34
35
|
namespace internal {
|
@@ -64,11 +65,10 @@ class Descriptor BASE_EMBEDDED {
|
|
64
65
|
#endif
|
65
66
|
|
66
67
|
void SetEnumerationIndex(int index) {
|
67
|
-
ASSERT(PropertyDetails::IsValidIndex(index));
|
68
68
|
details_ = PropertyDetails(details_.attributes(), details_.type(), index);
|
69
69
|
}
|
70
70
|
|
71
|
-
|
71
|
+
void SetSortedKeyIndex(int index) { details_ = details_.set_pointer(index); }
|
72
72
|
|
73
73
|
private:
|
74
74
|
String* key_;
|
@@ -93,7 +93,7 @@ class Descriptor BASE_EMBEDDED {
|
|
93
93
|
Object* value,
|
94
94
|
PropertyAttributes attributes,
|
95
95
|
PropertyType type,
|
96
|
-
int index
|
96
|
+
int index)
|
97
97
|
: key_(key),
|
98
98
|
value_(value),
|
99
99
|
details_(attributes, type, index) { }
|
@@ -101,35 +101,6 @@ class Descriptor BASE_EMBEDDED {
|
|
101
101
|
friend class DescriptorArray;
|
102
102
|
};
|
103
103
|
|
104
|
-
// A pointer from a map to the new map that is created by adding
|
105
|
-
// a named property. These are key to the speed and functioning of V8.
|
106
|
-
// The two maps should always have the same prototype, since
|
107
|
-
// MapSpace::CreateBackPointers depends on this.
|
108
|
-
class MapTransitionDescriptor: public Descriptor {
|
109
|
-
public:
|
110
|
-
MapTransitionDescriptor(String* key, Map* map, PropertyAttributes attributes)
|
111
|
-
: Descriptor(key, map, attributes, MAP_TRANSITION) { }
|
112
|
-
};
|
113
|
-
|
114
|
-
class ElementsTransitionDescriptor: public Descriptor {
|
115
|
-
public:
|
116
|
-
ElementsTransitionDescriptor(String* key,
|
117
|
-
Object* map_or_array)
|
118
|
-
: Descriptor(key, map_or_array, PropertyDetails(NONE,
|
119
|
-
ELEMENTS_TRANSITION)) { }
|
120
|
-
};
|
121
|
-
|
122
|
-
// Marks a field name in a map so that adding the field is guaranteed
|
123
|
-
// to create a FIELD descriptor in the new map. Used after adding
|
124
|
-
// a constant function the first time, creating a CONSTANT_FUNCTION
|
125
|
-
// descriptor in the new map. This avoids creating multiple maps with
|
126
|
-
// the same CONSTANT_FUNCTION field.
|
127
|
-
class ConstTransitionDescriptor: public Descriptor {
|
128
|
-
public:
|
129
|
-
explicit ConstTransitionDescriptor(String* key, Map* map)
|
130
|
-
: Descriptor(key, map, NONE, CONSTANT_TRANSITION) { }
|
131
|
-
};
|
132
|
-
|
133
104
|
|
134
105
|
class FieldDescriptor: public Descriptor {
|
135
106
|
public:
|
@@ -146,7 +117,7 @@ class ConstantFunctionDescriptor: public Descriptor {
|
|
146
117
|
ConstantFunctionDescriptor(String* key,
|
147
118
|
JSFunction* function,
|
148
119
|
PropertyAttributes attributes,
|
149
|
-
int index
|
120
|
+
int index)
|
150
121
|
: Descriptor(key, function, attributes, CONSTANT_FUNCTION, index) {}
|
151
122
|
};
|
152
123
|
|
@@ -161,33 +132,42 @@ class CallbacksDescriptor: public Descriptor {
|
|
161
132
|
};
|
162
133
|
|
163
134
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
135
|
+
// Holds a property index value distinguishing if it is a field index or an
|
136
|
+
// index inside the object header.
|
137
|
+
class PropertyIndex {
|
138
|
+
public:
|
139
|
+
static PropertyIndex NewFieldIndex(int index) {
|
140
|
+
return PropertyIndex(index, false);
|
141
|
+
}
|
142
|
+
static PropertyIndex NewHeaderIndex(int index) {
|
143
|
+
return PropertyIndex(index, true);
|
144
|
+
}
|
145
|
+
|
146
|
+
bool is_field_index() { return (index_ & kHeaderIndexBit) == 0; }
|
147
|
+
bool is_header_index() { return (index_ & kHeaderIndexBit) != 0; }
|
148
|
+
|
149
|
+
int field_index() {
|
150
|
+
ASSERT(is_field_index());
|
151
|
+
return value();
|
152
|
+
}
|
153
|
+
int header_index() {
|
154
|
+
ASSERT(is_header_index());
|
155
|
+
return value();
|
156
|
+
}
|
157
|
+
|
158
|
+
private:
|
159
|
+
static const int kHeaderIndexBit = 1 << 31;
|
160
|
+
static const int kIndexMask = ~kHeaderIndexBit;
|
161
|
+
|
162
|
+
int value() { return index_ & kIndexMask; }
|
163
|
+
|
164
|
+
PropertyIndex(int index, bool is_header_based)
|
165
|
+
: index_(index | (is_header_based ? kHeaderIndexBit : 0)) {
|
166
|
+
ASSERT(index <= kIndexMask);
|
187
167
|
}
|
188
|
-
|
189
|
-
|
190
|
-
}
|
168
|
+
|
169
|
+
int index_;
|
170
|
+
};
|
191
171
|
|
192
172
|
|
193
173
|
class LookupResult BASE_EMBEDDED {
|
@@ -198,7 +178,7 @@ class LookupResult BASE_EMBEDDED {
|
|
198
178
|
lookup_type_(NOT_FOUND),
|
199
179
|
holder_(NULL),
|
200
180
|
cacheable_(true),
|
201
|
-
details_(NONE,
|
181
|
+
details_(NONE, NONEXISTENT) {
|
202
182
|
isolate->SetTopLookupResult(this);
|
203
183
|
}
|
204
184
|
|
@@ -214,6 +194,13 @@ class LookupResult BASE_EMBEDDED {
|
|
214
194
|
number_ = number;
|
215
195
|
}
|
216
196
|
|
197
|
+
void TransitionResult(JSObject* holder, int number) {
|
198
|
+
lookup_type_ = TRANSITION_TYPE;
|
199
|
+
details_ = PropertyDetails(NONE, TRANSITION);
|
200
|
+
holder_ = holder;
|
201
|
+
number_ = number;
|
202
|
+
}
|
203
|
+
|
217
204
|
void ConstantResult(JSObject* holder) {
|
218
205
|
lookup_type_ = CONSTANT_TYPE;
|
219
206
|
holder_ = holder;
|
@@ -246,6 +233,7 @@ class LookupResult BASE_EMBEDDED {
|
|
246
233
|
|
247
234
|
void NotFound() {
|
248
235
|
lookup_type_ = NOT_FOUND;
|
236
|
+
details_ = PropertyDetails(NONE, NONEXISTENT);
|
249
237
|
holder_ = NULL;
|
250
238
|
}
|
251
239
|
|
@@ -265,24 +253,81 @@ class LookupResult BASE_EMBEDDED {
|
|
265
253
|
}
|
266
254
|
|
267
255
|
PropertyAttributes GetAttributes() {
|
256
|
+
ASSERT(!IsTransition());
|
268
257
|
ASSERT(IsFound());
|
258
|
+
ASSERT(details_.type() != NONEXISTENT);
|
269
259
|
return details_.attributes();
|
270
260
|
}
|
271
261
|
|
272
262
|
PropertyDetails GetPropertyDetails() {
|
263
|
+
ASSERT(!IsTransition());
|
273
264
|
return details_;
|
274
265
|
}
|
275
266
|
|
276
|
-
bool
|
267
|
+
bool IsFastPropertyType() {
|
268
|
+
ASSERT(IsFound());
|
269
|
+
return IsTransition() || type() != NORMAL;
|
270
|
+
}
|
271
|
+
|
272
|
+
// Property callbacks does not include transitions to callbacks.
|
273
|
+
bool IsPropertyCallbacks() {
|
274
|
+
ASSERT(!(details_.type() == CALLBACKS && !IsFound()));
|
275
|
+
return details_.type() == CALLBACKS;
|
276
|
+
}
|
277
|
+
|
278
|
+
bool IsReadOnly() {
|
279
|
+
ASSERT(IsFound());
|
280
|
+
ASSERT(!IsTransition());
|
281
|
+
ASSERT(details_.type() != NONEXISTENT);
|
282
|
+
return details_.IsReadOnly();
|
283
|
+
}
|
284
|
+
|
285
|
+
bool IsField() {
|
286
|
+
ASSERT(!(details_.type() == FIELD && !IsFound()));
|
287
|
+
return details_.type() == FIELD;
|
288
|
+
}
|
289
|
+
|
290
|
+
bool IsNormal() {
|
291
|
+
ASSERT(!(details_.type() == NORMAL && !IsFound()));
|
292
|
+
return details_.type() == NORMAL;
|
293
|
+
}
|
294
|
+
|
295
|
+
bool IsConstantFunction() {
|
296
|
+
ASSERT(!(details_.type() == CONSTANT_FUNCTION && !IsFound()));
|
297
|
+
return details_.type() == CONSTANT_FUNCTION;
|
298
|
+
}
|
299
|
+
|
277
300
|
bool IsDontDelete() { return details_.IsDontDelete(); }
|
278
301
|
bool IsDontEnum() { return details_.IsDontEnum(); }
|
279
302
|
bool IsDeleted() { return details_.IsDeleted(); }
|
280
303
|
bool IsFound() { return lookup_type_ != NOT_FOUND; }
|
304
|
+
bool IsTransition() { return lookup_type_ == TRANSITION_TYPE; }
|
281
305
|
bool IsHandler() { return lookup_type_ == HANDLER_TYPE; }
|
306
|
+
bool IsInterceptor() { return lookup_type_ == INTERCEPTOR_TYPE; }
|
282
307
|
|
283
308
|
// Is the result is a property excluding transitions and the null descriptor?
|
284
309
|
bool IsProperty() {
|
285
|
-
return IsFound() &&
|
310
|
+
return IsFound() && !IsTransition();
|
311
|
+
}
|
312
|
+
|
313
|
+
bool IsDataProperty() {
|
314
|
+
switch (type()) {
|
315
|
+
case FIELD:
|
316
|
+
case NORMAL:
|
317
|
+
case CONSTANT_FUNCTION:
|
318
|
+
return true;
|
319
|
+
case CALLBACKS: {
|
320
|
+
Object* callback = GetCallbackObject();
|
321
|
+
return callback->IsAccessorInfo() || callback->IsForeign();
|
322
|
+
}
|
323
|
+
case HANDLER:
|
324
|
+
case INTERCEPTOR:
|
325
|
+
case TRANSITION:
|
326
|
+
case NONEXISTENT:
|
327
|
+
return false;
|
328
|
+
}
|
329
|
+
UNREACHABLE();
|
330
|
+
return false;
|
286
331
|
}
|
287
332
|
|
288
333
|
bool IsCacheable() { return cacheable_; }
|
@@ -291,7 +336,7 @@ class LookupResult BASE_EMBEDDED {
|
|
291
336
|
Object* GetLazyValue() {
|
292
337
|
switch (type()) {
|
293
338
|
case FIELD:
|
294
|
-
return holder()->FastPropertyAt(GetFieldIndex());
|
339
|
+
return holder()->FastPropertyAt(GetFieldIndex().field_index());
|
295
340
|
case NORMAL: {
|
296
341
|
Object* value;
|
297
342
|
value = holder()->property_dictionary()->ValueAt(GetDictionaryEntry());
|
@@ -302,37 +347,67 @@ class LookupResult BASE_EMBEDDED {
|
|
302
347
|
}
|
303
348
|
case CONSTANT_FUNCTION:
|
304
349
|
return GetConstantFunction();
|
305
|
-
|
306
|
-
|
350
|
+
case CALLBACKS:
|
351
|
+
case HANDLER:
|
352
|
+
case INTERCEPTOR:
|
353
|
+
case TRANSITION:
|
354
|
+
case NONEXISTENT:
|
355
|
+
return Isolate::Current()->heap()->the_hole_value();
|
307
356
|
}
|
357
|
+
UNREACHABLE();
|
358
|
+
return NULL;
|
359
|
+
}
|
360
|
+
|
361
|
+
Map* GetTransitionTarget() {
|
362
|
+
ASSERT(IsTransition());
|
363
|
+
TransitionArray* transitions = holder()->map()->transitions();
|
364
|
+
return transitions->GetTarget(number_);
|
308
365
|
}
|
309
366
|
|
367
|
+
PropertyDetails GetTransitionDetails(Map* map) {
|
368
|
+
ASSERT(IsTransition());
|
369
|
+
TransitionArray* transitions = map->transitions();
|
370
|
+
return transitions->GetTargetDetails(number_);
|
371
|
+
}
|
372
|
+
|
373
|
+
PropertyDetails GetTransitionDetails() {
|
374
|
+
return GetTransitionDetails(holder()->map());
|
375
|
+
}
|
376
|
+
|
377
|
+
bool IsTransitionToField(Map* map) {
|
378
|
+
return IsTransition() && GetTransitionDetails(map).type() == FIELD;
|
379
|
+
}
|
310
380
|
|
311
381
|
Map* GetTransitionMap() {
|
312
|
-
ASSERT(
|
313
|
-
ASSERT(type() == MAP_TRANSITION ||
|
314
|
-
type() == ELEMENTS_TRANSITION ||
|
315
|
-
type() == CONSTANT_TRANSITION);
|
382
|
+
ASSERT(IsTransition());
|
316
383
|
return Map::cast(GetValue());
|
317
384
|
}
|
318
385
|
|
319
386
|
Map* GetTransitionMapFromMap(Map* map) {
|
387
|
+
ASSERT(IsTransition());
|
388
|
+
return map->transitions()->GetTarget(number_);
|
389
|
+
}
|
390
|
+
|
391
|
+
int GetTransitionIndex() {
|
392
|
+
ASSERT(IsTransition());
|
393
|
+
return number_;
|
394
|
+
}
|
395
|
+
|
396
|
+
int GetDescriptorIndex() {
|
320
397
|
ASSERT(lookup_type_ == DESCRIPTOR_TYPE);
|
321
|
-
|
322
|
-
return Map::cast(map->instance_descriptors()->GetValue(number_));
|
398
|
+
return number_;
|
323
399
|
}
|
324
400
|
|
325
|
-
|
401
|
+
PropertyIndex GetFieldIndex() {
|
326
402
|
ASSERT(lookup_type_ == DESCRIPTOR_TYPE);
|
327
|
-
ASSERT(
|
328
|
-
return
|
403
|
+
ASSERT(IsField());
|
404
|
+
return PropertyIndex::NewFieldIndex(
|
405
|
+
Descriptor::IndexFromValue(GetValue()));
|
329
406
|
}
|
330
407
|
|
331
408
|
int GetLocalFieldIndexFromMap(Map* map) {
|
332
|
-
ASSERT(
|
333
|
-
|
334
|
-
return Descriptor::IndexFromValue(
|
335
|
-
map->instance_descriptors()->GetValue(number_)) -
|
409
|
+
ASSERT(IsField());
|
410
|
+
return Descriptor::IndexFromValue(GetValueFromMap(map)) -
|
336
411
|
map->inobject_properties();
|
337
412
|
}
|
338
413
|
|
@@ -347,16 +422,15 @@ class LookupResult BASE_EMBEDDED {
|
|
347
422
|
}
|
348
423
|
|
349
424
|
JSFunction* GetConstantFunctionFromMap(Map* map) {
|
350
|
-
ASSERT(lookup_type_ == DESCRIPTOR_TYPE);
|
351
425
|
ASSERT(type() == CONSTANT_FUNCTION);
|
352
|
-
return JSFunction::cast(map
|
426
|
+
return JSFunction::cast(GetValueFromMap(map));
|
353
427
|
}
|
354
428
|
|
355
429
|
Object* GetCallbackObject() {
|
356
430
|
if (lookup_type_ == CONSTANT_TYPE) {
|
357
|
-
// For now we only have the __proto__ as constant type.
|
358
431
|
return HEAP->prototype_accessors();
|
359
432
|
}
|
433
|
+
ASSERT(!IsTransition());
|
360
434
|
return GetValue();
|
361
435
|
}
|
362
436
|
|
@@ -366,14 +440,19 @@ class LookupResult BASE_EMBEDDED {
|
|
366
440
|
|
367
441
|
Object* GetValue() {
|
368
442
|
if (lookup_type_ == DESCRIPTOR_TYPE) {
|
369
|
-
|
370
|
-
return descriptors->GetValue(number_);
|
443
|
+
return GetValueFromMap(holder()->map());
|
371
444
|
}
|
372
445
|
// In the dictionary case, the data is held in the value field.
|
373
446
|
ASSERT(lookup_type_ == DICTIONARY_TYPE);
|
374
447
|
return holder()->GetNormalizedProperty(this);
|
375
448
|
}
|
376
449
|
|
450
|
+
Object* GetValueFromMap(Map* map) const {
|
451
|
+
ASSERT(lookup_type_ == DESCRIPTOR_TYPE);
|
452
|
+
ASSERT(number_ < map->NumberOfOwnDescriptors());
|
453
|
+
return map->instance_descriptors()->GetValue(number_);
|
454
|
+
}
|
455
|
+
|
377
456
|
void Iterate(ObjectVisitor* visitor);
|
378
457
|
|
379
458
|
private:
|
@@ -384,6 +463,7 @@ class LookupResult BASE_EMBEDDED {
|
|
384
463
|
enum {
|
385
464
|
NOT_FOUND,
|
386
465
|
DESCRIPTOR_TYPE,
|
466
|
+
TRANSITION_TYPE,
|
387
467
|
DICTIONARY_TYPE,
|
388
468
|
HANDLER_TYPE,
|
389
469
|
INTERCEPTOR_TYPE,
|