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
@@ -54,21 +54,14 @@ inline Operand SmiUntagOperand(Register object) {
|
|
54
54
|
const Register cp = { 8 }; // JavaScript context pointer
|
55
55
|
const Register kRootRegister = { 10 }; // Roots array pointer.
|
56
56
|
|
57
|
-
// Flags used for
|
58
|
-
enum
|
59
|
-
//
|
60
|
-
|
61
|
-
//
|
62
|
-
|
63
|
-
// The content of the result register already contains the allocation top in
|
64
|
-
// new space.
|
65
|
-
RESULT_CONTAINS_TOP = 1 << 1,
|
66
|
-
// Specify that the requested size of the space to allocate is specified in
|
67
|
-
// words instead of bytes.
|
68
|
-
SIZE_IN_WORDS = 1 << 2
|
57
|
+
// Flags used for AllocateHeapNumber
|
58
|
+
enum TaggingMode {
|
59
|
+
// Tag the result.
|
60
|
+
TAG_RESULT,
|
61
|
+
// Don't tag
|
62
|
+
DONT_TAG_RESULT
|
69
63
|
};
|
70
64
|
|
71
|
-
|
72
65
|
// Flags used for the ObjectToDoubleVFPRegister function.
|
73
66
|
enum ObjectToDoubleFlags {
|
74
67
|
// No special flags.
|
@@ -95,6 +88,11 @@ bool AreAliased(Register reg1,
|
|
95
88
|
#endif
|
96
89
|
|
97
90
|
|
91
|
+
enum TargetAddressStorageMode {
|
92
|
+
CAN_INLINE_TARGET_ADDRESS,
|
93
|
+
NEVER_INLINE_TARGET_ADDRESS
|
94
|
+
};
|
95
|
+
|
98
96
|
// MacroAssembler implements a collection of frequently used macros.
|
99
97
|
class MacroAssembler: public Assembler {
|
100
98
|
public:
|
@@ -110,18 +108,22 @@ class MacroAssembler: public Assembler {
|
|
110
108
|
void Jump(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al);
|
111
109
|
static int CallSize(Register target, Condition cond = al);
|
112
110
|
void Call(Register target, Condition cond = al);
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
111
|
+
int CallSize(Address target, RelocInfo::Mode rmode, Condition cond = al);
|
112
|
+
static int CallSizeNotPredictableCodeSize(Address target,
|
113
|
+
RelocInfo::Mode rmode,
|
114
|
+
Condition cond = al);
|
115
|
+
void Call(Address target, RelocInfo::Mode rmode,
|
116
|
+
Condition cond = al,
|
117
|
+
TargetAddressStorageMode mode = CAN_INLINE_TARGET_ADDRESS);
|
118
|
+
int CallSize(Handle<Code> code,
|
119
|
+
RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
|
120
|
+
TypeFeedbackId ast_id = TypeFeedbackId::None(),
|
121
|
+
Condition cond = al);
|
121
122
|
void Call(Handle<Code> code,
|
122
123
|
RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
|
123
|
-
|
124
|
-
Condition cond = al
|
124
|
+
TypeFeedbackId ast_id = TypeFeedbackId::None(),
|
125
|
+
Condition cond = al,
|
126
|
+
TargetAddressStorageMode mode = CAN_INLINE_TARGET_ADDRESS);
|
125
127
|
void Ret(Condition cond = al);
|
126
128
|
|
127
129
|
// Emit code to discard a non-negative number of pointer-sized elements
|
@@ -153,7 +155,7 @@ class MacroAssembler: public Assembler {
|
|
153
155
|
int lsb,
|
154
156
|
int width,
|
155
157
|
Condition cond = al);
|
156
|
-
void Bfc(Register dst, int lsb, int width, Condition cond = al);
|
158
|
+
void Bfc(Register dst, Register src, int lsb, int width, Condition cond = al);
|
157
159
|
void Usat(Register dst, int satpos, const Operand& src,
|
158
160
|
Condition cond = al);
|
159
161
|
|
@@ -162,7 +164,7 @@ class MacroAssembler: public Assembler {
|
|
162
164
|
// Register move. May do nothing if the registers are identical.
|
163
165
|
void Move(Register dst, Handle<Object> value);
|
164
166
|
void Move(Register dst, Register src, Condition cond = al);
|
165
|
-
void Move(
|
167
|
+
void Move(DwVfpRegister dst, DwVfpRegister src);
|
166
168
|
|
167
169
|
// Load an object from the root table.
|
168
170
|
void LoadRoot(Register destination,
|
@@ -306,6 +308,7 @@ class MacroAssembler: public Assembler {
|
|
306
308
|
|
307
309
|
// Push a handle.
|
308
310
|
void Push(Handle<Object> handle);
|
311
|
+
void Push(Smi* smi) { Push(Handle<Smi>(smi)); }
|
309
312
|
|
310
313
|
// Push two registers. Pushes leftmost register first (to highest address).
|
311
314
|
void Push(Register src1, Register src2, Condition cond = al) {
|
@@ -457,11 +460,6 @@ class MacroAssembler: public Assembler {
|
|
457
460
|
const MemOperand& dst,
|
458
461
|
Condition cond = al);
|
459
462
|
|
460
|
-
// Clear specified FPSCR bits.
|
461
|
-
void ClearFPSCRBits(const uint32_t bits_to_clear,
|
462
|
-
const Register scratch,
|
463
|
-
const Condition cond = al);
|
464
|
-
|
465
463
|
// Compare double values and move the result to the normal condition flags.
|
466
464
|
void VFPCompareAndSetFlags(const DwVfpRegister src1,
|
467
465
|
const DwVfpRegister src2,
|
@@ -482,6 +480,7 @@ class MacroAssembler: public Assembler {
|
|
482
480
|
|
483
481
|
void Vmov(const DwVfpRegister dst,
|
484
482
|
const double imm,
|
483
|
+
const Register scratch = no_reg,
|
485
484
|
const Condition cond = al);
|
486
485
|
|
487
486
|
// Enter exit frame.
|
@@ -499,8 +498,8 @@ class MacroAssembler: public Assembler {
|
|
499
498
|
void LoadContext(Register dst, int context_chain_length);
|
500
499
|
|
501
500
|
// Conditionally load the cached Array transitioned map of type
|
502
|
-
// transitioned_kind from the
|
503
|
-
// map_in_out is the cached Array map in the
|
501
|
+
// transitioned_kind from the native context if the map in register
|
502
|
+
// map_in_out is the cached Array map in the native context of
|
504
503
|
// expected_kind.
|
505
504
|
void LoadTransitionedArrayMapConditional(
|
506
505
|
ElementsKind expected_kind,
|
@@ -729,7 +728,8 @@ class MacroAssembler: public Assembler {
|
|
729
728
|
Register scratch1,
|
730
729
|
Register scratch2,
|
731
730
|
Register heap_number_map,
|
732
|
-
Label* gc_required
|
731
|
+
Label* gc_required,
|
732
|
+
TaggingMode tagging_mode = TAG_RESULT);
|
733
733
|
void AllocateHeapNumberWithValue(Register result,
|
734
734
|
DwVfpRegister value,
|
735
735
|
Register scratch1,
|
@@ -813,13 +813,14 @@ class MacroAssembler: public Assembler {
|
|
813
813
|
// case scratch2, scratch3 and scratch4 are unmodified.
|
814
814
|
void StoreNumberToDoubleElements(Register value_reg,
|
815
815
|
Register key_reg,
|
816
|
-
|
816
|
+
// All regs below here overwritten.
|
817
817
|
Register elements_reg,
|
818
818
|
Register scratch1,
|
819
819
|
Register scratch2,
|
820
820
|
Register scratch3,
|
821
821
|
Register scratch4,
|
822
|
-
Label* fail
|
822
|
+
Label* fail,
|
823
|
+
int elements_offset = 0);
|
823
824
|
|
824
825
|
// Compare an object's map with the specified map and its transitioned
|
825
826
|
// elements maps if mode is ALLOW_ELEMENT_TRANSITION_MAPS. Condition flags are
|
@@ -831,6 +832,13 @@ class MacroAssembler: public Assembler {
|
|
831
832
|
Label* early_success,
|
832
833
|
CompareMapMode mode = REQUIRE_EXACT_MAP);
|
833
834
|
|
835
|
+
// As above, but the map of the object is already loaded into the register
|
836
|
+
// which is preserved by the code generated.
|
837
|
+
void CompareMap(Register obj_map,
|
838
|
+
Handle<Map> map,
|
839
|
+
Label* early_success,
|
840
|
+
CompareMapMode mode = REQUIRE_EXACT_MAP);
|
841
|
+
|
834
842
|
// Check if the map of an object is equal to a specified map and branch to
|
835
843
|
// label if not. Skip the smi check if not required (object is known to be a
|
836
844
|
// heap object). If mode is ALLOW_ELEMENT_TRANSITION_MAPS, then also match
|
@@ -867,12 +875,15 @@ class MacroAssembler: public Assembler {
|
|
867
875
|
|
868
876
|
// Load and check the instance type of an object for being a string.
|
869
877
|
// Loads the type into the second argument register.
|
870
|
-
// Returns a condition that will be enabled if the object was a string
|
878
|
+
// Returns a condition that will be enabled if the object was a string
|
879
|
+
// and the passed-in condition passed. If the passed-in condition failed
|
880
|
+
// then flags remain unchanged.
|
871
881
|
Condition IsObjectStringType(Register obj,
|
872
|
-
Register type
|
873
|
-
|
874
|
-
|
875
|
-
|
882
|
+
Register type,
|
883
|
+
Condition cond = al) {
|
884
|
+
ldr(type, FieldMemOperand(obj, HeapObject::kMapOffset), cond);
|
885
|
+
ldrb(type, FieldMemOperand(type, Map::kInstanceTypeOffset), cond);
|
886
|
+
tst(type, Operand(kIsNotStringMask), cond);
|
876
887
|
ASSERT_EQ(0, kStringTag);
|
877
888
|
return eq;
|
878
889
|
}
|
@@ -929,21 +940,30 @@ class MacroAssembler: public Assembler {
|
|
929
940
|
DwVfpRegister double_scratch,
|
930
941
|
Label *not_int32);
|
931
942
|
|
932
|
-
//
|
943
|
+
// Try to convert a double to a signed 32-bit integer. If the double value
|
944
|
+
// can be exactly represented as an integer, the code jumps to 'done' and
|
945
|
+
// 'result' contains the integer value. Otherwise, the code falls through.
|
946
|
+
void TryFastDoubleToInt32(Register result,
|
947
|
+
DwVfpRegister double_input,
|
948
|
+
DwVfpRegister double_scratch,
|
949
|
+
Label* done);
|
950
|
+
|
951
|
+
// Truncates a double using a specific rounding mode, and writes the value
|
952
|
+
// to the result register.
|
933
953
|
// Clears the z flag (ne condition) if an overflow occurs.
|
934
|
-
// If
|
935
|
-
// was inexact, i.e. if the double value could not be converted
|
936
|
-
// to a
|
954
|
+
// If kCheckForInexactConversion is passed, the z flag is also cleared if the
|
955
|
+
// conversion was inexact, i.e. if the double value could not be converted
|
956
|
+
// exactly to a 32-bit integer.
|
937
957
|
void EmitVFPTruncate(VFPRoundingMode rounding_mode,
|
938
|
-
|
958
|
+
Register result,
|
939
959
|
DwVfpRegister double_input,
|
940
|
-
Register
|
941
|
-
|
960
|
+
Register scratch,
|
961
|
+
DwVfpRegister double_scratch,
|
942
962
|
CheckForInexactConversion check
|
943
963
|
= kDontCheckForInexactConversion);
|
944
964
|
|
945
965
|
// Helper for EmitECMATruncate.
|
946
|
-
// This will truncate a floating-point value outside of the
|
966
|
+
// This will truncate a floating-point value outside of the signed 32bit
|
947
967
|
// integer range to a 32bit signed integer.
|
948
968
|
// Expects the double value loaded in input_high and input_low.
|
949
969
|
// Exits with the answer in 'result'.
|
@@ -958,7 +978,7 @@ class MacroAssembler: public Assembler {
|
|
958
978
|
// Exits with 'result' holding the answer and all other registers clobbered.
|
959
979
|
void EmitECMATruncate(Register result,
|
960
980
|
DwVfpRegister double_input,
|
961
|
-
|
981
|
+
DwVfpRegister double_scratch,
|
962
982
|
Register scratch,
|
963
983
|
Register scratch2,
|
964
984
|
Register scratch3);
|
@@ -972,11 +992,18 @@ class MacroAssembler: public Assembler {
|
|
972
992
|
Register source,
|
973
993
|
Register scratch);
|
974
994
|
|
995
|
+
// Check whether d16-d31 are available on the CPU. The result is given by the
|
996
|
+
// Z condition flag: Z==0 if d16-d31 available, Z==1 otherwise.
|
997
|
+
void CheckFor32DRegs(Register scratch);
|
998
|
+
|
999
|
+
|
975
1000
|
// ---------------------------------------------------------------------------
|
976
1001
|
// Runtime calls
|
977
1002
|
|
978
1003
|
// Call a code stub.
|
979
|
-
void CallStub(CodeStub* stub,
|
1004
|
+
void CallStub(CodeStub* stub,
|
1005
|
+
TypeFeedbackId ast_id = TypeFeedbackId::None(),
|
1006
|
+
Condition cond = al);
|
980
1007
|
|
981
1008
|
// Call a code stub.
|
982
1009
|
void TailCallStub(CodeStub* stub, Condition cond = al);
|
@@ -1027,9 +1054,9 @@ class MacroAssembler: public Assembler {
|
|
1027
1054
|
// whether soft or hard floating point ABI is used. These functions
|
1028
1055
|
// abstract parameter passing for the three different ways we call
|
1029
1056
|
// C functions from generated code.
|
1030
|
-
void SetCallCDoubleArguments(
|
1031
|
-
void SetCallCDoubleArguments(
|
1032
|
-
void SetCallCDoubleArguments(
|
1057
|
+
void SetCallCDoubleArguments(DwVfpRegister dreg);
|
1058
|
+
void SetCallCDoubleArguments(DwVfpRegister dreg1, DwVfpRegister dreg2);
|
1059
|
+
void SetCallCDoubleArguments(DwVfpRegister dreg, Register reg);
|
1033
1060
|
|
1034
1061
|
// Calls a C function and cleans up the space for arguments allocated
|
1035
1062
|
// by PrepareCallCFunction. The called function is not allowed to trigger a
|
@@ -1045,7 +1072,7 @@ class MacroAssembler: public Assembler {
|
|
1045
1072
|
int num_reg_arguments,
|
1046
1073
|
int num_double_arguments);
|
1047
1074
|
|
1048
|
-
void GetCFunctionDoubleResult(const
|
1075
|
+
void GetCFunctionDoubleResult(const DwVfpRegister dst);
|
1049
1076
|
|
1050
1077
|
// Calls an API function. Allocates HandleScope, extracts returned value
|
1051
1078
|
// from handle and propagates exceptions. Restores context. stack_space
|
@@ -1175,7 +1202,7 @@ class MacroAssembler: public Assembler {
|
|
1175
1202
|
// Souce and destination can be the same register.
|
1176
1203
|
void UntagAndJumpIfNotSmi(Register dst, Register src, Label* non_smi_case);
|
1177
1204
|
|
1178
|
-
// Jump the register contains a smi.
|
1205
|
+
// Jump if the register contains a smi.
|
1179
1206
|
inline void JumpIfSmi(Register value, Label* smi_label) {
|
1180
1207
|
tst(value, Operand(kSmiTagMask));
|
1181
1208
|
b(eq, smi_label);
|
@@ -1190,17 +1217,18 @@ class MacroAssembler: public Assembler {
|
|
1190
1217
|
// Jump if either of the registers contain a smi.
|
1191
1218
|
void JumpIfEitherSmi(Register reg1, Register reg2, Label* on_either_smi);
|
1192
1219
|
|
1193
|
-
// Abort execution if argument is a smi
|
1194
|
-
void
|
1195
|
-
void
|
1220
|
+
// Abort execution if argument is a smi, enabled via --debug-code.
|
1221
|
+
void AssertNotSmi(Register object);
|
1222
|
+
void AssertSmi(Register object);
|
1196
1223
|
|
1197
|
-
// Abort execution if argument is a string
|
1198
|
-
void
|
1224
|
+
// Abort execution if argument is a string, enabled via --debug-code.
|
1225
|
+
void AssertString(Register object);
|
1199
1226
|
|
1200
|
-
// Abort execution if argument is not the root value with the given index
|
1201
|
-
|
1202
|
-
|
1203
|
-
|
1227
|
+
// Abort execution if argument is not the root value with the given index,
|
1228
|
+
// enabled via --debug-code.
|
1229
|
+
void AssertRootValue(Register src,
|
1230
|
+
Heap::RootListIndex root_value_index,
|
1231
|
+
const char* message);
|
1204
1232
|
|
1205
1233
|
// ---------------------------------------------------------------------------
|
1206
1234
|
// HeapNumber utilities
|
@@ -1257,11 +1285,21 @@ class MacroAssembler: public Assembler {
|
|
1257
1285
|
void ClampUint8(Register output_reg, Register input_reg);
|
1258
1286
|
|
1259
1287
|
void ClampDoubleToUint8(Register result_reg,
|
1260
|
-
|
1261
|
-
|
1288
|
+
DwVfpRegister input_reg,
|
1289
|
+
DwVfpRegister temp_double_reg);
|
1262
1290
|
|
1263
1291
|
|
1264
1292
|
void LoadInstanceDescriptors(Register map, Register descriptors);
|
1293
|
+
void EnumLength(Register dst, Register map);
|
1294
|
+
void NumberOfOwnDescriptors(Register dst, Register map);
|
1295
|
+
|
1296
|
+
template<typename Field>
|
1297
|
+
void DecodeField(Register reg) {
|
1298
|
+
static const int shift = Field::kShift;
|
1299
|
+
static const int mask = (Field::kMask >> shift) << kSmiTagSize;
|
1300
|
+
mov(reg, Operand(reg, LSR, shift));
|
1301
|
+
and_(reg, reg, Operand(mask));
|
1302
|
+
}
|
1265
1303
|
|
1266
1304
|
// Activation support.
|
1267
1305
|
void EnterFrame(StackFrame::Type type);
|
@@ -1271,6 +1309,15 @@ class MacroAssembler: public Assembler {
|
|
1271
1309
|
// in r0. Assumes that any other register can be used as a scratch.
|
1272
1310
|
void CheckEnumCache(Register null_value, Label* call_runtime);
|
1273
1311
|
|
1312
|
+
// AllocationSiteInfo support. Arrays may have an associated
|
1313
|
+
// AllocationSiteInfo object that can be checked for in order to pretransition
|
1314
|
+
// to another type.
|
1315
|
+
// On entry, receiver_reg should point to the array object.
|
1316
|
+
// scratch_reg gets clobbered.
|
1317
|
+
// If allocation info is present, condition flags are set to eq
|
1318
|
+
void TestJSArrayForAllocationSiteInfo(Register receiver_reg,
|
1319
|
+
Register scratch_reg);
|
1320
|
+
|
1274
1321
|
private:
|
1275
1322
|
void CallCFunctionHelper(Register function,
|
1276
1323
|
int num_reg_arguments,
|
@@ -1323,9 +1370,9 @@ class MacroAssembler: public Assembler {
|
|
1323
1370
|
// This handle will be patched with the code object on installation.
|
1324
1371
|
Handle<Object> code_object_;
|
1325
1372
|
|
1326
|
-
// Needs access to SafepointRegisterStackIndex for
|
1373
|
+
// Needs access to SafepointRegisterStackIndex for compiled frame
|
1327
1374
|
// traversal.
|
1328
|
-
friend class
|
1375
|
+
friend class StandardFrame;
|
1329
1376
|
};
|
1330
1377
|
|
1331
1378
|
|
@@ -1354,7 +1401,6 @@ class CodePatcher {
|
|
1354
1401
|
|
1355
1402
|
private:
|
1356
1403
|
byte* address_; // The address of the code being patched.
|
1357
|
-
int instructions_; // Number of instructions of the expected patch size.
|
1358
1404
|
int size_; // Number of bytes of the expected patch size.
|
1359
1405
|
MacroAssembler masm_; // Macro assembler used to generate the code.
|
1360
1406
|
};
|
@@ -1369,7 +1415,7 @@ inline MemOperand ContextOperand(Register context, int index) {
|
|
1369
1415
|
|
1370
1416
|
|
1371
1417
|
inline MemOperand GlobalObjectOperand() {
|
1372
|
-
return ContextOperand(cp, Context::
|
1418
|
+
return ContextOperand(cp, Context::GLOBAL_OBJECT_INDEX);
|
1373
1419
|
}
|
1374
1420
|
|
1375
1421
|
|
@@ -119,8 +119,10 @@ namespace internal {
|
|
119
119
|
|
120
120
|
RegExpMacroAssemblerARM::RegExpMacroAssemblerARM(
|
121
121
|
Mode mode,
|
122
|
-
int registers_to_save
|
123
|
-
|
122
|
+
int registers_to_save,
|
123
|
+
Zone* zone)
|
124
|
+
: NativeRegExpMacroAssembler(zone),
|
125
|
+
masm_(new MacroAssembler(Isolate::Current(), NULL, kRegExpCodeSize)),
|
124
126
|
mode_(mode),
|
125
127
|
num_registers_(registers_to_save),
|
126
128
|
num_saved_registers_(registers_to_save),
|
@@ -202,7 +204,7 @@ void RegExpMacroAssemblerARM::CheckAtStart(Label* on_at_start) {
|
|
202
204
|
Label not_at_start;
|
203
205
|
// Did we start the match at the start of the string at all?
|
204
206
|
__ ldr(r0, MemOperand(frame_pointer(), kStartIndex));
|
205
|
-
__ cmp(r0, Operand(
|
207
|
+
__ cmp(r0, Operand::Zero());
|
206
208
|
BranchOrBacktrack(ne, ¬_at_start);
|
207
209
|
|
208
210
|
// If we did, are we still at the start of the input?
|
@@ -217,7 +219,7 @@ void RegExpMacroAssemblerARM::CheckAtStart(Label* on_at_start) {
|
|
217
219
|
void RegExpMacroAssemblerARM::CheckNotAtStart(Label* on_not_at_start) {
|
218
220
|
// Did we start the match at the start of the string at all?
|
219
221
|
__ ldr(r0, MemOperand(frame_pointer(), kStartIndex));
|
220
|
-
__ cmp(r0, Operand(
|
222
|
+
__ cmp(r0, Operand::Zero());
|
221
223
|
BranchOrBacktrack(ne, on_not_at_start);
|
222
224
|
// If we did, are we still at the start of the input?
|
223
225
|
__ ldr(r1, MemOperand(frame_pointer(), kInputStart));
|
@@ -259,7 +261,7 @@ void RegExpMacroAssemblerARM::CheckCharacters(Vector<const uc16> str,
|
|
259
261
|
for (int i = 0; i < str.length(); i++) {
|
260
262
|
if (mode_ == ASCII) {
|
261
263
|
__ ldrb(r1, MemOperand(r0, char_size(), PostIndex));
|
262
|
-
ASSERT(str[i] <= String::
|
264
|
+
ASSERT(str[i] <= String::kMaxOneByteCharCode);
|
263
265
|
__ cmp(r1, Operand(str[i]));
|
264
266
|
} else {
|
265
267
|
__ ldrh(r1, MemOperand(r0, char_size(), PostIndex));
|
@@ -335,8 +337,17 @@ void RegExpMacroAssemblerARM::CheckNotBackReferenceIgnoreCase(
|
|
335
337
|
__ b(ne, &fail);
|
336
338
|
__ sub(r3, r3, Operand('a'));
|
337
339
|
__ cmp(r3, Operand('z' - 'a')); // Is r3 a lowercase letter?
|
340
|
+
#ifndef ENABLE_LATIN_1
|
338
341
|
__ b(hi, &fail);
|
339
|
-
|
342
|
+
#else
|
343
|
+
__ b(ls, &loop_check); // In range 'a'-'z'.
|
344
|
+
// Latin-1: Check for values in range [224,254] but not 247.
|
345
|
+
__ sub(r3, r3, Operand(224 - 'a'));
|
346
|
+
__ cmp(r3, Operand(254 - 224));
|
347
|
+
__ b(hi, &fail); // Weren't Latin-1 letters.
|
348
|
+
__ cmp(r3, Operand(247 - 224)); // Check for 247.
|
349
|
+
__ b(eq, &fail);
|
350
|
+
#endif
|
340
351
|
|
341
352
|
__ bind(&loop_check);
|
342
353
|
__ cmp(r0, r1);
|
@@ -383,7 +394,7 @@ void RegExpMacroAssemblerARM::CheckNotBackReferenceIgnoreCase(
|
|
383
394
|
}
|
384
395
|
|
385
396
|
// Check if function returned non-zero for success or zero for failure.
|
386
|
-
__ cmp(r0, Operand(
|
397
|
+
__ cmp(r0, Operand::Zero());
|
387
398
|
BranchOrBacktrack(eq, on_no_match);
|
388
399
|
// On success, increment position by length of capture.
|
389
400
|
__ add(current_input_offset(), current_input_offset(), Operand(r4));
|
@@ -436,16 +447,6 @@ void RegExpMacroAssemblerARM::CheckNotBackReference(
|
|
436
447
|
}
|
437
448
|
|
438
449
|
|
439
|
-
void RegExpMacroAssemblerARM::CheckNotRegistersEqual(int reg1,
|
440
|
-
int reg2,
|
441
|
-
Label* on_not_equal) {
|
442
|
-
__ ldr(r0, register_location(reg1));
|
443
|
-
__ ldr(r1, register_location(reg2));
|
444
|
-
__ cmp(r0, r1);
|
445
|
-
BranchOrBacktrack(ne, on_not_equal);
|
446
|
-
}
|
447
|
-
|
448
|
-
|
449
450
|
void RegExpMacroAssemblerARM::CheckNotCharacter(unsigned c,
|
450
451
|
Label* on_not_equal) {
|
451
452
|
__ cmp(current_character(), Operand(c));
|
@@ -516,7 +517,7 @@ void RegExpMacroAssemblerARM::CheckBitInTable(
|
|
516
517
|
Handle<ByteArray> table,
|
517
518
|
Label* on_bit_set) {
|
518
519
|
__ mov(r0, Operand(table));
|
519
|
-
if (mode_ != ASCII || kTableMask != String::
|
520
|
+
if (mode_ != ASCII || kTableMask != String::kMaxOneByteCharCode) {
|
520
521
|
__ and_(r1, current_character(), Operand(kTableSize - 1));
|
521
522
|
__ add(r1, r1, Operand(ByteArray::kHeaderSize - kHeapObjectTag));
|
522
523
|
} else {
|
@@ -525,7 +526,7 @@ void RegExpMacroAssemblerARM::CheckBitInTable(
|
|
525
526
|
Operand(ByteArray::kHeaderSize - kHeapObjectTag));
|
526
527
|
}
|
527
528
|
__ ldrb(r0, MemOperand(r0, r1));
|
528
|
-
__ cmp(r0, Operand(
|
529
|
+
__ cmp(r0, Operand::Zero());
|
529
530
|
BranchOrBacktrack(ne, on_bit_set);
|
530
531
|
}
|
531
532
|
|
@@ -621,7 +622,7 @@ bool RegExpMacroAssemblerARM::CheckSpecialCharacterClass(uc16 type,
|
|
621
622
|
ExternalReference map = ExternalReference::re_word_character_map();
|
622
623
|
__ mov(r0, Operand(map));
|
623
624
|
__ ldrb(r0, MemOperand(r0, current_character()));
|
624
|
-
__ cmp(r0, Operand(
|
625
|
+
__ cmp(r0, Operand::Zero());
|
625
626
|
BranchOrBacktrack(eq, on_no_match);
|
626
627
|
return true;
|
627
628
|
}
|
@@ -635,7 +636,7 @@ bool RegExpMacroAssemblerARM::CheckSpecialCharacterClass(uc16 type,
|
|
635
636
|
ExternalReference map = ExternalReference::re_word_character_map();
|
636
637
|
__ mov(r0, Operand(map));
|
637
638
|
__ ldrb(r0, MemOperand(r0, current_character()));
|
638
|
-
__ cmp(r0, Operand(
|
639
|
+
__ cmp(r0, Operand::Zero());
|
639
640
|
BranchOrBacktrack(ne, on_no_match);
|
640
641
|
if (mode_ != ASCII) {
|
641
642
|
__ bind(&done);
|
@@ -683,7 +684,7 @@ Handle<HeapObject> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
|
683
684
|
// Set frame pointer in space for it if this is not a direct call
|
684
685
|
// from generated code.
|
685
686
|
__ add(frame_pointer(), sp, Operand(4 * kPointerSize));
|
686
|
-
__ mov(r0, Operand(
|
687
|
+
__ mov(r0, Operand::Zero());
|
687
688
|
__ push(r0); // Make room for success counter and initialize it to 0.
|
688
689
|
__ push(r0); // Make room for "position - 1" constant (value is irrelevant).
|
689
690
|
// Check if we have space on the stack for registers.
|
@@ -708,7 +709,7 @@ Handle<HeapObject> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
|
708
709
|
|
709
710
|
__ bind(&stack_limit_hit);
|
710
711
|
CallCheckStackGuardState(r0);
|
711
|
-
__ cmp(r0, Operand(
|
712
|
+
__ cmp(r0, Operand::Zero());
|
712
713
|
// If returned value is non-zero, we exit with the returned value as result.
|
713
714
|
__ b(ne, &return_r0);
|
714
715
|
|
@@ -736,7 +737,7 @@ Handle<HeapObject> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
|
736
737
|
|
737
738
|
Label load_char_start_regexp, start_regexp;
|
738
739
|
// Load newline if index is at start, previous character otherwise.
|
739
|
-
__ cmp(r1, Operand(
|
740
|
+
__ cmp(r1, Operand::Zero());
|
740
741
|
__ b(ne, &load_char_start_regexp);
|
741
742
|
__ mov(current_character(), Operand('\n'), LeaveCC, eq);
|
742
743
|
__ jmp(&start_regexp);
|
@@ -796,7 +797,7 @@ Handle<HeapObject> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
|
796
797
|
for (int i = 0; i < num_saved_registers_; i += 2) {
|
797
798
|
__ ldr(r2, register_location(i));
|
798
799
|
__ ldr(r3, register_location(i + 1));
|
799
|
-
if (
|
800
|
+
if (i == 0 && global_with_zero_length_check()) {
|
800
801
|
// Keep capture start in r4 for the zero-length check later.
|
801
802
|
__ mov(r4, r2);
|
802
803
|
}
|
@@ -834,18 +835,22 @@ Handle<HeapObject> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
|
834
835
|
|
835
836
|
// Prepare r0 to initialize registers with its value in the next run.
|
836
837
|
__ ldr(r0, MemOperand(frame_pointer(), kInputStartMinusOne));
|
837
|
-
|
838
|
-
|
839
|
-
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
|
846
|
-
|
847
|
-
|
848
|
-
|
838
|
+
|
839
|
+
if (global_with_zero_length_check()) {
|
840
|
+
// Special case for zero-length matches.
|
841
|
+
// r4: capture start index
|
842
|
+
__ cmp(current_input_offset(), r4);
|
843
|
+
// Not a zero-length match, restart.
|
844
|
+
__ b(ne, &load_char_start_regexp);
|
845
|
+
// Offset from the end is zero if we already reached the end.
|
846
|
+
__ cmp(current_input_offset(), Operand::Zero());
|
847
|
+
__ b(eq, &exit_label_);
|
848
|
+
// Advance current position after a zero-length match.
|
849
|
+
__ add(current_input_offset(),
|
850
|
+
current_input_offset(),
|
851
|
+
Operand((mode_ == UC16) ? 2 : 1));
|
852
|
+
}
|
853
|
+
|
849
854
|
__ b(&load_char_start_regexp);
|
850
855
|
} else {
|
851
856
|
__ mov(r0, Operand(SUCCESS));
|
@@ -877,7 +882,7 @@ Handle<HeapObject> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
|
877
882
|
SafeCallTarget(&check_preempt_label_);
|
878
883
|
|
879
884
|
CallCheckStackGuardState(r0);
|
880
|
-
__ cmp(r0, Operand(
|
885
|
+
__ cmp(r0, Operand::Zero());
|
881
886
|
// If returning non-zero, we should end execution with the given
|
882
887
|
// result as return value.
|
883
888
|
__ b(ne, &return_r0);
|
@@ -904,7 +909,7 @@ Handle<HeapObject> RegExpMacroAssemblerARM::GetCode(Handle<String> source) {
|
|
904
909
|
__ CallCFunction(grow_stack, num_arguments);
|
905
910
|
// If return NULL, we have failed to grow the stack, and
|
906
911
|
// must exit with a stack-overflow exception.
|
907
|
-
__ cmp(r0, Operand(
|
912
|
+
__ cmp(r0, Operand::Zero());
|
908
913
|
__ b(eq, &exit_with_exception);
|
909
914
|
// Otherwise use return value as new stack pointer.
|
910
915
|
__ mov(backtrack_stackpointer(), r0);
|
@@ -1154,7 +1159,7 @@ int RegExpMacroAssemblerARM::CheckStackGuardState(Address* return_address,
|
|
1154
1159
|
Handle<String> subject(frame_entry<String*>(re_frame, kInputString));
|
1155
1160
|
|
1156
1161
|
// Current string.
|
1157
|
-
bool is_ascii = subject->
|
1162
|
+
bool is_ascii = subject->IsOneByteRepresentationUnderneath();
|
1158
1163
|
|
1159
1164
|
ASSERT(re_code->instruction_start() <= *return_address);
|
1160
1165
|
ASSERT(*return_address <=
|
@@ -1185,7 +1190,7 @@ int RegExpMacroAssemblerARM::CheckStackGuardState(Address* return_address,
|
|
1185
1190
|
}
|
1186
1191
|
|
1187
1192
|
// String might have changed.
|
1188
|
-
if (subject_tmp->
|
1193
|
+
if (subject_tmp->IsOneByteRepresentation() != is_ascii) {
|
1189
1194
|
// If we changed between an ASCII and an UC16 string, the specialized
|
1190
1195
|
// code cannot be used, and we need to restart regexp matching from
|
1191
1196
|
// scratch (including, potentially, compiling a new version of the code).
|
@@ -1362,6 +1367,11 @@ void RegExpMacroAssemblerARM::CallCFunctionUsingStub(
|
|
1362
1367
|
}
|
1363
1368
|
|
1364
1369
|
|
1370
|
+
bool RegExpMacroAssemblerARM::CanReadUnaligned() {
|
1371
|
+
return CpuFeatures::IsSupported(UNALIGNED_ACCESSES) && !slow_safe();
|
1372
|
+
}
|
1373
|
+
|
1374
|
+
|
1365
1375
|
void RegExpMacroAssemblerARM::LoadCurrentCharacterUnchecked(int cp_offset,
|
1366
1376
|
int characters) {
|
1367
1377
|
Register offset = current_input_offset();
|
@@ -1374,9 +1384,9 @@ void RegExpMacroAssemblerARM::LoadCurrentCharacterUnchecked(int cp_offset,
|
|
1374
1384
|
// and the operating system running on the target allow it.
|
1375
1385
|
// If unaligned load/stores are not supported then this function must only
|
1376
1386
|
// be used to load a single character at a time.
|
1377
|
-
|
1378
|
-
|
1379
|
-
|
1387
|
+
if (!CanReadUnaligned()) {
|
1388
|
+
ASSERT(characters == 1);
|
1389
|
+
}
|
1380
1390
|
|
1381
1391
|
if (mode_ == ASCII) {
|
1382
1392
|
if (characters == 4) {
|