From 704fd8f3745527fc080f96e54e5ec1857c505399 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Tue, 2 Jul 2013 17:11:31 +0200 Subject: [PATCH] v8: upgrade to v3.20.2 --- deps/v8/.gitignore | 1 + deps/v8/ChangeLog | 89 + deps/v8/DEPS | 5 +- deps/v8/Makefile | 16 +- deps/v8/OWNERS | 1 + deps/v8/build/android.gypi | 7 - deps/v8/build/common.gypi | 58 +- deps/v8/build/shim_headers.gypi | 73 + deps/v8/build/standalone.gypi | 51 +- deps/v8/include/v8-profiler.h | 69 +- deps/v8/include/v8.h | 342 +- deps/v8/preparser/preparser.gyp | 3 + deps/v8/samples/samples.gyp | 3 + deps/v8/src/api.cc | 627 ++- deps/v8/src/api.h | 78 +- deps/v8/src/arguments.cc | 14 +- deps/v8/src/arm/assembler-arm-inl.h | 29 +- deps/v8/src/arm/assembler-arm.cc | 2 +- deps/v8/src/arm/builtins-arm.cc | 431 +- deps/v8/src/arm/code-stubs-arm.cc | 353 +- deps/v8/src/arm/code-stubs-arm.h | 1 - deps/v8/src/arm/codegen-arm.cc | 2 +- deps/v8/src/arm/constants-arm.cc | 2 +- deps/v8/src/arm/cpu-arm.cc | 2 +- deps/v8/src/arm/debug-arm.cc | 2 +- deps/v8/src/arm/disasm-arm.cc | 2 +- deps/v8/src/arm/frames-arm.cc | 9 +- deps/v8/src/arm/full-codegen-arm.cc | 220 +- deps/v8/src/arm/ic-arm.cc | 9 +- deps/v8/src/arm/lithium-arm.cc | 96 +- deps/v8/src/arm/lithium-arm.h | 92 +- deps/v8/src/arm/lithium-codegen-arm.cc | 491 +- deps/v8/src/arm/lithium-codegen-arm.h | 22 +- deps/v8/src/arm/macro-assembler-arm.cc | 51 +- deps/v8/src/arm/macro-assembler-arm.h | 4 + deps/v8/src/arm/regexp-macro-assembler-arm.cc | 3 +- deps/v8/src/arm/simulator-arm.cc | 67 +- deps/v8/src/arm/stub-cache-arm.cc | 180 +- deps/v8/src/arraybuffer.js | 11 +- deps/v8/src/assembler.cc | 10 +- deps/v8/src/assembler.h | 30 +- deps/v8/src/assert-scope.h | 29 +- deps/v8/src/ast.cc | 108 +- deps/v8/src/ast.h | 113 +- deps/v8/src/atomicops.h | 10 +- deps/v8/src/atomicops_internals_tsan.h | 249 +- deps/v8/src/bootstrapper.cc | 88 +- deps/v8/src/builtins.cc | 63 +- deps/v8/src/builtins.h | 7 +- deps/v8/src/code-stubs-hydrogen.cc | 60 +- deps/v8/src/code-stubs.cc | 68 +- deps/v8/src/code-stubs.h | 157 +- deps/v8/src/codegen.cc | 3 +- deps/v8/src/collection.js | 13 +- deps/v8/src/compiler.cc | 113 +- deps/v8/src/compiler.h | 95 +- deps/v8/src/contexts.h | 2 + deps/v8/src/cpu-profiler-inl.h | 21 +- deps/v8/src/cpu-profiler.cc | 364 +- deps/v8/src/cpu-profiler.h | 77 +- deps/v8/src/d8-debug.cc | 6 +- deps/v8/src/d8-readline.cc | 15 +- deps/v8/src/d8.cc | 11 +- deps/v8/src/d8.gyp | 3 +- deps/v8/src/d8.js | 2 +- deps/v8/src/data-flow.h | 2 + deps/v8/src/debug-debugger.js | 45 +- deps/v8/src/debug.cc | 104 +- deps/v8/src/debug.h | 18 +- deps/v8/src/deoptimizer.cc | 369 +- deps/v8/src/deoptimizer.h | 34 +- deps/v8/src/execution.h | 2 +- deps/v8/src/extensions/i18n/break-iterator.cc | 331 ++ deps/v8/src/extensions/i18n/break-iterator.h | 85 + deps/v8/src/extensions/i18n/break-iterator.js | 197 + deps/v8/src/extensions/i18n/collator.cc | 363 ++ deps/v8/src/extensions/i18n/collator.h | 68 + deps/v8/src/extensions/i18n/collator.js | 212 + deps/v8/src/extensions/i18n/date-format.cc | 329 ++ deps/v8/src/extensions/i18n/date-format.h | 71 + deps/v8/src/extensions/i18n/date-format.js | 478 ++ deps/v8/src/extensions/i18n/footer.js | 40 + deps/v8/src/extensions/i18n/globals.js | 168 + deps/v8/src/extensions/i18n/header.js | 41 + deps/v8/src/extensions/i18n/i18n-extension.cc | 116 + deps/v8/src/extensions/i18n/i18n-extension.h | 51 + deps/v8/src/extensions/i18n/i18n-utils.cc | 174 + deps/v8/src/extensions/i18n/i18n-utils.h | 91 + deps/v8/src/extensions/i18n/i18n-utils.js | 541 ++ deps/v8/src/extensions/i18n/locale.cc | 248 + deps/v8/src/extensions/i18n/locale.h | 56 + deps/v8/src/extensions/i18n/locale.js | 192 + deps/v8/src/extensions/i18n/number-format.cc | 418 ++ deps/v8/src/extensions/i18n/number-format.h | 69 + deps/v8/src/extensions/i18n/number-format.js | 295 ++ deps/v8/src/extensions/i18n/overrides.js | 220 + .../v8/src/extensions/statistics-extension.cc | 6 + deps/v8/src/factory.cc | 74 +- deps/v8/src/factory.h | 11 +- deps/v8/src/flag-definitions.h | 22 +- deps/v8/src/flags.cc | 4 +- deps/v8/src/frames-inl.h | 86 +- deps/v8/src/frames.cc | 308 +- deps/v8/src/frames.h | 242 +- deps/v8/src/full-codegen.cc | 25 +- deps/v8/src/full-codegen.h | 31 +- deps/v8/src/gdb-jit.cc | 119 +- deps/v8/src/gdb-jit.h | 2 + deps/v8/src/generator.js | 19 + deps/v8/src/global-handles.h | 2 +- deps/v8/src/globals.h | 43 +- deps/v8/src/handles.cc | 23 +- deps/v8/src/handles.h | 3 +- deps/v8/src/heap-inl.h | 33 +- deps/v8/src/heap-profiler.cc | 5 - deps/v8/src/heap-profiler.h | 2 +- deps/v8/src/heap-snapshot-generator.cc | 156 +- deps/v8/src/heap-snapshot-generator.h | 19 +- deps/v8/src/heap.cc | 460 +- deps/v8/src/heap.h | 42 +- deps/v8/src/hydrogen-environment-liveness.cc | 120 +- deps/v8/src/hydrogen-environment-liveness.h | 26 +- deps/v8/src/hydrogen-escape-analysis.cc | 66 + deps/v8/src/hydrogen-escape-analysis.h | 57 + deps/v8/src/hydrogen-gvn.cc | 61 +- deps/v8/src/hydrogen-gvn.h | 28 +- deps/v8/src/hydrogen-infer-representation.cc | 172 + deps/v8/src/hydrogen-infer-representation.h | 57 + deps/v8/src/hydrogen-instructions.cc | 205 +- deps/v8/src/hydrogen-instructions.h | 268 +- deps/v8/src/hydrogen-osr.cc | 123 + deps/v8/src/hydrogen-osr.h | 70 + deps/v8/src/hydrogen-range-analysis.cc | 169 + deps/v8/src/hydrogen-range-analysis.h | 61 + deps/v8/src/hydrogen-uint32-analysis.cc | 231 + deps/v8/src/hydrogen-uint32-analysis.h | 59 + deps/v8/src/hydrogen.cc | 2447 +++------ deps/v8/src/hydrogen.h | 249 +- deps/v8/src/ia32/assembler-ia32-inl.h | 29 +- deps/v8/src/ia32/assembler-ia32.cc | 2 +- deps/v8/src/ia32/assembler-ia32.h | 4 +- deps/v8/src/ia32/builtins-ia32.cc | 501 +- deps/v8/src/ia32/code-stubs-ia32.cc | 321 +- deps/v8/src/ia32/codegen-ia32.cc | 2 +- deps/v8/src/ia32/cpu-ia32.cc | 2 +- deps/v8/src/ia32/debug-ia32.cc | 2 +- deps/v8/src/ia32/deoptimizer-ia32.cc | 2 +- deps/v8/src/ia32/disasm-ia32.cc | 2 +- deps/v8/src/ia32/frames-ia32.cc | 9 +- deps/v8/src/ia32/full-codegen-ia32.cc | 220 +- deps/v8/src/ia32/ic-ia32.cc | 9 +- deps/v8/src/ia32/lithium-codegen-ia32.cc | 510 +- deps/v8/src/ia32/lithium-codegen-ia32.h | 22 +- deps/v8/src/ia32/lithium-gap-resolver-ia32.cc | 2 +- deps/v8/src/ia32/lithium-ia32.cc | 114 +- deps/v8/src/ia32/lithium-ia32.h | 100 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 49 +- deps/v8/src/ia32/macro-assembler-ia32.h | 11 + .../src/ia32/regexp-macro-assembler-ia32.cc | 3 +- deps/v8/src/ia32/stub-cache-ia32.cc | 183 +- deps/v8/src/ic.cc | 272 +- deps/v8/src/ic.h | 34 +- deps/v8/src/incremental-marking.cc | 3 + deps/v8/src/isolate.cc | 133 +- deps/v8/src/isolate.h | 53 +- deps/v8/src/json-parser.h | 53 +- deps/v8/src/jsregexp.cc | 14 +- deps/v8/src/jsregexp.h | 3 +- deps/v8/src/lithium-allocator-inl.h | 5 +- deps/v8/src/lithium-allocator.cc | 219 +- deps/v8/src/lithium-allocator.h | 21 +- deps/v8/src/lithium.cc | 9 +- deps/v8/src/lithium.h | 51 +- deps/v8/src/liveedit.cc | 19 +- deps/v8/src/liveedit.h | 4 +- deps/v8/src/log-inl.h | 1 - deps/v8/src/log-utils.cc | 12 + deps/v8/src/log-utils.h | 3 + deps/v8/src/log.cc | 334 +- deps/v8/src/log.h | 17 + deps/v8/src/macros.py | 2 +- deps/v8/src/mark-compact.cc | 220 +- deps/v8/src/mark-compact.h | 9 +- deps/v8/src/marking-thread.cc | 1 + deps/v8/src/messages.js | 13 +- deps/v8/src/mips/OWNERS | 1 + deps/v8/src/mips/assembler-mips-inl.h | 29 +- deps/v8/src/mips/assembler-mips.cc | 4 +- deps/v8/src/mips/builtins-mips.cc | 447 +- deps/v8/src/mips/code-stubs-mips.cc | 386 +- deps/v8/src/mips/code-stubs-mips.h | 2 - deps/v8/src/mips/codegen-mips.cc | 2 +- deps/v8/src/mips/constants-mips.cc | 2 +- deps/v8/src/mips/cpu-mips.cc | 2 +- deps/v8/src/mips/debug-mips.cc | 2 +- deps/v8/src/mips/disasm-mips.cc | 2 +- deps/v8/src/mips/frames-mips.cc | 12 +- deps/v8/src/mips/full-codegen-mips.cc | 226 +- deps/v8/src/mips/ic-mips.cc | 9 +- deps/v8/src/mips/lithium-codegen-mips.cc | 705 ++- deps/v8/src/mips/lithium-codegen-mips.h | 38 +- deps/v8/src/mips/lithium-mips.cc | 149 +- deps/v8/src/mips/lithium-mips.h | 114 +- deps/v8/src/mips/macro-assembler-mips.cc | 48 +- deps/v8/src/mips/macro-assembler-mips.h | 5 + .../src/mips/regexp-macro-assembler-mips.cc | 2 +- deps/v8/src/mips/simulator-mips.cc | 57 +- deps/v8/src/mips/simulator-mips.h | 2 - deps/v8/src/mips/stub-cache-mips.cc | 183 +- deps/v8/src/mirror-debugger.js | 59 +- deps/v8/src/mksnapshot.cc | 18 +- deps/v8/src/natives.h | 3 +- deps/v8/src/objects-debug.cc | 36 +- deps/v8/src/objects-inl.h | 221 +- deps/v8/src/objects-printer.cc | 46 +- deps/v8/src/objects-visiting-inl.h | 108 +- deps/v8/src/objects-visiting.cc | 8 +- deps/v8/src/objects-visiting.h | 7 +- deps/v8/src/objects.cc | 945 ++-- deps/v8/src/objects.h | 389 +- deps/v8/src/optimizing-compiler-thread.cc | 37 +- deps/v8/src/optimizing-compiler-thread.h | 10 +- deps/v8/src/parser.cc | 71 +- deps/v8/src/parser.h | 10 +- deps/v8/src/platform-cygwin.cc | 6 - deps/v8/src/platform-freebsd.cc | 6 - deps/v8/src/platform-linux.cc | 15 +- deps/v8/src/platform-macos.cc | 8 +- deps/v8/src/platform-openbsd.cc | 9 +- deps/v8/src/platform-posix.cc | 23 +- deps/v8/src/platform-solaris.cc | 6 - deps/v8/src/platform-tls-mac.h | 4 +- deps/v8/src/platform-win32.cc | 10 +- deps/v8/src/platform.h | 3 - deps/v8/src/preparser.cc | 16 +- deps/v8/src/preparser.h | 2 +- deps/v8/src/prettyprinter.cc | 12 +- deps/v8/src/profile-generator-inl.h | 8 +- deps/v8/src/profile-generator.cc | 159 +- deps/v8/src/profile-generator.h | 48 +- deps/v8/src/property-details.h | 4 + deps/v8/src/property.h | 9 +- deps/v8/src/runtime-profiler.cc | 55 +- deps/v8/src/runtime-profiler.h | 2 + deps/v8/src/runtime.cc | 539 +- deps/v8/src/runtime.h | 37 +- deps/v8/src/runtime.js | 7 +- deps/v8/src/sampler.cc | 203 +- deps/v8/src/sampler.h | 29 +- deps/v8/src/serialize.cc | 14 +- deps/v8/src/serialize.h | 4 +- deps/v8/src/snapshot-common.cc | 10 +- deps/v8/src/snapshot-empty.cc | 2 + deps/v8/src/snapshot.h | 2 + deps/v8/src/spaces.cc | 117 +- deps/v8/src/spaces.h | 39 +- deps/v8/src/store-buffer.cc | 22 +- deps/v8/src/store-buffer.h | 3 +- deps/v8/src/string-stream.cc | 2 +- deps/v8/src/string.js | 56 +- deps/v8/src/strtod.cc | 2 +- deps/v8/src/stub-cache.cc | 61 +- deps/v8/src/stub-cache.h | 36 +- deps/v8/src/sweeper-thread.cc | 1 + deps/v8/src/third_party/vtune/v8vtune.gyp | 3 + deps/v8/src/third_party/vtune/vtune-jit.cc | 3 +- deps/v8/src/type-info.cc | 256 +- deps/v8/src/type-info.h | 47 +- deps/v8/src/typedarray.js | 288 +- deps/v8/src/types.cc | 224 +- deps/v8/src/types.h | 109 +- deps/v8/src/typing.cc | 26 +- deps/v8/src/typing.h | 9 +- deps/v8/src/unbound-queue-inl.h | 26 +- deps/v8/src/unbound-queue.h | 6 +- deps/v8/src/v8-counters.h | 62 +- deps/v8/src/v8.cc | 38 + deps/v8/src/v8.h | 7 +- deps/v8/src/v8globals.h | 3 +- deps/v8/src/v8natives.js | 26 +- deps/v8/src/v8utils.h | 4 +- deps/v8/src/version.cc | 4 +- deps/v8/src/x64/assembler-x64-inl.h | 29 +- deps/v8/src/x64/assembler-x64.cc | 2 +- deps/v8/src/x64/builtins-x64.cc | 502 +- deps/v8/src/x64/code-stubs-x64.cc | 481 +- deps/v8/src/x64/codegen-x64.cc | 14 +- deps/v8/src/x64/cpu-x64.cc | 2 +- deps/v8/src/x64/debug-x64.cc | 2 +- deps/v8/src/x64/deoptimizer-x64.cc | 4 +- deps/v8/src/x64/disasm-x64.cc | 2 +- deps/v8/src/x64/frames-x64.cc | 9 +- deps/v8/src/x64/full-codegen-x64.cc | 220 +- deps/v8/src/x64/ic-x64.cc | 163 +- deps/v8/src/x64/lithium-codegen-x64.cc | 496 +- deps/v8/src/x64/lithium-codegen-x64.h | 22 +- deps/v8/src/x64/lithium-gap-resolver-x64.cc | 2 +- deps/v8/src/x64/lithium-x64.cc | 97 +- deps/v8/src/x64/lithium-x64.h | 90 +- deps/v8/src/x64/macro-assembler-x64.cc | 88 +- deps/v8/src/x64/macro-assembler-x64.h | 12 +- deps/v8/src/x64/regexp-macro-assembler-x64.cc | 3 +- deps/v8/src/x64/stub-cache-x64.cc | 199 +- deps/v8/src/zone-inl.h | 14 +- deps/v8/src/zone.cc | 67 +- deps/v8/src/zone.h | 67 +- deps/v8/test/cctest/cctest.gyp | 3 +- deps/v8/test/cctest/cctest.h | 30 +- deps/v8/test/cctest/cctest.status | 9 +- deps/v8/test/cctest/test-accessors.cc | 83 +- deps/v8/test/cctest/test-api.cc | 1945 ++++--- deps/v8/test/cctest/test-assembler-mips.cc | 4 +- deps/v8/test/cctest/test-ast.cc | 5 +- .../test/cctest/test-compare-nil-ic-stub.cc | 42 +- deps/v8/test/cctest/test-compiler.cc | 8 +- deps/v8/test/cctest/test-cpu-profiler.cc | 445 +- deps/v8/test/cctest/test-dataflow.cc | 29 +- deps/v8/test/cctest/test-debug.cc | 101 +- .../test/cctest/test-declarative-accessors.cc | 4 +- deps/v8/test/cctest/test-decls.cc | 49 +- deps/v8/test/cctest/test-dictionary.cc | 2 + deps/v8/test/cctest/test-global-object.cc | 2 +- deps/v8/test/cctest/test-hashing.cc | 4 +- deps/v8/test/cctest/test-heap-profiler.cc | 77 +- deps/v8/test/cctest/test-heap.cc | 202 +- deps/v8/test/cctest/test-liveedit.cc | 13 +- deps/v8/test/cctest/test-lockers.cc | 18 +- deps/v8/test/cctest/test-log-stack-tracer.cc | 46 +- deps/v8/test/cctest/test-log.cc | 28 +- .../test/cctest/test-macro-assembler-x64.cc | 2 +- deps/v8/test/cctest/test-mark-compact.cc | 24 +- deps/v8/test/cctest/test-object-observe.cc | 32 +- deps/v8/test/cctest/test-parsing.cc | 10 +- deps/v8/test/cctest/test-profile-generator.cc | 151 +- deps/v8/test/cctest/test-regexp.cc | 258 +- deps/v8/test/cctest/test-serialize.cc | 45 +- deps/v8/test/cctest/test-strings.cc | 33 +- .../v8/test/cctest/test-thread-termination.cc | 37 +- deps/v8/test/cctest/test-types.cc | 373 +- deps/v8/test/cctest/test-weaktypedarrays.cc | 151 +- deps/v8/test/message/testcfg.py | 3 +- deps/v8/test/mjsunit/allocation-site-info.js | 272 +- .../mjsunit/array-constructor-feedback.js | 217 + deps/v8/test/mjsunit/array-feedback.js | 216 + .../v8/test/mjsunit/array-literal-feedback.js | 75 + deps/v8/test/mjsunit/assert-opt-and-deopt.js | 8 +- .../test/mjsunit/compiler/inline-arguments.js | 43 + deps/v8/test/mjsunit/compiler/osr-big.js | 45 + deps/v8/test/mjsunit/compiler/osr-nested.js | 46 + deps/v8/test/mjsunit/compiler/osr-one.js | 40 + ...s-for-osr.js => osr-regress-max-locals.js} | 0 .../compiler/{simple-osr.js => osr-simple.js} | 0 deps/v8/test/mjsunit/compiler/osr-two.js | 44 + .../v8/test/mjsunit/compiler/osr-with-args.js | 44 + .../mjsunit/compiler/parallel-proto-change.js | 22 +- deps/v8/test/mjsunit/date.js | 4 +- deps/v8/test/mjsunit/debug-breakpoints.js | 25 +- deps/v8/test/mjsunit/debug-evaluate-locals.js | 13 +- deps/v8/test/mjsunit/debug-script.js | 5 +- deps/v8/test/mjsunit/elements-kind.js | 6 + .../v8/test/mjsunit/external-array-no-sse2.js | 37 +- deps/v8/test/mjsunit/external-array.js | 37 +- deps/v8/test/mjsunit/function-call.js | 1 + deps/v8/test/mjsunit/fuzz-natives-part1.js | 11 +- deps/v8/test/mjsunit/fuzz-natives-part2.js | 10 +- deps/v8/test/mjsunit/fuzz-natives-part3.js | 12 +- deps/v8/test/mjsunit/fuzz-natives-part4.js | 12 +- deps/v8/test/mjsunit/harmony/collections.js | 48 +- .../mjsunit/harmony/dataview-accessors.js | 310 ++ .../mjsunit/harmony/generators-iteration.js | 61 + .../mjsunit/harmony/generators-runtime.js | 3 + .../test/mjsunit/harmony/iteration-syntax.js | 5 + deps/v8/test/mjsunit/harmony/typedarrays.js | 85 +- .../test/mjsunit/manual-parallel-recompile.js | 23 +- deps/v8/test/mjsunit/mjsunit.status | 7 +- deps/v8/test/mjsunit/opt-elements-kind.js | 161 + deps/v8/test/mjsunit/osr-elements-kind.js | 155 + .../parallel-initial-prototype-change.js | 55 + .../parallel-invalidate-transition-map.js | 61 + .../mjsunit/parallel-optimize-disabled.js | 7 +- deps/v8/test/mjsunit/regress/regress-1383.js | 2 +- deps/v8/test/mjsunit/regress/regress-2691.js | 34 + .../mjsunit/regress/regress-crbug-217858.js | 13 +- .../mjsunit/regress/regress-crbug-245480.js | 90 + .../regress-debug-deopt-while-recompile.js | 84 + .../regress/regress-embedded-cons-string.js | 66 + .../regress/regress-function-length-strict.js | 41 + .../regress/regress-opt-after-debug-deopt.js | 69 + .../regress/regress-polymorphic-store.js | 48 + .../regress/string-split-monkey-patching.js | 40 + deps/v8/test/mjsunit/tools/tickprocessor.js | 4 + .../v8/test/webkit/Array-isArray-expected.txt | 46 + deps/v8/test/webkit/Array-isArray.js | 39 + .../JSON-stringify-replacer-expected.txt | 50 + .../v8/test/webkit/JSON-stringify-replacer.js | 95 + .../v8/test/webkit/Object-create-expected.txt | 48 + deps/v8/test/webkit/Object-create.js | 48 + .../Object-defineProperties-expected.txt | 42 + .../v8/test/webkit/Object-defineProperties.js | 36 + deps/v8/test/webkit/Object-keys-expected.txt | 43 + deps/v8/test/webkit/Object-keys.js | 36 + deps/v8/test/webkit/ToNumber-expected.txt | 170 + deps/v8/test/webkit/ToNumber.js | 194 + deps/v8/test/webkit/add-recovery-expected.txt | 37 + deps/v8/test/webkit/add-recovery.js | 43 + .../v8/test/webkit/apply-varargs-expected.txt | 41 + deps/v8/test/webkit/apply-varargs.js | 97 + .../webkit/arguments-bad-index-expected.txt | 36 + deps/v8/test/webkit/arguments-bad-index.js | 37 + .../array-constructor-host-call-expected.txt | 38 + .../webkit/array-constructor-host-call.js | 36 + .../array-defineOwnProperty-expected.txt | 67 + .../v8/test/webkit/array-defineOwnProperty.js | 83 + .../array-enumerators-functions-expected.txt | 978 ++++ .../webkit/array-enumerators-functions.js | 145 + deps/v8/test/webkit/array-every-expected.txt | 75 + deps/v8/test/webkit/array-every.js | 116 + deps/v8/test/webkit/array-filter-expected.txt | 90 + deps/v8/test/webkit/array-filter.js | 100 + deps/v8/test/webkit/array-holes-expected.txt | 85 + deps/v8/test/webkit/array-holes.js | 134 + .../array-index-immediate-types-expected.txt | 39 + .../webkit/array-index-immediate-types.js | 44 + .../test/webkit/array-indexing-expected.txt | 35 + deps/v8/test/webkit/array-indexing.js | 37 + .../array-iterate-backwards-expected.txt | 35 + .../v8/test/webkit/array-iterate-backwards.js | 55 + .../webkit/array-lastIndexOf-expected.txt | 46 + deps/v8/test/webkit/array-lastIndexOf.js | 75 + ...oto-func-length-getter-except-expected.txt | 50 + .../array-proto-func-length-getter-except.js | 64 + ...o-func-property-getter-except-expected.txt | 50 + ...array-proto-func-property-getter-except.js | 68 + deps/v8/test/webkit/array-reduce-expected.txt | 63 + deps/v8/test/webkit/array-reduce.js | 91 + .../webkit/array-reduceRight-expected.txt | 64 + deps/v8/test/webkit/array-reduceRight.js | 93 + .../array-reset-large-index-expected.txt | 34 + .../v8/test/webkit/array-reset-large-index.js | 35 + .../array-sort-numericCompare-expected.txt | 34 + .../test/webkit/array-sort-numericCompare.js | 39 + .../webkit/array-sort-reentrance-expected.txt | 32 + deps/v8/test/webkit/array-sort-reentrance.js | 40 + ...parse-array-with-large-length-expected.txt | 36 + ...rt-small-sparse-array-with-large-length.js | 40 + .../webkit/array-sort-sparse-expected.txt | 34 + deps/v8/test/webkit/array-sort-sparse.js | 35 + .../array-tostring-and-join-expected.txt | 33 + .../v8/test/webkit/array-tostring-and-join.js | 36 + .../array-type-speculation-expected.txt | 48 + deps/v8/test/webkit/array-type-speculation.js | 65 + deps/v8/test/webkit/avl-crash-expected.txt | 32 + deps/v8/test/webkit/avl-crash.js | 121 + .../test/webkit/bitops-type-tag-expected.txt | 38 + deps/v8/test/webkit/bitops-type-tag.js | 33 + .../boolean-argument-prediction-expected.txt | 48 + .../webkit/boolean-argument-prediction.js | 68 + .../webkit/boxed-double-to-int-expected.txt | 37 + deps/v8/test/webkit/boxed-double-to-int.js | 38 + deps/v8/test/webkit/break-ASI-expected.txt | 41 + deps/v8/test/webkit/break-ASI.js | 30 + ...-call-uninitialized-arguments-expected.txt | 35 + .../cached-call-uninitialized-arguments.js | 66 + .../test/webkit/call-apply-crash-expected.txt | 34 + deps/v8/test/webkit/call-apply-crash.js | 33 + deps/v8/test/webkit/char-at-expected.txt | 110 + deps/v8/test/webkit/char-at.js | 131 + ...closure-inside-extra-arg-call-expected.txt | 34 + .../webkit/closure-inside-extra-arg-call.js | 79 + ...n-assign-nontemporary-as-rexp-expected.txt | 34 + .../codegen-assign-nontemporary-as-rexp.js | 56 + .../v8/test/webkit/codegen-jless-expected.txt | 33 + deps/v8/test/webkit/codegen-jless.js | 28 + .../codegen-loops-logical-nodes-expected.txt | 127 + .../webkit/codegen-loops-logical-nodes.js | 1080 ++++ .../codegen-peephole-locals-expected.txt | 40 + .../v8/test/webkit/codegen-peephole-locals.js | 106 + .../webkit/codegen-temporaries-expected.txt | 139 + deps/v8/test/webkit/codegen-temporaries.js | 955 ++++ .../webkit/comparison-operators-expected.txt | 2816 ++++++++++ .../comparison-operators-greater-expected.txt | 1934 +++++++ .../webkit/comparison-operators-greater.js | 253 + .../comparison-operators-less-expected.txt | 1934 +++++++ .../test/webkit/comparison-operators-less.js | 252 + deps/v8/test/webkit/comparison-operators.js | 94 + ...oncat-while-having-a-bad-time-expected.txt | 33 + .../webkit/concat-while-having-a-bad-time.js | 31 + .../const-without-initializer-expected.txt | 34 + .../test/webkit/const-without-initializer.js | 34 + .../test/webkit/constant-count-expected.txt | 34 + deps/v8/test/webkit/constant-count.js | 45 + .../webkit/constant-encoding-expected.txt | 37 + deps/v8/test/webkit/constant-encoding.js | 30 + .../test/webkit/constant-folding-expected.txt | 467 ++ deps/v8/test/webkit/constant-folding.js | 491 ++ ...ontinue-break-multiple-labels-expected.txt | 37 + .../webkit/continue-break-multiple-labels.js | 111 + .../webkit/convert-nan-to-bool-expected.txt | 97 + deps/v8/test/webkit/convert-nan-to-bool.js | 90 + .../webkit/cyclic-prototypes-expected.txt | 36 + deps/v8/test/webkit/cyclic-prototypes.js | 41 + .../webkit/date-DST-pre-1970-expected.txt | 35 + deps/v8/test/webkit/date-DST-pre-1970.js | 30 + .../test/webkit/date-constructor-expected.txt | 63 + deps/v8/test/webkit/date-constructor.js | 91 + .../date-daysfrom1970-overflow-expected.txt | 35 + .../test/webkit/date-daysfrom1970-overflow.js | 32 + .../date-parse-comments-test-expected.txt | 170 + .../test/webkit/date-parse-comments-test.js | 98 + .../test/webkit/date-set-to-nan-expected.txt | 129 + deps/v8/test/webkit/date-set-to-nan.js | 473 ++ .../webkit/date-utc-timeclip-expected.txt | 40 + deps/v8/test/webkit/date-utc-timeclip.js | 34 + deps/v8/test/webkit/debugger-expected.txt | 32 + deps/v8/test/webkit/debugger.js | 29 + .../webkit/declaration-in-block-expected.txt | 32 + deps/v8/test/webkit/declaration-in-block.js | 29 + .../delete-getters-setters-expected.txt | 48 + deps/v8/test/webkit/delete-getters-setters.js | 122 + .../test/webkit/delete-then-put-expected.txt | 38 + deps/v8/test/webkit/delete-then-put.js | 48 + ...dfg-abs-backwards-propagation-expected.txt | 232 + .../webkit/dfg-abs-backwards-propagation.js | 49 + .../webkit/dfg-add-not-number-expected.txt | 132 + deps/v8/test/webkit/dfg-add-not-number.js | 35 + .../dfg-arguments-alias-escape-expected.txt | 232 + .../test/webkit/dfg-arguments-alias-escape.js | 43 + .../webkit/dfg-arguments-alias-expected.txt | 232 + ...dfg-arguments-alias-one-block-expected.txt | 232 + ...ents-alias-one-block-osr-exit-expected.txt | 33 + .../dfg-arguments-alias-one-block-osr-exit.js | 45 + ...one-block-overwrite-arguments-expected.txt | 33 + ...nts-alias-one-block-overwrite-arguments.js | 45 + ...nts-alias-one-block-overwrite-expected.txt | 332 ++ ...dfg-arguments-alias-one-block-overwrite.js | 45 + .../webkit/dfg-arguments-alias-one-block.js | 34 + deps/v8/test/webkit/dfg-arguments-alias.js | 42 + ...g-arguments-cross-code-origin-expected.txt | 232 + .../webkit/dfg-arguments-cross-code-origin.js | 44 + .../dfg-arguments-mixed-alias-expected.txt | 232 + .../test/webkit/dfg-arguments-mixed-alias.js | 42 + .../dfg-arguments-osr-exit-expected.txt | 232 + ...t-multiple-blocks-before-exit-expected.txt | 232 + ...ts-osr-exit-multiple-blocks-before-exit.js | 62 + ...ents-osr-exit-multiple-blocks-expected.txt | 232 + .../dfg-arguments-osr-exit-multiple-blocks.js | 60 + deps/v8/test/webkit/dfg-arguments-osr-exit.js | 56 + .../dfg-arguments-out-of-bounds-expected.txt | 3032 +++++++++++ .../webkit/dfg-arguments-out-of-bounds.js | 52 + ...g-arguments-unexpected-escape-expected.txt | 232 + .../webkit/dfg-arguments-unexpected-escape.js | 47 + ...-predicted-but-not-proven-int-expected.txt | 140 + ...limination-predicted-but-not-proven-int.js | 67 + ...nation-tower-of-large-numbers-expected.txt | 233 + ...heck-elimination-tower-of-large-numbers.js | 60 + .../test/webkit/dfg-array-dead-expected.txt | 1032 ++++ deps/v8/test/webkit/dfg-array-dead.js | 52 + .../webkit/dfg-array-length-dead-expected.txt | 1032 ++++ deps/v8/test/webkit/dfg-array-length-dead.js | 36 + .../dfg-array-pop-side-effects-expected.txt | 283 + .../test/webkit/dfg-array-pop-side-effects.js | 62 + .../dfg-array-pop-value-clearing-expected.txt | 1032 ++++ .../webkit/dfg-array-pop-value-clearing.js | 35 + .../dfg-arrayify-elimination-expected.txt | 1027 ++++ .../test/webkit/dfg-arrayify-elimination.js | 39 + ...-when-late-prevent-extensions-expected.txt | 232 + ...g-arrayify-when-late-prevent-extensions.js | 42 + ...ayify-when-prevent-extensions-expected.txt | 232 + .../dfg-arrayify-when-prevent-extensions.js | 37 + .../dfg-bool-to-int32-reuse-expected.txt | 132 + .../v8/test/webkit/dfg-bool-to-int32-reuse.js | 33 + ...-not-peephole-around-osr-exit-expected.txt | 232 + ...ch-logical-not-peephole-around-osr-exit.js | 42 + .../webkit/dfg-branch-not-fail-expected.txt | 832 +++ deps/v8/test/webkit/dfg-branch-not-fail.js | 54 + ...-call-function-hit-watchpoint-expected.txt | 232 + .../dfg-call-function-hit-watchpoint.js | 46 + ...fg-call-method-hit-watchpoint-expected.txt | 232 + .../webkit/dfg-call-method-hit-watchpoint.js | 53 + .../dfg-captured-var-get-local-expected.txt | 132 + .../test/webkit/dfg-captured-var-get-local.js | 101 + ...a-merge-with-dead-use-at-tail-expected.txt | 232 + .../dfg-cfa-merge-with-dead-use-at-tail.js | 45 + ...oring-to-specialized-function-expected.txt | 234 + ...le-when-storing-to-specialized-function.js | 55 + ...branch-not-null-and-decrement-expected.txt | 532 ++ ...heck-then-branch-not-null-and-decrement.js | 55 + ...pe-check-then-branch-not-null-expected.txt | 532 ++ ...t-local-type-check-then-branch-not-null.js | 52 + ...-local-type-check-then-typeof-expected.txt | 1032 ++++ ...minate-set-local-type-check-then-typeof.js | 54 + ...local-on-same-block-set-local-expected.txt | 232 + ...antom-get-local-on-same-block-set-local.js | 63 + ...lify-redundant-dead-get-local-expected.txt | 1032 ++++ ...g-cfg-simplify-redundant-dead-get-local.js | 54 + ...ture-elimination-for-non-cell-expected.txt | 233 + ...heck-structure-elimination-for-non-cell.js | 49 + .../dfg-check-two-structures-expected.txt | 232 + .../test/webkit/dfg-check-two-structures.js | 55 + ...when-both-proven-final-object-expected.txt | 132 + ...-or-other-when-both-proven-final-object.js | 39 + ...ther-when-proven-final-object-expected.txt | 132 + ...bject-or-other-when-proven-final-object.js | 39 + ...-local-read-after-block-merge-expected.txt | 232 + ...fold-first-local-read-after-block-merge.js | 47 + ...stant-fold-logical-not-branch-expected.txt | 2032 +++++++ .../dfg-constant-fold-logical-not-branch.js | 55 + ...g-constant-fold-misprediction-expected.txt | 37 + .../webkit/dfg-constant-fold-misprediction.js | 60 + ...riable-that-is-later-captured-expected.txt | 132 + ...aptured-variable-that-is-later-captured.js | 52 + .../dfg-convert-this-dom-window-expected.txt | 1232 +++++ .../webkit/dfg-convert-this-dom-window.js | 47 + ...his-object-then-exit-on-other-expected.txt | 232 + ...-convert-this-object-then-exit-on-other.js | 41 + ...his-other-then-exit-on-object-expected.txt | 232 + ...-convert-this-other-then-exit-on-object.js | 41 + ...hic-object-then-exit-on-other-expected.txt | 1032 ++++ ...s-polymorphic-object-then-exit-on-other.js | 43 + ...ic-object-then-exit-on-string-expected.txt | 1032 ++++ ...-polymorphic-object-then-exit-on-string.js | 45 + ...d-arguments-in-closure-inline-expected.txt | 232 + ...ate-inlined-arguments-in-closure-inline.js | 43 + .../dfg-cse-cfa-discrepancy-expected.txt | 232 + .../v8/test/webkit/dfg-cse-cfa-discrepancy.js | 54 + .../dfg-cse-dead-get-scoped-var-expected.txt | 1032 ++++ .../webkit/dfg-cse-dead-get-scoped-var.js | 41 + .../webkit/dfg-dead-min-one-arg-expected.txt | 282 + deps/v8/test/webkit/dfg-dead-min-one-arg.js | 47 + .../webkit/dfg-dead-min-two-args-expected.txt | 532 ++ deps/v8/test/webkit/dfg-dead-min-two-args.js | 70 + ...ad-redundant-get-array-length-expected.txt | 160 + .../dfg-dead-redundant-get-array-length.js | 34 + .../webkit/dfg-dead-speculation-expected.txt | 432 ++ deps/v8/test/webkit/dfg-dead-speculation.js | 45 + ...chain-of-dead-unchecked-nodes-expected.txt | 1032 ++++ ...code-with-chain-of-dead-unchecked-nodes.js | 40 + .../dfg-dead-variable-on-exit-expected.txt | 332 ++ .../test/webkit/dfg-dead-variable-on-exit.js | 87 + ...uble-addition-simplify-to-int-expected.txt | 1032 ++++ .../dfg-double-addition-simplify-to-int.js | 49 + ...plification-double-prediction-expected.txt | 232 + ...f-post-simplification-double-prediction.js | 40 + .../webkit/dfg-double-vote-fuzz-expected.txt | 289 + deps/v8/test/webkit/dfg-double-vote-fuzz.js | 91 + ...nsure-array-storage-on-string-expected.txt | 1233 +++++ .../dfg-ensure-array-storage-on-string.js | 44 + ...nsure-array-storage-on-window-expected.txt | 1233 +++++ .../dfg-ensure-array-storage-on-window.js | 47 + ...g-ensure-contiguous-on-string-expected.txt | 1233 +++++ .../webkit/dfg-ensure-contiguous-on-string.js | 43 + ...array-array-storage-on-window-expected.txt | 2437 +++++++++ ...nsure-non-array-array-storage-on-window.js | 88 + .../v8/test/webkit/dfg-exception-expected.txt | 33 + deps/v8/test/webkit/dfg-exception.js | 113 + .../webkit/dfg-float32-array-nan-expected.txt | 234 + deps/v8/test/webkit/dfg-float32-array-nan.js | 45 + .../webkit/dfg-flush-get-local-expected.txt | 33 + deps/v8/test/webkit/dfg-flush-get-local.js | 47 + ...itional-constant-prop-in-loop-expected.txt | 232 + ...parse-conditional-constant-prop-in-loop.js | 45 + .../dfg-get-by-val-clobber-expected.txt | 3032 +++++++++++ deps/v8/test/webkit/dfg-get-by-val-clobber.js | 52 + deps/v8/test/webkit/dfg-getter-expected.txt | 232 + .../test/webkit/dfg-getter-throw-expected.txt | 232 + deps/v8/test/webkit/dfg-getter-throw.js | 51 + deps/v8/test/webkit/dfg-getter.js | 38 + ...erferes-with-get-array-length-expected.txt | 132 + ...by-val-interferes-with-get-array-length.js | 37 + ...nline-arguments-become-double-expected.txt | 232 + .../dfg-inline-arguments-become-double.js | 54 + ...inline-arguments-become-int32-expected.txt | 232 + .../dfg-inline-arguments-become-int32.js | 54 + .../dfg-inline-arguments-int32-expected.txt | 232 + .../test/webkit/dfg-inline-arguments-int32.js | 53 + ...rguments-osr-exit-and-capture-expected.txt | 332 ++ ...g-inline-arguments-osr-exit-and-capture.js | 56 + ...nline-arguments-out-of-bounds-expected.txt | 3032 +++++++++++ .../dfg-inline-arguments-out-of-bounds.js | 53 + ...ne-arguments-reset-changetype-expected.txt | 232 + .../dfg-inline-arguments-reset-changetype.js | 54 + .../dfg-inline-arguments-reset-expected.txt | 232 + .../test/webkit/dfg-inline-arguments-reset.js | 54 + .../dfg-inline-arguments-simple-expected.txt | 232 + .../webkit/dfg-inline-arguments-simple.js | 53 + ...se-directly-from-inlined-code-expected.txt | 232 + ...rguments-use-directly-from-inlined-code.js | 48 + ...se-from-all-the-places-broken-expected.txt | 232 + ...rguments-use-from-all-the-places-broken.js | 61 + ...ments-use-from-all-the-places-expected.txt | 232 + ...nline-arguments-use-from-all-the-places.js | 65 + ...ine-arguments-use-from-getter-expected.txt | 232 + .../dfg-inline-arguments-use-from-getter.js | 51 + ...ments-use-from-uninlined-code-expected.txt | 232 + ...nline-arguments-use-from-uninlined-code.js | 55 + .../webkit/dfg-inline-constant-expected.txt | 36 + deps/v8/test/webkit/dfg-inline-constant.js | 44 + ...nstructor-that-uses-arguments-expected.txt | 232 + ...-inline-constructor-that-uses-arguments.js | 37 + .../dfg-inline-early-return-expected.txt | 34 + .../v8/test/webkit/dfg-inline-early-return.js | 44 + ...fg-inline-function-dot-caller-expected.txt | 37 + .../webkit/dfg-inline-function-dot-caller.js | 69 + .../dfg-inline-new-array-buffer-expected.txt | 72 + .../webkit/dfg-inline-new-array-buffer.js | 47 + .../dfg-inline-unused-this-expected.txt | 1032 ++++ ...line-unused-this-method-check-expected.txt | 1032 ++++ .../dfg-inline-unused-this-method-check.js | 54 + deps/v8/test/webkit/dfg-inline-unused-this.js | 57 + .../dfg-inlining-reg-alloc-expected.txt | 3032 +++++++++++ deps/v8/test/webkit/dfg-inlining-reg-alloc.js | 166 + .../dfg-int-overflow-in-loop-expected.txt | 33 + .../test/webkit/dfg-int-overflow-in-loop.js | 40 + ...low-large-constants-in-a-line-expected.txt | 232 + ...-int-overflow-large-constants-in-a-line.js | 76 + ...t32-to-double-on-known-number-expected.txt | 232 + .../dfg-int32-to-double-on-known-number.js | 43 + ...-double-on-set-local-and-exit-expected.txt | 1233 +++++ ...g-int32-to-double-on-set-local-and-exit.js | 63 + ...-set-local-and-sometimes-exit-expected.txt | 1233 +++++ ...-double-on-set-local-and-sometimes-exit.js | 65 + .../dfg-integer-optimization-expected.txt | 2032 +++++++ .../test/webkit/dfg-integer-optimization.js | 46 + .../dfg-intrinsic-osr-exit-expected.txt | 43 + deps/v8/test/webkit/dfg-intrinsic-osr-exit.js | 40 + ...de-effect-assignment-osr-exit-expected.txt | 532 ++ ...trinsic-side-effect-assignment-osr-exit.js | 49 + .../dfg-intrinsic-unused-this-expected.txt | 1032 ++++ ...nsic-unused-this-method-check-expected.txt | 1032 ++++ .../dfg-intrinsic-unused-this-method-check.js | 50 + .../test/webkit/dfg-intrinsic-unused-this.js | 53 + ...dfg-max-backwards-propagation-expected.txt | 232 + .../webkit/dfg-max-backwards-propagation.js | 49 + ...dfg-min-backwards-propagation-expected.txt | 232 + .../webkit/dfg-min-backwards-propagation.js | 49 + deps/v8/test/webkit/dfg-min-max-expected.txt | 50 + deps/v8/test/webkit/dfg-min-max.js | 65 + ...redict-variable-but-prove-int-expected.txt | 233 + .../dfg-mispredict-variable-but-prove-int.js | 44 + ...-with-small-integer-and-bitor-expected.txt | 132 + ...ig-integer-with-small-integer-and-bitor.js | 36 + ...l-integer-and-detect-overflow-expected.txt | 1032 ++++ ...-with-small-integer-and-detect-overflow.js | 35 + ...ig-integer-with-small-integer-expected.txt | 132 + .../dfg-mul-big-integer-with-small-integer.js | 33 + .../webkit/dfg-mul-big-integers-expected.txt | 132 + deps/v8/test/webkit/dfg-mul-big-integers.js | 35 + ...basic-block-structure-clobber-expected.txt | 232 + ...dfg-multi-basic-block-structure-clobber.js | 56 + deps/v8/test/webkit/dfg-multiply-expected.txt | 1052 ++++ deps/v8/test/webkit/dfg-multiply.js | 68 + .../dfg-negative-array-index-expected.txt | 132 + .../test/webkit/dfg-negative-array-index.js | 37 + .../dfg-obvious-constant-cfa-expected.txt | 33 + .../test/webkit/dfg-obvious-constant-cfa.js | 46 + .../test/webkit/dfg-other-branch-expected.txt | 52 + deps/v8/test/webkit/dfg-other-branch.js | 51 + ...le-get-by-id-after-watchpoint-expected.txt | 232 + ...fg-patchable-get-by-id-after-watchpoint.js | 70 + ...when-both-proven-final-object-expected.txt | 132 + ...-or-other-when-both-proven-final-object.js | 46 + ...ther-when-proven-final-object-expected.txt | 132 + ...bject-or-other-when-proven-final-object.js | 45 + .../test/webkit/dfg-phantom-base-expected.txt | 232 + deps/v8/test/webkit/dfg-phantom-base.js | 42 + .../webkit/dfg-phantom-get-local-expected.txt | 232 + deps/v8/test/webkit/dfg-phantom-get-local.js | 42 + .../dfg-post-inc-then-exit-expected.txt | 132 + deps/v8/test/webkit/dfg-post-inc-then-exit.js | 38 + ...-proto-access-inline-osr-exit-expected.txt | 232 + .../dfg-proto-access-inline-osr-exit.js | 44 + ...fg-proto-stub-watchpoint-fire-expected.txt | 232 + .../webkit/dfg-proto-stub-watchpoint-fire.js | 43 + ...en-sqrt-backwards-propagation-expected.txt | 232 + .../dfg-proven-sqrt-backwards-propagation.js | 50 + ...fg-put-by-id-allocate-storage-expected.txt | 1082 ++++ ...-allocate-storage-polymorphic-expected.txt | 1232 +++++ ...-put-by-id-allocate-storage-polymorphic.js | 58 + .../webkit/dfg-put-by-id-allocate-storage.js | 51 + ...dfg-put-by-id-prototype-check-expected.txt | 1132 ++++ .../webkit/dfg-put-by-id-prototype-check.js | 52 + ...-put-by-id-reallocate-storage-expected.txt | 2132 ++++++++ ...eallocate-storage-polymorphic-expected.txt | 2282 ++++++++ ...ut-by-id-reallocate-storage-polymorphic.js | 72 + .../dfg-put-by-id-reallocate-storage.js | 65 + ...by-val-setter-then-get-by-val-expected.txt | 432 ++ .../dfg-put-by-val-setter-then-get-by-val.js | 46 + ...-put-scoped-var-backward-flow-expected.txt | 232 + .../dfg-put-scoped-var-backward-flow.js | 38 + .../dfg-putbyval-cfa-clobber-expected.txt | 232 + .../test/webkit/dfg-putbyval-cfa-clobber.js | 45 + ...ured-variable-proven-constant-expected.txt | 132 + ...ad-of-captured-variable-proven-constant.js | 48 + ...al-polymorphic-non-dictionary-expected.txt | 2032 +++++++ ...solve-global-polymorphic-non-dictionary.js | 38 + ...ve-global-specific-dictionary-expected.txt | 1032 ++++ .../dfg-resolve-global-specific-dictionary.js | 43 + ...y-zero-eliminate-valuetoint32-expected.txt | 1032 ++++ ...g-rshift-by-zero-eliminate-valuetoint32.js | 38 + ...de-effect-assignment-osr-exit-expected.txt | 1032 ++++ .../dfg-side-effect-assignment-osr-exit.js | 47 + ...fg-sqrt-backwards-propagation-expected.txt | 232 + .../webkit/dfg-sqrt-backwards-propagation.js | 49 + ...ue-into-argument-and-osr-exit-expected.txt | 232 + ...pected-value-into-argument-and-osr-exit.js | 64 + .../webkit/dfg-string-stricteq-expected.txt | 2032 +++++++ deps/v8/test/webkit/dfg-string-stricteq.js | 52 + ...-off-arguments-not-activation-expected.txt | 432 ++ .../dfg-tear-off-arguments-not-activation.js | 45 + ...ar-off-function-dot-arguments-expected.txt | 432 ++ .../dfg-tear-off-function-dot-arguments.js | 45 + .../dfg-to-string-bad-toString-expected.txt | 132 + .../test/webkit/dfg-to-string-bad-toString.js | 37 + .../dfg-to-string-bad-valueOf-expected.txt | 132 + .../test/webkit/dfg-to-string-bad-valueOf.js | 37 + .../webkit/dfg-to-string-int-expected.txt | 132 + .../dfg-to-string-int-or-string-expected.txt | 1032 ++++ .../webkit/dfg-to-string-int-or-string.js | 35 + deps/v8/test/webkit/dfg-to-string-int.js | 35 + .../webkit/dfg-to-string-on-cell-expected.txt | 132 + deps/v8/test/webkit/dfg-to-string-on-cell.js | 32 + .../dfg-to-string-on-value-expected.txt | 132 + deps/v8/test/webkit/dfg-to-string-on-value.js | 32 + ...side-effect-clobbers-toString-expected.txt | 282 + ...to-string-side-effect-clobbers-toString.js | 40 + .../dfg-to-string-side-effect-expected.txt | 232 + .../test/webkit/dfg-to-string-side-effect.js | 35 + ...o-string-toString-becomes-bad-expected.txt | 182 + ...omes-bad-with-check-structure-expected.txt | 132 + ...String-becomes-bad-with-check-structure.js | 37 + ...h-dictionary-string-prototype-expected.txt | 182 + ...es-bad-with-dictionary-string-prototype.js | 49 + .../dfg-to-string-toString-becomes-bad.js | 42 + ...-to-string-toString-in-string-expected.txt | 182 + .../dfg-to-string-toString-in-string.js | 44 + ...g-to-string-valueOf-in-string-expected.txt | 182 + .../webkit/dfg-to-string-valueOf-in-string.js | 42 + .../webkit/dfg-uint32-to-number-expected.txt | 36 + ...in-middle-of-copy-propagation-expected.txt | 132 + ...to-number-in-middle-of-copy-propagation.js | 38 + ...o-number-on-captured-variable-expected.txt | 132 + ...g-uint32-to-number-on-captured-variable.js | 37 + ...nt32-to-number-skip-then-exit-expected.txt | 232 + .../dfg-uint32-to-number-skip-then-exit.js | 45 + deps/v8/test/webkit/dfg-uint32-to-number.js | 42 + ...uint32array-overflow-constant-expected.txt | 232 + .../dfg-uint32array-overflow-constant.js | 38 + ...ut-of-bounds-put-by-val-alias-expected.txt | 232 + ...pedarray-out-of-bounds-put-by-val-alias.js | 38 + ...lue-to-int32-with-side-effect-expected.txt | 233 + .../dfg-value-to-int32-with-side-effect.js | 40 + ...-weak-js-constant-silent-fill-expected.txt | 3032 +++++++++++ .../dfg-weak-js-constant-silent-fill.js | 48 + .../webkit/dictionary-no-cache-expected.txt | 39 + deps/v8/test/webkit/dictionary-no-cache.js | 112 + .../dictionary-prototype-caching-expected.txt | 39 + .../webkit/dictionary-prototype-caching.js | 95 + .../webkit/do-while-semicolon-expected.txt | 36 + deps/v8/test/webkit/do-while-semicolon.js | 67 + .../webkit/duplicate-param-crash-expected.txt | 34 + deps/v8/test/webkit/duplicate-param-crash.js | 42 + .../duplicate-param-gc-crash-expected.txt | 34 + .../test/webkit/duplicate-param-gc-crash.js | 70 + ...mode-with-blank-indexing-type-expected.txt | 33 + ...-indexing-mode-with-blank-indexing-type.js | 31 + deps/v8/test/webkit/equality-expected.txt | 832 +++ deps/v8/test/webkit/equality.js | 77 + .../v8/test/webkit/eval-and-with-expected.txt | 41 + deps/v8/test/webkit/eval-and-with.js | 57 + .../test/webkit/eval-cache-crash-expected.txt | 34 + deps/v8/test/webkit/eval-cache-crash.js | 38 + .../webkit/eval-throw-return-expected.txt | 48 + deps/v8/test/webkit/eval-throw-return.js | 54 + .../v8/test/webkit/eval-var-decl-expected.txt | 38 + deps/v8/test/webkit/eval-var-decl.js | 65 + .../exception-for-nonobject-expected.txt | 34 + .../v8/test/webkit/exception-for-nonobject.js | 27 + ...n-propagate-from-dfg-to-llint-expected.txt | 33 + .../exception-propagate-from-dfg-to-llint.js | 210 + ...ption-try-finally-scope-error-expected.txt | 33 + .../exception-try-finally-scope-error.js | 59 + ...nside-eval-with-dynamic-scope-expected.txt | 43 + ...-handler-inside-eval-with-dynamic-scope.js | 55 + .../finally-codegen-failure-expected.txt | 35 + .../v8/test/webkit/finally-codegen-failure.js | 44 + ...h-all-properties-were-deleted-expected.txt | 132 + ...-from-which-all-properties-were-deleted.js | 43 + .../for-in-avoid-duplicates-expected.txt | 33 + .../v8/test/webkit/for-in-avoid-duplicates.js | 43 + .../v8/test/webkit/for-in-cached-expected.txt | 42 + deps/v8/test/webkit/for-in-cached.js | 97 + .../webkit/for-in-exeception-expected.txt | 35 + deps/v8/test/webkit/for-in-exeception.js | 46 + .../test/webkit/for-in-to-text-expected.txt | 33 + deps/v8/test/webkit/for-in-to-text.js | 34 + .../test/webkit/for-in-var-scope-expected.txt | 34 + deps/v8/test/webkit/for-in-var-scope.js | 42 + .../function-apply-aliased-expected.txt | 54 + deps/v8/test/webkit/function-apply-aliased.js | 84 + .../webkit/function-call-aliased-expected.txt | 44 + deps/v8/test/webkit/function-call-aliased.js | 45 + ...tion-call-register-allocation-expected.txt | 33 + .../function-call-register-allocation.js | 62 + ...nstructor-newline-after-brace-expected.txt | 32 + ...unction-constructor-newline-after-brace.js | 54 + ...nstructor-single-line-comment-expected.txt | 36 + ...unction-constructor-single-line-comment.js | 31 + .../webkit/function-declaration-expected.txt | 35 + ...unction-declaration-statement-expected.txt | 43 + .../webkit/function-declaration-statement.js | 183 + deps/v8/test/webkit/function-declaration.js | 30 + ...larations-in-switch-statement-expected.txt | 33 + ...nction-declarations-in-switch-statement.js | 47 + ...nction-dot-apply-replace-base-expected.txt | 33 + .../webkit/function-dot-apply-replace-base.js | 49 + ...function-dot-length-read-only-expected.txt | 34 + .../webkit/function-dot-length-read-only.js | 36 + ...function-prototype-descriptor-expected.txt | 42 + .../webkit/function-prototype-descriptor.js | 49 + ...tion-toString-object-literals-expected.txt | 53 + .../function-toString-object-literals.js | 63 + deps/v8/test/webkit/get-by-pname-expected.txt | 532 ++ ...get-by-pname-non-final-object-expected.txt | 532 ++ .../webkit/get-by-pname-non-final-object.js | 73 + ...s-like-a-patchable-get-by-val-expected.txt | 33 + ...-that-looks-like-a-patchable-get-by-val.js | 44 + deps/v8/test/webkit/get-by-pname.js | 48 + .../test/webkit/getter-setter-gc-expected.txt | 34 + deps/v8/test/webkit/getter-setter-gc.js | 41 + .../global-resolve-through-eval-expected.txt | 34 + .../webkit/global-resolve-through-eval.js | 32 + deps/v8/test/webkit/gmail-re-re-expected.txt | 35 + deps/v8/test/webkit/gmail-re-re.js | 59 + .../test/webkit/has-own-property-expected.txt | 38 + deps/v8/test/webkit/has-own-property.js | 34 + ...-result-null-comparison-crash-expected.txt | 34 + .../ignored-result-null-comparison-crash.js | 42 + .../ignored-result-ref-crash-expected.txt | 37 + .../test/webkit/ignored-result-ref-crash.js | 86 + ...dexed-setter-on-global-object-expected.txt | 33 + .../webkit/indexed-setter-on-global-object.js | 37 + .../instance-of-immediates-expected.txt | 50 + deps/v8/test/webkit/instance-of-immediates.js | 63 + .../webkit/instanceof-operator-expected.txt | 33 + deps/v8/test/webkit/instanceof-operator.js | 33 + .../test/webkit/integer-extremes-expected.txt | 641 +++ deps/v8/test/webkit/integer-extremes.js | 165 + .../interpreter-no-activation-expected.txt | 35 + .../test/webkit/interpreter-no-activation.js | 40 + ...valid-callframe-during-unwind-expected.txt | 33 + .../webkit/invalid-callframe-during-unwind.js | 28 + .../v8/test/webkit/isPrototypeOf-expected.txt | 36 + deps/v8/test/webkit/isPrototypeOf.js | 40 + .../webkit/jit-float32-array-nan-expected.txt | 234 + deps/v8/test/webkit/jit-float32-array-nan.js | 42 + ...s-continue-break-restrictions-expected.txt | 60 + .../webkit/js-continue-break-restrictions.js | 58 + .../keywords-and-reserved_words-expected.txt | 96 + .../webkit/keywords-and-reserved_words.js | 136 + ...egitimately-captured-argument-expected.txt | 1032 ++++ .../webkit/legitimately-captured-argument.js | 38 + .../test/webkit/logical-or-jless-expected.txt | 33 + deps/v8/test/webkit/logical-or-jless.js | 31 + deps/v8/test/webkit/math-expected.txt | 194 + .../test/webkit/math-transforms-expected.txt | 2254 ++++++++ deps/v8/test/webkit/math-transforms.js | 85 + deps/v8/test/webkit/math.js | 267 + deps/v8/test/webkit/mod-by-zero-expected.txt | 33 + deps/v8/test/webkit/mod-by-zero.js | 32 + deps/v8/test/webkit/mod-crash-expected.txt | 37 + deps/v8/test/webkit/mod-crash.js | 62 + .../multiline-comment-newline-expected.txt | 33 + .../test/webkit/multiline-comment-newline.js | 33 + .../named-function-expression-expected.txt | 64 + .../test/webkit/named-function-expression.js | 151 + .../test/webkit/nested-functions-expected.txt | 36 + deps/v8/test/webkit/nested-functions.js | 57 + .../new-array-double-with-holes-expected.txt | 132 + .../webkit/new-array-double-with-holes.js | 34 + ...mi-insertion-at-end-of-script-expected.txt | 34 + .../no-semi-insertion-at-end-of-script.js | 27 + .../webkit/number-cell-reuse-expected.txt | 44 + deps/v8/test/webkit/number-cell-reuse.js | 86 + .../webkit/number-parsing-crash-expected.txt | 33 + deps/v8/test/webkit/number-parsing-crash.js | 30 + .../webkit/number-toExponential-expected.txt | 60 + deps/v8/test/webkit/number-toExponential.js | 71 + .../test/webkit/numeric-compare-expected.txt | 32 + deps/v8/test/webkit/numeric-compare.js | 29 + .../webkit/numeric-conversion-expected.txt | 50 + deps/v8/test/webkit/numeric-conversion.js | 52 + .../object-literal-direct-put-expected.txt | 41 + .../test/webkit/object-literal-direct-put.js | 35 + .../webkit/object-literal-syntax-expected.txt | 52 + deps/v8/test/webkit/object-literal-syntax.js | 45 + .../webkit/order-of-operations-expected.txt | 45 + deps/v8/test/webkit/order-of-operations.js | 67 + deps/v8/test/webkit/parse-nan-expected.txt | 33 + deps/v8/test/webkit/parse-nan.js | 28 + deps/v8/test/webkit/parseFloat-expected.txt | 76 + deps/v8/test/webkit/parseFloat.js | 98 + deps/v8/test/webkit/parseInt-expected.txt | 69 + deps/v8/test/webkit/parseInt.js | 77 + .../parser-high-byte-character-expected.txt | 32 + .../test/webkit/parser-high-byte-character.js | 47 + .../parser-xml-close-comment-expected.txt | 41 + .../test/webkit/parser-xml-close-comment.js | 33 + .../webkit/polymorphic-construct-expected.txt | 44 + deps/v8/test/webkit/polymorphic-construct.js | 52 + deps/v8/test/webkit/pretty-print-expected.txt | 33 + deps/v8/test/webkit/pretty-print.js | 41 + .../webkit/preventExtensions-expected.txt | 66 + deps/v8/test/webkit/preventExtensions.js | 157 + .../webkit/primitive-method-this-expected.txt | 36 + deps/v8/test/webkit/primitive-method-this.js | 38 + .../property-getters-and-setters-expected.txt | 65 + .../webkit/property-getters-and-setters.js | 104 + .../webkit/property-iteration-expected.txt | 33 + deps/v8/test/webkit/property-iteration.js | 43 + .../webkit/propertyIsEnumerable-expected.txt | 40 + deps/v8/test/webkit/propertyIsEnumerable.js | 42 + deps/v8/test/webkit/prototypes-expected.txt | 90 + deps/v8/test/webkit/prototypes.js | 91 + .../webkit/reentrant-caching-expected.txt | 32 + deps/v8/test/webkit/reentrant-caching.js | 112 + .../webkit/reentrant-call-unwind-expected.txt | 33 + deps/v8/test/webkit/reentrant-call-unwind.js | 40 + .../webkit/regexp-alternatives-expected.txt | 41 + deps/v8/test/webkit/regexp-alternatives.js | 42 + .../webkit/regexp-backreferences-expected.txt | 44 + deps/v8/test/webkit/regexp-backreferences.js | 40 + .../regexp-char-insensitive-expected.txt | 48 + .../v8/test/webkit/regexp-char-insensitive.js | 47 + ...-character-match-out-of-order-expected.txt | 33 + .../regexp-character-match-out-of-order.js | 26 + .../webkit/regexp-compile-crash-expected.txt | 39 + deps/v8/test/webkit/regexp-compile-crash.js | 33 + .../test/webkit/regexp-compile-expected.txt | 52 + deps/v8/test/webkit/regexp-compile.js | 74 + .../test/webkit/regexp-divequal-expected.txt | 37 + deps/v8/test/webkit/regexp-divequal.js | 30 + ...exp-extended-characters-match-expected.txt | 43 + .../regexp-extended-characters-match.js | 40 + ...gexp-extended-characters-more-expected.txt | 35 + .../webkit/regexp-extended-characters-more.js | 30 + .../regexp-find-first-asserted-expected.txt | 35 + .../test/webkit/regexp-find-first-asserted.js | 31 + ...egexp-in-and-foreach-handling-expected.txt | 44 + .../webkit/regexp-in-and-foreach-handling.js | 72 + ...gexp-literals-arent-constants-expected.txt | 39 + .../webkit/regexp-literals-arent-constants.js | 57 + .../webkit/regexp-many-brackets-expected.txt | 34 + deps/v8/test/webkit/regexp-many-brackets.js | 44 + ...p-negative-special-characters-expected.txt | 74 + .../regexp-negative-special-characters.js | 86 + .../test/webkit/regexp-non-bmp-expected.txt | 41 + deps/v8/test/webkit/regexp-non-bmp.js | 44 + .../webkit/regexp-non-character-expected.txt | 46 + deps/v8/test/webkit/regexp-non-character.js | 41 + .../test/webkit/regexp-norepeat-expected.txt | 33 + deps/v8/test/webkit/regexp-norepeat.js | 30 + .../regexp-range-bound-ffff-expected.txt | 33 + .../v8/test/webkit/regexp-range-bound-ffff.js | 30 + ...gexp-zero-length-alternatives-expected.txt | 169 + .../webkit/regexp-zero-length-alternatives.js | 275 + ...terCachingAcrossBranchTargets-expected.txt | 37 + .../registerCachingAcrossBranchTargets.js | 32 + .../v8/test/webkit/rehash-assign-expected.txt | 33 + deps/v8/test/webkit/rehash-assign.js | 136 + .../test/webkit/reserved-words-expected.txt | 95 + deps/v8/test/webkit/reserved-words.js | 118 + .../webkit/resize-array-assign-expected.txt | 33 + deps/v8/test/webkit/resize-array-assign.js | 39 + .../resolve-arguments-from-scope-expected.txt | 332 ++ .../webkit/resolve-arguments-from-scope.js | 45 + .../test/webkit/resources/standalone-post.js | 26 + .../test/webkit/resources/standalone-pre.js | 191 + .../slash-lineterminator-parse-expected.txt | 33 + .../test/webkit/slash-lineterminator-parse.js | 30 + .../test/webkit/sort-large-array-expected.txt | 40 + deps/v8/test/webkit/sort-large-array.js | 43 + .../sort-no-jit-code-crash-expected.txt | 32 + deps/v8/test/webkit/sort-no-jit-code-crash.js | 46 + .../test/webkit/sort-non-numbers-expected.txt | 33 + deps/v8/test/webkit/sort-non-numbers.js | 31 + .../v8/test/webkit/sort-randomly-expected.txt | 32 + deps/v8/test/webkit/sort-randomly.js | 45 + ...th-side-effecting-comparisons-expected.txt | 33 + .../sort-with-side-effecting-comparisons.js | 44 + deps/v8/test/webkit/sparse-array-expected.txt | 45 + deps/v8/test/webkit/sparse-array.js | 50 + .../webkit/stack-overflow-catch-expected.txt | 34 + deps/v8/test/webkit/stack-overflow-catch.js | 76 + .../test/webkit/stack-unwinding-expected.txt | 36 + deps/v8/test/webkit/stack-unwinding.js | 65 + ...statement-list-register-crash-expected.txt | 33 + .../webkit/statement-list-register-crash.js | 38 + .../webkit/static-scope-object-expected.txt | 34 + deps/v8/test/webkit/static-scope-object.js | 43 + .../webkit/strict-callback-this-expected.txt | 46 + deps/v8/test/webkit/strict-callback-this.js | 126 + .../strict-throw-type-error-expected.txt | 43 + .../v8/test/webkit/strict-throw-type-error.js | 73 + .../webkit/string-from-char-code-expected.txt | 33 + deps/v8/test/webkit/string-from-char-code.js | 28 + .../webkit/string-index-overflow-expected.txt | 34 + deps/v8/test/webkit/string-index-overflow.js | 29 + .../string-property-deletion-expected.txt | 46 + .../test/webkit/string-property-deletion.js | 40 + .../string-property-iteration-expected.txt | 38 + .../test/webkit/string-property-iteration.js | 37 + .../string-slice-abnormal-values-expected.txt | 34 + .../webkit/string-slice-abnormal-values.js | 29 + deps/v8/test/webkit/string-sort-expected.txt | 52 + deps/v8/test/webkit/string-sort.js | 41 + .../v8/test/webkit/string-substr-expected.txt | 63 + deps/v8/test/webkit/string-substr.js | 66 + deps/v8/test/webkit/string-trim-expected.txt | 134 + deps/v8/test/webkit/string-trim.js | 95 + .../test/webkit/string_replace-expected.txt | 35 + deps/v8/test/webkit/string_replace.js | 30 + deps/v8/test/webkit/testcfg.py | 159 + .../webkit/this-non-object-proto-expected.txt | 34 + deps/v8/test/webkit/this-non-object-proto.js | 34 + .../webkit/throw-from-finally-expected.txt | 33 + deps/v8/test/webkit/throw-from-finally.js | 81 + ...String-elision-trailing-comma-expected.txt | 113 + .../webkit/toString-elision-trailing-comma.js | 131 + .../webkit/toString-for-var-decl-expected.txt | 37 + deps/v8/test/webkit/toString-for-var-decl.js | 39 + .../toString-number-dot-expr-expected.txt | 37 + .../test/webkit/toString-number-dot-expr.js | 214 + ...refix-postfix-preserve-parens-expected.txt | 84 + ...toString-prefix-postfix-preserve-parens.js | 154 + .../webkit/toString-recursion-expected.txt | 35 + deps/v8/test/webkit/toString-recursion.js | 35 + ...-exception-in-property-access-expected.txt | 38 + .../tostring-exception-in-property-access.js | 56 + ...-finally-return-catch-finally-expected.txt | 33 + ...-catch-try-finally-return-catch-finally.js | 53 + ...ry-try-return-finally-finally-expected.txt | 33 + .../webkit/try-try-return-finally-finally.js | 48 + .../webkit/typeof-codegen-crash-expected.txt | 39 + deps/v8/test/webkit/typeof-codegen-crash.js | 36 + .../typeof-constant-string-expected.txt | 70 + deps/v8/test/webkit/typeof-constant-string.js | 318 ++ .../unexpected-constant-crash-expected.txt | 32 + .../test/webkit/unexpected-constant-crash.js | 30 + .../unmatching-argument-count-expected.txt | 34 + .../test/webkit/unmatching-argument-count.js | 41 + .../var-declarations-zero-width-expected.txt | 35 + .../webkit/var-declarations-zero-width.js | 28 + .../webkit/var-shadows-arg-crash-expected.txt | 33 + deps/v8/test/webkit/var-shadows-arg-crash.js | 36 + .../var-shadows-arg-gc-crash-expected.txt | 33 + .../test/webkit/var-shadows-arg-gc-crash.js | 57 + .../webkit/vardecl-blocks-init-expected.txt | 36 + deps/v8/test/webkit/vardecl-blocks-init.js | 77 + deps/v8/test/webkit/webkit.status | 32 + deps/v8/tools/android-run.py | 2 +- deps/v8/tools/blink_tests/TestExpectations | 42 +- deps/v8/tools/gcmole/gcmole.lua | 3 +- .../generate_shim_headers.py | 122 + deps/v8/tools/grokdump.py | 84 +- deps/v8/tools/gyp/v8.gyp | 76 + deps/v8/tools/perf_tests/chromium_revision | 1 + deps/v8/tools/plot-timer-events | 6 +- deps/v8/tools/plot-timer-events.js | 510 -- deps/v8/tools/presubmit.py | 3 +- deps/v8/tools/profviz/composer.js | 580 ++ .../tools/profviz/gnuplot-4.6.3-emscripten.js | 4658 +++++++++++++++++ deps/v8/tools/profviz/profviz.css | 138 + deps/v8/tools/profviz/profviz.html | 153 + deps/v8/tools/profviz/profviz.js | 287 + deps/v8/tools/profviz/stdio.js | 52 + deps/v8/tools/profviz/worker.js | 167 + deps/v8/tools/testrunner/local/execution.py | 5 +- .../tools/testrunner/local/old_statusfile.py | 2 +- deps/v8/tools/testrunner/local/progress.py | 20 +- deps/v8/tools/testrunner/network/endpoint.py | 4 +- .../testrunner/network/network_execution.py | 5 +- deps/v8/tools/tickprocessor.js | 5 +- deps/v8/tools/v8-info.sh | 161 + deps/v8/tools/v8-rolls.sh | 120 + 1184 files changed, 168804 insertions(+), 14270 deletions(-) create mode 100644 deps/v8/build/shim_headers.gypi mode change 100644 => 100755 deps/v8/src/arm/code-stubs-arm.cc create mode 100644 deps/v8/src/extensions/i18n/break-iterator.cc create mode 100644 deps/v8/src/extensions/i18n/break-iterator.h create mode 100644 deps/v8/src/extensions/i18n/break-iterator.js create mode 100644 deps/v8/src/extensions/i18n/collator.cc create mode 100644 deps/v8/src/extensions/i18n/collator.h create mode 100644 deps/v8/src/extensions/i18n/collator.js create mode 100644 deps/v8/src/extensions/i18n/date-format.cc create mode 100644 deps/v8/src/extensions/i18n/date-format.h create mode 100644 deps/v8/src/extensions/i18n/date-format.js create mode 100644 deps/v8/src/extensions/i18n/footer.js create mode 100644 deps/v8/src/extensions/i18n/globals.js create mode 100644 deps/v8/src/extensions/i18n/header.js create mode 100644 deps/v8/src/extensions/i18n/i18n-extension.cc create mode 100644 deps/v8/src/extensions/i18n/i18n-extension.h create mode 100644 deps/v8/src/extensions/i18n/i18n-utils.cc create mode 100644 deps/v8/src/extensions/i18n/i18n-utils.h create mode 100644 deps/v8/src/extensions/i18n/i18n-utils.js create mode 100644 deps/v8/src/extensions/i18n/locale.cc create mode 100644 deps/v8/src/extensions/i18n/locale.h create mode 100644 deps/v8/src/extensions/i18n/locale.js create mode 100644 deps/v8/src/extensions/i18n/number-format.cc create mode 100644 deps/v8/src/extensions/i18n/number-format.h create mode 100644 deps/v8/src/extensions/i18n/number-format.js create mode 100644 deps/v8/src/extensions/i18n/overrides.js create mode 100644 deps/v8/src/hydrogen-escape-analysis.cc create mode 100644 deps/v8/src/hydrogen-escape-analysis.h create mode 100644 deps/v8/src/hydrogen-infer-representation.cc create mode 100644 deps/v8/src/hydrogen-infer-representation.h create mode 100644 deps/v8/src/hydrogen-osr.cc create mode 100644 deps/v8/src/hydrogen-osr.h create mode 100644 deps/v8/src/hydrogen-range-analysis.cc create mode 100644 deps/v8/src/hydrogen-range-analysis.h create mode 100644 deps/v8/src/hydrogen-uint32-analysis.cc create mode 100644 deps/v8/src/hydrogen-uint32-analysis.h mode change 100644 => 100755 deps/v8/src/mips/builtins-mips.cc mode change 100755 => 100644 deps/v8/test/cctest/test-api.cc create mode 100644 deps/v8/test/mjsunit/array-constructor-feedback.js create mode 100644 deps/v8/test/mjsunit/array-feedback.js create mode 100644 deps/v8/test/mjsunit/array-literal-feedback.js create mode 100644 deps/v8/test/mjsunit/compiler/osr-big.js create mode 100644 deps/v8/test/mjsunit/compiler/osr-nested.js create mode 100644 deps/v8/test/mjsunit/compiler/osr-one.js rename deps/v8/test/mjsunit/compiler/{regress-max-locals-for-osr.js => osr-regress-max-locals.js} (100%) rename deps/v8/test/mjsunit/compiler/{simple-osr.js => osr-simple.js} (100%) create mode 100644 deps/v8/test/mjsunit/compiler/osr-two.js create mode 100644 deps/v8/test/mjsunit/compiler/osr-with-args.js create mode 100644 deps/v8/test/mjsunit/harmony/dataview-accessors.js create mode 100644 deps/v8/test/mjsunit/opt-elements-kind.js create mode 100644 deps/v8/test/mjsunit/osr-elements-kind.js create mode 100644 deps/v8/test/mjsunit/parallel-initial-prototype-change.js create mode 100644 deps/v8/test/mjsunit/parallel-invalidate-transition-map.js create mode 100644 deps/v8/test/mjsunit/regress/regress-2691.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-245480.js create mode 100644 deps/v8/test/mjsunit/regress/regress-debug-deopt-while-recompile.js create mode 100644 deps/v8/test/mjsunit/regress/regress-embedded-cons-string.js create mode 100644 deps/v8/test/mjsunit/regress/regress-function-length-strict.js create mode 100644 deps/v8/test/mjsunit/regress/regress-opt-after-debug-deopt.js create mode 100644 deps/v8/test/mjsunit/regress/regress-polymorphic-store.js create mode 100644 deps/v8/test/mjsunit/regress/string-split-monkey-patching.js create mode 100644 deps/v8/test/webkit/Array-isArray-expected.txt create mode 100644 deps/v8/test/webkit/Array-isArray.js create mode 100644 deps/v8/test/webkit/JSON-stringify-replacer-expected.txt create mode 100644 deps/v8/test/webkit/JSON-stringify-replacer.js create mode 100644 deps/v8/test/webkit/Object-create-expected.txt create mode 100644 deps/v8/test/webkit/Object-create.js create mode 100644 deps/v8/test/webkit/Object-defineProperties-expected.txt create mode 100644 deps/v8/test/webkit/Object-defineProperties.js create mode 100644 deps/v8/test/webkit/Object-keys-expected.txt create mode 100644 deps/v8/test/webkit/Object-keys.js create mode 100644 deps/v8/test/webkit/ToNumber-expected.txt create mode 100644 deps/v8/test/webkit/ToNumber.js create mode 100644 deps/v8/test/webkit/add-recovery-expected.txt create mode 100644 deps/v8/test/webkit/add-recovery.js create mode 100644 deps/v8/test/webkit/apply-varargs-expected.txt create mode 100644 deps/v8/test/webkit/apply-varargs.js create mode 100644 deps/v8/test/webkit/arguments-bad-index-expected.txt create mode 100644 deps/v8/test/webkit/arguments-bad-index.js create mode 100644 deps/v8/test/webkit/array-constructor-host-call-expected.txt create mode 100644 deps/v8/test/webkit/array-constructor-host-call.js create mode 100644 deps/v8/test/webkit/array-defineOwnProperty-expected.txt create mode 100644 deps/v8/test/webkit/array-defineOwnProperty.js create mode 100644 deps/v8/test/webkit/array-enumerators-functions-expected.txt create mode 100644 deps/v8/test/webkit/array-enumerators-functions.js create mode 100644 deps/v8/test/webkit/array-every-expected.txt create mode 100644 deps/v8/test/webkit/array-every.js create mode 100644 deps/v8/test/webkit/array-filter-expected.txt create mode 100644 deps/v8/test/webkit/array-filter.js create mode 100644 deps/v8/test/webkit/array-holes-expected.txt create mode 100644 deps/v8/test/webkit/array-holes.js create mode 100644 deps/v8/test/webkit/array-index-immediate-types-expected.txt create mode 100644 deps/v8/test/webkit/array-index-immediate-types.js create mode 100644 deps/v8/test/webkit/array-indexing-expected.txt create mode 100644 deps/v8/test/webkit/array-indexing.js create mode 100644 deps/v8/test/webkit/array-iterate-backwards-expected.txt create mode 100644 deps/v8/test/webkit/array-iterate-backwards.js create mode 100644 deps/v8/test/webkit/array-lastIndexOf-expected.txt create mode 100644 deps/v8/test/webkit/array-lastIndexOf.js create mode 100644 deps/v8/test/webkit/array-proto-func-length-getter-except-expected.txt create mode 100644 deps/v8/test/webkit/array-proto-func-length-getter-except.js create mode 100644 deps/v8/test/webkit/array-proto-func-property-getter-except-expected.txt create mode 100644 deps/v8/test/webkit/array-proto-func-property-getter-except.js create mode 100644 deps/v8/test/webkit/array-reduce-expected.txt create mode 100644 deps/v8/test/webkit/array-reduce.js create mode 100644 deps/v8/test/webkit/array-reduceRight-expected.txt create mode 100644 deps/v8/test/webkit/array-reduceRight.js create mode 100644 deps/v8/test/webkit/array-reset-large-index-expected.txt create mode 100644 deps/v8/test/webkit/array-reset-large-index.js create mode 100644 deps/v8/test/webkit/array-sort-numericCompare-expected.txt create mode 100644 deps/v8/test/webkit/array-sort-numericCompare.js create mode 100644 deps/v8/test/webkit/array-sort-reentrance-expected.txt create mode 100644 deps/v8/test/webkit/array-sort-reentrance.js create mode 100644 deps/v8/test/webkit/array-sort-small-sparse-array-with-large-length-expected.txt create mode 100644 deps/v8/test/webkit/array-sort-small-sparse-array-with-large-length.js create mode 100644 deps/v8/test/webkit/array-sort-sparse-expected.txt create mode 100644 deps/v8/test/webkit/array-sort-sparse.js create mode 100644 deps/v8/test/webkit/array-tostring-and-join-expected.txt create mode 100644 deps/v8/test/webkit/array-tostring-and-join.js create mode 100644 deps/v8/test/webkit/array-type-speculation-expected.txt create mode 100644 deps/v8/test/webkit/array-type-speculation.js create mode 100644 deps/v8/test/webkit/avl-crash-expected.txt create mode 100644 deps/v8/test/webkit/avl-crash.js create mode 100644 deps/v8/test/webkit/bitops-type-tag-expected.txt create mode 100644 deps/v8/test/webkit/bitops-type-tag.js create mode 100644 deps/v8/test/webkit/boolean-argument-prediction-expected.txt create mode 100644 deps/v8/test/webkit/boolean-argument-prediction.js create mode 100644 deps/v8/test/webkit/boxed-double-to-int-expected.txt create mode 100644 deps/v8/test/webkit/boxed-double-to-int.js create mode 100644 deps/v8/test/webkit/break-ASI-expected.txt create mode 100644 deps/v8/test/webkit/break-ASI.js create mode 100644 deps/v8/test/webkit/cached-call-uninitialized-arguments-expected.txt create mode 100644 deps/v8/test/webkit/cached-call-uninitialized-arguments.js create mode 100644 deps/v8/test/webkit/call-apply-crash-expected.txt create mode 100644 deps/v8/test/webkit/call-apply-crash.js create mode 100644 deps/v8/test/webkit/char-at-expected.txt create mode 100644 deps/v8/test/webkit/char-at.js create mode 100644 deps/v8/test/webkit/closure-inside-extra-arg-call-expected.txt create mode 100644 deps/v8/test/webkit/closure-inside-extra-arg-call.js create mode 100644 deps/v8/test/webkit/codegen-assign-nontemporary-as-rexp-expected.txt create mode 100644 deps/v8/test/webkit/codegen-assign-nontemporary-as-rexp.js create mode 100644 deps/v8/test/webkit/codegen-jless-expected.txt create mode 100644 deps/v8/test/webkit/codegen-jless.js create mode 100644 deps/v8/test/webkit/codegen-loops-logical-nodes-expected.txt create mode 100644 deps/v8/test/webkit/codegen-loops-logical-nodes.js create mode 100644 deps/v8/test/webkit/codegen-peephole-locals-expected.txt create mode 100644 deps/v8/test/webkit/codegen-peephole-locals.js create mode 100644 deps/v8/test/webkit/codegen-temporaries-expected.txt create mode 100644 deps/v8/test/webkit/codegen-temporaries.js create mode 100644 deps/v8/test/webkit/comparison-operators-expected.txt create mode 100644 deps/v8/test/webkit/comparison-operators-greater-expected.txt create mode 100644 deps/v8/test/webkit/comparison-operators-greater.js create mode 100644 deps/v8/test/webkit/comparison-operators-less-expected.txt create mode 100644 deps/v8/test/webkit/comparison-operators-less.js create mode 100644 deps/v8/test/webkit/comparison-operators.js create mode 100644 deps/v8/test/webkit/concat-while-having-a-bad-time-expected.txt create mode 100644 deps/v8/test/webkit/concat-while-having-a-bad-time.js create mode 100644 deps/v8/test/webkit/const-without-initializer-expected.txt create mode 100644 deps/v8/test/webkit/const-without-initializer.js create mode 100644 deps/v8/test/webkit/constant-count-expected.txt create mode 100644 deps/v8/test/webkit/constant-count.js create mode 100644 deps/v8/test/webkit/constant-encoding-expected.txt create mode 100644 deps/v8/test/webkit/constant-encoding.js create mode 100644 deps/v8/test/webkit/constant-folding-expected.txt create mode 100644 deps/v8/test/webkit/constant-folding.js create mode 100644 deps/v8/test/webkit/continue-break-multiple-labels-expected.txt create mode 100644 deps/v8/test/webkit/continue-break-multiple-labels.js create mode 100644 deps/v8/test/webkit/convert-nan-to-bool-expected.txt create mode 100644 deps/v8/test/webkit/convert-nan-to-bool.js create mode 100644 deps/v8/test/webkit/cyclic-prototypes-expected.txt create mode 100644 deps/v8/test/webkit/cyclic-prototypes.js create mode 100644 deps/v8/test/webkit/date-DST-pre-1970-expected.txt create mode 100644 deps/v8/test/webkit/date-DST-pre-1970.js create mode 100644 deps/v8/test/webkit/date-constructor-expected.txt create mode 100644 deps/v8/test/webkit/date-constructor.js create mode 100644 deps/v8/test/webkit/date-daysfrom1970-overflow-expected.txt create mode 100644 deps/v8/test/webkit/date-daysfrom1970-overflow.js create mode 100644 deps/v8/test/webkit/date-parse-comments-test-expected.txt create mode 100644 deps/v8/test/webkit/date-parse-comments-test.js create mode 100644 deps/v8/test/webkit/date-set-to-nan-expected.txt create mode 100644 deps/v8/test/webkit/date-set-to-nan.js create mode 100644 deps/v8/test/webkit/date-utc-timeclip-expected.txt create mode 100644 deps/v8/test/webkit/date-utc-timeclip.js create mode 100644 deps/v8/test/webkit/debugger-expected.txt create mode 100644 deps/v8/test/webkit/debugger.js create mode 100644 deps/v8/test/webkit/declaration-in-block-expected.txt create mode 100644 deps/v8/test/webkit/declaration-in-block.js create mode 100644 deps/v8/test/webkit/delete-getters-setters-expected.txt create mode 100644 deps/v8/test/webkit/delete-getters-setters.js create mode 100644 deps/v8/test/webkit/delete-then-put-expected.txt create mode 100644 deps/v8/test/webkit/delete-then-put.js create mode 100644 deps/v8/test/webkit/dfg-abs-backwards-propagation-expected.txt create mode 100644 deps/v8/test/webkit/dfg-abs-backwards-propagation.js create mode 100644 deps/v8/test/webkit/dfg-add-not-number-expected.txt create mode 100644 deps/v8/test/webkit/dfg-add-not-number.js create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-escape-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-escape.js create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-one-block-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-one-block-osr-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-one-block-osr-exit.js create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-one-block-overwrite-arguments-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-one-block-overwrite-arguments.js create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-one-block-overwrite-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-one-block-overwrite.js create mode 100644 deps/v8/test/webkit/dfg-arguments-alias-one-block.js create mode 100644 deps/v8/test/webkit/dfg-arguments-alias.js create mode 100644 deps/v8/test/webkit/dfg-arguments-cross-code-origin-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-cross-code-origin.js create mode 100644 deps/v8/test/webkit/dfg-arguments-mixed-alias-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-mixed-alias.js create mode 100644 deps/v8/test/webkit/dfg-arguments-osr-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-osr-exit-multiple-blocks-before-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-osr-exit-multiple-blocks-before-exit.js create mode 100644 deps/v8/test/webkit/dfg-arguments-osr-exit-multiple-blocks-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-osr-exit-multiple-blocks.js create mode 100644 deps/v8/test/webkit/dfg-arguments-osr-exit.js create mode 100644 deps/v8/test/webkit/dfg-arguments-out-of-bounds-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-out-of-bounds.js create mode 100644 deps/v8/test/webkit/dfg-arguments-unexpected-escape-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arguments-unexpected-escape.js create mode 100644 deps/v8/test/webkit/dfg-arith-add-overflow-check-elimination-predicted-but-not-proven-int-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arith-add-overflow-check-elimination-predicted-but-not-proven-int.js create mode 100644 deps/v8/test/webkit/dfg-arith-add-overflow-check-elimination-tower-of-large-numbers-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arith-add-overflow-check-elimination-tower-of-large-numbers.js create mode 100644 deps/v8/test/webkit/dfg-array-dead-expected.txt create mode 100644 deps/v8/test/webkit/dfg-array-dead.js create mode 100644 deps/v8/test/webkit/dfg-array-length-dead-expected.txt create mode 100644 deps/v8/test/webkit/dfg-array-length-dead.js create mode 100644 deps/v8/test/webkit/dfg-array-pop-side-effects-expected.txt create mode 100644 deps/v8/test/webkit/dfg-array-pop-side-effects.js create mode 100644 deps/v8/test/webkit/dfg-array-pop-value-clearing-expected.txt create mode 100644 deps/v8/test/webkit/dfg-array-pop-value-clearing.js create mode 100644 deps/v8/test/webkit/dfg-arrayify-elimination-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arrayify-elimination.js create mode 100644 deps/v8/test/webkit/dfg-arrayify-when-late-prevent-extensions-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arrayify-when-late-prevent-extensions.js create mode 100644 deps/v8/test/webkit/dfg-arrayify-when-prevent-extensions-expected.txt create mode 100644 deps/v8/test/webkit/dfg-arrayify-when-prevent-extensions.js create mode 100644 deps/v8/test/webkit/dfg-bool-to-int32-reuse-expected.txt create mode 100644 deps/v8/test/webkit/dfg-bool-to-int32-reuse.js create mode 100644 deps/v8/test/webkit/dfg-branch-logical-not-peephole-around-osr-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-branch-logical-not-peephole-around-osr-exit.js create mode 100644 deps/v8/test/webkit/dfg-branch-not-fail-expected.txt create mode 100644 deps/v8/test/webkit/dfg-branch-not-fail.js create mode 100644 deps/v8/test/webkit/dfg-call-function-hit-watchpoint-expected.txt create mode 100644 deps/v8/test/webkit/dfg-call-function-hit-watchpoint.js create mode 100644 deps/v8/test/webkit/dfg-call-method-hit-watchpoint-expected.txt create mode 100644 deps/v8/test/webkit/dfg-call-method-hit-watchpoint.js create mode 100644 deps/v8/test/webkit/dfg-captured-var-get-local-expected.txt create mode 100644 deps/v8/test/webkit/dfg-captured-var-get-local.js create mode 100644 deps/v8/test/webkit/dfg-cfa-merge-with-dead-use-at-tail-expected.txt create mode 100644 deps/v8/test/webkit/dfg-cfa-merge-with-dead-use-at-tail.js create mode 100644 deps/v8/test/webkit/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function-expected.txt create mode 100644 deps/v8/test/webkit/dfg-cfa-prove-put-by-id-simple-when-storing-to-specialized-function.js create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-eliminate-set-local-type-check-then-branch-not-null-and-decrement-expected.txt create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-eliminate-set-local-type-check-then-branch-not-null-and-decrement.js create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-eliminate-set-local-type-check-then-branch-not-null-expected.txt create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-eliminate-set-local-type-check-then-branch-not-null.js create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-eliminate-set-local-type-check-then-typeof-expected.txt create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-eliminate-set-local-type-check-then-typeof.js create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-phantom-get-local-on-same-block-set-local-expected.txt create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-phantom-get-local-on-same-block-set-local.js create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-redundant-dead-get-local-expected.txt create mode 100644 deps/v8/test/webkit/dfg-cfg-simplify-redundant-dead-get-local.js create mode 100644 deps/v8/test/webkit/dfg-check-structure-elimination-for-non-cell-expected.txt create mode 100644 deps/v8/test/webkit/dfg-check-structure-elimination-for-non-cell.js create mode 100644 deps/v8/test/webkit/dfg-check-two-structures-expected.txt create mode 100644 deps/v8/test/webkit/dfg-check-two-structures.js create mode 100644 deps/v8/test/webkit/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object-expected.txt create mode 100644 deps/v8/test/webkit/dfg-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js create mode 100644 deps/v8/test/webkit/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object-expected.txt create mode 100644 deps/v8/test/webkit/dfg-compare-final-object-to-final-object-or-other-when-proven-final-object.js create mode 100644 deps/v8/test/webkit/dfg-constant-fold-first-local-read-after-block-merge-expected.txt create mode 100644 deps/v8/test/webkit/dfg-constant-fold-first-local-read-after-block-merge.js create mode 100644 deps/v8/test/webkit/dfg-constant-fold-logical-not-branch-expected.txt create mode 100644 deps/v8/test/webkit/dfg-constant-fold-logical-not-branch.js create mode 100644 deps/v8/test/webkit/dfg-constant-fold-misprediction-expected.txt create mode 100644 deps/v8/test/webkit/dfg-constant-fold-misprediction.js create mode 100644 deps/v8/test/webkit/dfg-constant-fold-uncaptured-variable-that-is-later-captured-expected.txt create mode 100644 deps/v8/test/webkit/dfg-constant-fold-uncaptured-variable-that-is-later-captured.js create mode 100644 deps/v8/test/webkit/dfg-convert-this-dom-window-expected.txt create mode 100644 deps/v8/test/webkit/dfg-convert-this-dom-window.js create mode 100644 deps/v8/test/webkit/dfg-convert-this-object-then-exit-on-other-expected.txt create mode 100644 deps/v8/test/webkit/dfg-convert-this-object-then-exit-on-other.js create mode 100644 deps/v8/test/webkit/dfg-convert-this-other-then-exit-on-object-expected.txt create mode 100644 deps/v8/test/webkit/dfg-convert-this-other-then-exit-on-object.js create mode 100644 deps/v8/test/webkit/dfg-convert-this-polymorphic-object-then-exit-on-other-expected.txt create mode 100644 deps/v8/test/webkit/dfg-convert-this-polymorphic-object-then-exit-on-other.js create mode 100644 deps/v8/test/webkit/dfg-convert-this-polymorphic-object-then-exit-on-string-expected.txt create mode 100644 deps/v8/test/webkit/dfg-convert-this-polymorphic-object-then-exit-on-string.js create mode 100644 deps/v8/test/webkit/dfg-create-inlined-arguments-in-closure-inline-expected.txt create mode 100644 deps/v8/test/webkit/dfg-create-inlined-arguments-in-closure-inline.js create mode 100644 deps/v8/test/webkit/dfg-cse-cfa-discrepancy-expected.txt create mode 100644 deps/v8/test/webkit/dfg-cse-cfa-discrepancy.js create mode 100644 deps/v8/test/webkit/dfg-cse-dead-get-scoped-var-expected.txt create mode 100644 deps/v8/test/webkit/dfg-cse-dead-get-scoped-var.js create mode 100644 deps/v8/test/webkit/dfg-dead-min-one-arg-expected.txt create mode 100644 deps/v8/test/webkit/dfg-dead-min-one-arg.js create mode 100644 deps/v8/test/webkit/dfg-dead-min-two-args-expected.txt create mode 100644 deps/v8/test/webkit/dfg-dead-min-two-args.js create mode 100644 deps/v8/test/webkit/dfg-dead-redundant-get-array-length-expected.txt create mode 100644 deps/v8/test/webkit/dfg-dead-redundant-get-array-length.js create mode 100644 deps/v8/test/webkit/dfg-dead-speculation-expected.txt create mode 100644 deps/v8/test/webkit/dfg-dead-speculation.js create mode 100644 deps/v8/test/webkit/dfg-dead-unreachable-code-with-chain-of-dead-unchecked-nodes-expected.txt create mode 100644 deps/v8/test/webkit/dfg-dead-unreachable-code-with-chain-of-dead-unchecked-nodes.js create mode 100644 deps/v8/test/webkit/dfg-dead-variable-on-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-dead-variable-on-exit.js create mode 100644 deps/v8/test/webkit/dfg-double-addition-simplify-to-int-expected.txt create mode 100644 deps/v8/test/webkit/dfg-double-addition-simplify-to-int.js create mode 100644 deps/v8/test/webkit/dfg-double-use-of-post-simplification-double-prediction-expected.txt create mode 100644 deps/v8/test/webkit/dfg-double-use-of-post-simplification-double-prediction.js create mode 100644 deps/v8/test/webkit/dfg-double-vote-fuzz-expected.txt create mode 100644 deps/v8/test/webkit/dfg-double-vote-fuzz.js create mode 100644 deps/v8/test/webkit/dfg-ensure-array-storage-on-string-expected.txt create mode 100644 deps/v8/test/webkit/dfg-ensure-array-storage-on-string.js create mode 100644 deps/v8/test/webkit/dfg-ensure-array-storage-on-window-expected.txt create mode 100644 deps/v8/test/webkit/dfg-ensure-array-storage-on-window.js create mode 100644 deps/v8/test/webkit/dfg-ensure-contiguous-on-string-expected.txt create mode 100644 deps/v8/test/webkit/dfg-ensure-contiguous-on-string.js create mode 100644 deps/v8/test/webkit/dfg-ensure-non-array-array-storage-on-window-expected.txt create mode 100644 deps/v8/test/webkit/dfg-ensure-non-array-array-storage-on-window.js create mode 100644 deps/v8/test/webkit/dfg-exception-expected.txt create mode 100644 deps/v8/test/webkit/dfg-exception.js create mode 100644 deps/v8/test/webkit/dfg-float32-array-nan-expected.txt create mode 100644 deps/v8/test/webkit/dfg-float32-array-nan.js create mode 100644 deps/v8/test/webkit/dfg-flush-get-local-expected.txt create mode 100644 deps/v8/test/webkit/dfg-flush-get-local.js create mode 100644 deps/v8/test/webkit/dfg-force-exit-then-sparse-conditional-constant-prop-in-loop-expected.txt create mode 100644 deps/v8/test/webkit/dfg-force-exit-then-sparse-conditional-constant-prop-in-loop.js create mode 100644 deps/v8/test/webkit/dfg-get-by-val-clobber-expected.txt create mode 100644 deps/v8/test/webkit/dfg-get-by-val-clobber.js create mode 100644 deps/v8/test/webkit/dfg-getter-expected.txt create mode 100644 deps/v8/test/webkit/dfg-getter-throw-expected.txt create mode 100644 deps/v8/test/webkit/dfg-getter-throw.js create mode 100644 deps/v8/test/webkit/dfg-getter.js create mode 100644 deps/v8/test/webkit/dfg-holy-put-by-val-interferes-with-get-array-length-expected.txt create mode 100644 deps/v8/test/webkit/dfg-holy-put-by-val-interferes-with-get-array-length.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-become-double-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-become-double.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-become-int32-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-become-int32.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-int32-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-int32.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-osr-exit-and-capture-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-osr-exit-and-capture.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-out-of-bounds-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-out-of-bounds.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-reset-changetype-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-reset-changetype.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-reset-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-reset.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-simple-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-simple.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-directly-from-inlined-code-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-directly-from-inlined-code.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-from-all-the-places-broken-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-from-all-the-places-broken.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-from-all-the-places-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-from-all-the-places.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-from-getter-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-from-getter.js create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-from-uninlined-code-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-arguments-use-from-uninlined-code.js create mode 100644 deps/v8/test/webkit/dfg-inline-constant-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-constant.js create mode 100644 deps/v8/test/webkit/dfg-inline-constructor-that-uses-arguments-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-constructor-that-uses-arguments.js create mode 100644 deps/v8/test/webkit/dfg-inline-early-return-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-early-return.js create mode 100644 deps/v8/test/webkit/dfg-inline-function-dot-caller-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-function-dot-caller.js create mode 100644 deps/v8/test/webkit/dfg-inline-new-array-buffer-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-new-array-buffer.js create mode 100644 deps/v8/test/webkit/dfg-inline-unused-this-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-unused-this-method-check-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inline-unused-this-method-check.js create mode 100644 deps/v8/test/webkit/dfg-inline-unused-this.js create mode 100644 deps/v8/test/webkit/dfg-inlining-reg-alloc-expected.txt create mode 100644 deps/v8/test/webkit/dfg-inlining-reg-alloc.js create mode 100644 deps/v8/test/webkit/dfg-int-overflow-in-loop-expected.txt create mode 100644 deps/v8/test/webkit/dfg-int-overflow-in-loop.js create mode 100644 deps/v8/test/webkit/dfg-int-overflow-large-constants-in-a-line-expected.txt create mode 100644 deps/v8/test/webkit/dfg-int-overflow-large-constants-in-a-line.js create mode 100644 deps/v8/test/webkit/dfg-int32-to-double-on-known-number-expected.txt create mode 100644 deps/v8/test/webkit/dfg-int32-to-double-on-known-number.js create mode 100644 deps/v8/test/webkit/dfg-int32-to-double-on-set-local-and-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-int32-to-double-on-set-local-and-exit.js create mode 100644 deps/v8/test/webkit/dfg-int32-to-double-on-set-local-and-sometimes-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-int32-to-double-on-set-local-and-sometimes-exit.js create mode 100644 deps/v8/test/webkit/dfg-integer-optimization-expected.txt create mode 100644 deps/v8/test/webkit/dfg-integer-optimization.js create mode 100644 deps/v8/test/webkit/dfg-intrinsic-osr-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-intrinsic-osr-exit.js create mode 100644 deps/v8/test/webkit/dfg-intrinsic-side-effect-assignment-osr-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-intrinsic-side-effect-assignment-osr-exit.js create mode 100644 deps/v8/test/webkit/dfg-intrinsic-unused-this-expected.txt create mode 100644 deps/v8/test/webkit/dfg-intrinsic-unused-this-method-check-expected.txt create mode 100644 deps/v8/test/webkit/dfg-intrinsic-unused-this-method-check.js create mode 100644 deps/v8/test/webkit/dfg-intrinsic-unused-this.js create mode 100644 deps/v8/test/webkit/dfg-max-backwards-propagation-expected.txt create mode 100644 deps/v8/test/webkit/dfg-max-backwards-propagation.js create mode 100644 deps/v8/test/webkit/dfg-min-backwards-propagation-expected.txt create mode 100644 deps/v8/test/webkit/dfg-min-backwards-propagation.js create mode 100644 deps/v8/test/webkit/dfg-min-max-expected.txt create mode 100644 deps/v8/test/webkit/dfg-min-max.js create mode 100644 deps/v8/test/webkit/dfg-mispredict-variable-but-prove-int-expected.txt create mode 100644 deps/v8/test/webkit/dfg-mispredict-variable-but-prove-int.js create mode 100644 deps/v8/test/webkit/dfg-mul-big-integer-with-small-integer-and-bitor-expected.txt create mode 100644 deps/v8/test/webkit/dfg-mul-big-integer-with-small-integer-and-bitor.js create mode 100644 deps/v8/test/webkit/dfg-mul-big-integer-with-small-integer-and-detect-overflow-expected.txt create mode 100644 deps/v8/test/webkit/dfg-mul-big-integer-with-small-integer-and-detect-overflow.js create mode 100644 deps/v8/test/webkit/dfg-mul-big-integer-with-small-integer-expected.txt create mode 100644 deps/v8/test/webkit/dfg-mul-big-integer-with-small-integer.js create mode 100644 deps/v8/test/webkit/dfg-mul-big-integers-expected.txt create mode 100644 deps/v8/test/webkit/dfg-mul-big-integers.js create mode 100644 deps/v8/test/webkit/dfg-multi-basic-block-structure-clobber-expected.txt create mode 100644 deps/v8/test/webkit/dfg-multi-basic-block-structure-clobber.js create mode 100644 deps/v8/test/webkit/dfg-multiply-expected.txt create mode 100644 deps/v8/test/webkit/dfg-multiply.js create mode 100644 deps/v8/test/webkit/dfg-negative-array-index-expected.txt create mode 100644 deps/v8/test/webkit/dfg-negative-array-index.js create mode 100644 deps/v8/test/webkit/dfg-obvious-constant-cfa-expected.txt create mode 100644 deps/v8/test/webkit/dfg-obvious-constant-cfa.js create mode 100644 deps/v8/test/webkit/dfg-other-branch-expected.txt create mode 100644 deps/v8/test/webkit/dfg-other-branch.js create mode 100644 deps/v8/test/webkit/dfg-patchable-get-by-id-after-watchpoint-expected.txt create mode 100644 deps/v8/test/webkit/dfg-patchable-get-by-id-after-watchpoint.js create mode 100644 deps/v8/test/webkit/dfg-peephole-compare-final-object-to-final-object-or-other-when-both-proven-final-object-expected.txt create mode 100644 deps/v8/test/webkit/dfg-peephole-compare-final-object-to-final-object-or-other-when-both-proven-final-object.js create mode 100644 deps/v8/test/webkit/dfg-peephole-compare-final-object-to-final-object-or-other-when-proven-final-object-expected.txt create mode 100644 deps/v8/test/webkit/dfg-peephole-compare-final-object-to-final-object-or-other-when-proven-final-object.js create mode 100644 deps/v8/test/webkit/dfg-phantom-base-expected.txt create mode 100644 deps/v8/test/webkit/dfg-phantom-base.js create mode 100644 deps/v8/test/webkit/dfg-phantom-get-local-expected.txt create mode 100644 deps/v8/test/webkit/dfg-phantom-get-local.js create mode 100644 deps/v8/test/webkit/dfg-post-inc-then-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-post-inc-then-exit.js create mode 100644 deps/v8/test/webkit/dfg-proto-access-inline-osr-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-proto-access-inline-osr-exit.js create mode 100644 deps/v8/test/webkit/dfg-proto-stub-watchpoint-fire-expected.txt create mode 100644 deps/v8/test/webkit/dfg-proto-stub-watchpoint-fire.js create mode 100644 deps/v8/test/webkit/dfg-proven-sqrt-backwards-propagation-expected.txt create mode 100644 deps/v8/test/webkit/dfg-proven-sqrt-backwards-propagation.js create mode 100644 deps/v8/test/webkit/dfg-put-by-id-allocate-storage-expected.txt create mode 100644 deps/v8/test/webkit/dfg-put-by-id-allocate-storage-polymorphic-expected.txt create mode 100644 deps/v8/test/webkit/dfg-put-by-id-allocate-storage-polymorphic.js create mode 100644 deps/v8/test/webkit/dfg-put-by-id-allocate-storage.js create mode 100644 deps/v8/test/webkit/dfg-put-by-id-prototype-check-expected.txt create mode 100644 deps/v8/test/webkit/dfg-put-by-id-prototype-check.js create mode 100644 deps/v8/test/webkit/dfg-put-by-id-reallocate-storage-expected.txt create mode 100644 deps/v8/test/webkit/dfg-put-by-id-reallocate-storage-polymorphic-expected.txt create mode 100644 deps/v8/test/webkit/dfg-put-by-id-reallocate-storage-polymorphic.js create mode 100644 deps/v8/test/webkit/dfg-put-by-id-reallocate-storage.js create mode 100644 deps/v8/test/webkit/dfg-put-by-val-setter-then-get-by-val-expected.txt create mode 100644 deps/v8/test/webkit/dfg-put-by-val-setter-then-get-by-val.js create mode 100644 deps/v8/test/webkit/dfg-put-scoped-var-backward-flow-expected.txt create mode 100644 deps/v8/test/webkit/dfg-put-scoped-var-backward-flow.js create mode 100644 deps/v8/test/webkit/dfg-putbyval-cfa-clobber-expected.txt create mode 100644 deps/v8/test/webkit/dfg-putbyval-cfa-clobber.js create mode 100644 deps/v8/test/webkit/dfg-redundant-load-of-captured-variable-proven-constant-expected.txt create mode 100644 deps/v8/test/webkit/dfg-redundant-load-of-captured-variable-proven-constant.js create mode 100644 deps/v8/test/webkit/dfg-resolve-global-polymorphic-non-dictionary-expected.txt create mode 100644 deps/v8/test/webkit/dfg-resolve-global-polymorphic-non-dictionary.js create mode 100644 deps/v8/test/webkit/dfg-resolve-global-specific-dictionary-expected.txt create mode 100644 deps/v8/test/webkit/dfg-resolve-global-specific-dictionary.js create mode 100644 deps/v8/test/webkit/dfg-rshift-by-zero-eliminate-valuetoint32-expected.txt create mode 100644 deps/v8/test/webkit/dfg-rshift-by-zero-eliminate-valuetoint32.js create mode 100644 deps/v8/test/webkit/dfg-side-effect-assignment-osr-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-side-effect-assignment-osr-exit.js create mode 100644 deps/v8/test/webkit/dfg-sqrt-backwards-propagation-expected.txt create mode 100644 deps/v8/test/webkit/dfg-sqrt-backwards-propagation.js create mode 100644 deps/v8/test/webkit/dfg-store-unexpected-value-into-argument-and-osr-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-store-unexpected-value-into-argument-and-osr-exit.js create mode 100644 deps/v8/test/webkit/dfg-string-stricteq-expected.txt create mode 100644 deps/v8/test/webkit/dfg-string-stricteq.js create mode 100644 deps/v8/test/webkit/dfg-tear-off-arguments-not-activation-expected.txt create mode 100644 deps/v8/test/webkit/dfg-tear-off-arguments-not-activation.js create mode 100644 deps/v8/test/webkit/dfg-tear-off-function-dot-arguments-expected.txt create mode 100644 deps/v8/test/webkit/dfg-tear-off-function-dot-arguments.js create mode 100644 deps/v8/test/webkit/dfg-to-string-bad-toString-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-bad-toString.js create mode 100644 deps/v8/test/webkit/dfg-to-string-bad-valueOf-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-bad-valueOf.js create mode 100644 deps/v8/test/webkit/dfg-to-string-int-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-int-or-string-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-int-or-string.js create mode 100644 deps/v8/test/webkit/dfg-to-string-int.js create mode 100644 deps/v8/test/webkit/dfg-to-string-on-cell-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-on-cell.js create mode 100644 deps/v8/test/webkit/dfg-to-string-on-value-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-on-value.js create mode 100644 deps/v8/test/webkit/dfg-to-string-side-effect-clobbers-toString-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-side-effect-clobbers-toString.js create mode 100644 deps/v8/test/webkit/dfg-to-string-side-effect-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-side-effect.js create mode 100644 deps/v8/test/webkit/dfg-to-string-toString-becomes-bad-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-toString-becomes-bad-with-check-structure-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-toString-becomes-bad-with-check-structure.js create mode 100644 deps/v8/test/webkit/dfg-to-string-toString-becomes-bad-with-dictionary-string-prototype-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-toString-becomes-bad-with-dictionary-string-prototype.js create mode 100644 deps/v8/test/webkit/dfg-to-string-toString-becomes-bad.js create mode 100644 deps/v8/test/webkit/dfg-to-string-toString-in-string-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-toString-in-string.js create mode 100644 deps/v8/test/webkit/dfg-to-string-valueOf-in-string-expected.txt create mode 100644 deps/v8/test/webkit/dfg-to-string-valueOf-in-string.js create mode 100644 deps/v8/test/webkit/dfg-uint32-to-number-expected.txt create mode 100644 deps/v8/test/webkit/dfg-uint32-to-number-in-middle-of-copy-propagation-expected.txt create mode 100644 deps/v8/test/webkit/dfg-uint32-to-number-in-middle-of-copy-propagation.js create mode 100644 deps/v8/test/webkit/dfg-uint32-to-number-on-captured-variable-expected.txt create mode 100644 deps/v8/test/webkit/dfg-uint32-to-number-on-captured-variable.js create mode 100644 deps/v8/test/webkit/dfg-uint32-to-number-skip-then-exit-expected.txt create mode 100644 deps/v8/test/webkit/dfg-uint32-to-number-skip-then-exit.js create mode 100644 deps/v8/test/webkit/dfg-uint32-to-number.js create mode 100644 deps/v8/test/webkit/dfg-uint32array-overflow-constant-expected.txt create mode 100644 deps/v8/test/webkit/dfg-uint32array-overflow-constant.js create mode 100644 deps/v8/test/webkit/dfg-uint8clampedarray-out-of-bounds-put-by-val-alias-expected.txt create mode 100644 deps/v8/test/webkit/dfg-uint8clampedarray-out-of-bounds-put-by-val-alias.js create mode 100644 deps/v8/test/webkit/dfg-value-to-int32-with-side-effect-expected.txt create mode 100644 deps/v8/test/webkit/dfg-value-to-int32-with-side-effect.js create mode 100644 deps/v8/test/webkit/dfg-weak-js-constant-silent-fill-expected.txt create mode 100644 deps/v8/test/webkit/dfg-weak-js-constant-silent-fill.js create mode 100644 deps/v8/test/webkit/dictionary-no-cache-expected.txt create mode 100644 deps/v8/test/webkit/dictionary-no-cache.js create mode 100644 deps/v8/test/webkit/dictionary-prototype-caching-expected.txt create mode 100644 deps/v8/test/webkit/dictionary-prototype-caching.js create mode 100644 deps/v8/test/webkit/do-while-semicolon-expected.txt create mode 100644 deps/v8/test/webkit/do-while-semicolon.js create mode 100644 deps/v8/test/webkit/duplicate-param-crash-expected.txt create mode 100644 deps/v8/test/webkit/duplicate-param-crash.js create mode 100644 deps/v8/test/webkit/duplicate-param-gc-crash-expected.txt create mode 100644 deps/v8/test/webkit/duplicate-param-gc-crash.js create mode 100644 deps/v8/test/webkit/enter-dictionary-indexing-mode-with-blank-indexing-type-expected.txt create mode 100644 deps/v8/test/webkit/enter-dictionary-indexing-mode-with-blank-indexing-type.js create mode 100644 deps/v8/test/webkit/equality-expected.txt create mode 100644 deps/v8/test/webkit/equality.js create mode 100644 deps/v8/test/webkit/eval-and-with-expected.txt create mode 100644 deps/v8/test/webkit/eval-and-with.js create mode 100644 deps/v8/test/webkit/eval-cache-crash-expected.txt create mode 100644 deps/v8/test/webkit/eval-cache-crash.js create mode 100644 deps/v8/test/webkit/eval-throw-return-expected.txt create mode 100644 deps/v8/test/webkit/eval-throw-return.js create mode 100644 deps/v8/test/webkit/eval-var-decl-expected.txt create mode 100644 deps/v8/test/webkit/eval-var-decl.js create mode 100644 deps/v8/test/webkit/exception-for-nonobject-expected.txt create mode 100644 deps/v8/test/webkit/exception-for-nonobject.js create mode 100644 deps/v8/test/webkit/exception-propagate-from-dfg-to-llint-expected.txt create mode 100644 deps/v8/test/webkit/exception-propagate-from-dfg-to-llint.js create mode 100644 deps/v8/test/webkit/exception-try-finally-scope-error-expected.txt create mode 100644 deps/v8/test/webkit/exception-try-finally-scope-error.js create mode 100644 deps/v8/test/webkit/exception-with-handler-inside-eval-with-dynamic-scope-expected.txt create mode 100644 deps/v8/test/webkit/exception-with-handler-inside-eval-with-dynamic-scope.js create mode 100644 deps/v8/test/webkit/finally-codegen-failure-expected.txt create mode 100644 deps/v8/test/webkit/finally-codegen-failure.js create mode 100644 deps/v8/test/webkit/flatten-dictionary-structure-from-which-all-properties-were-deleted-expected.txt create mode 100644 deps/v8/test/webkit/flatten-dictionary-structure-from-which-all-properties-were-deleted.js create mode 100644 deps/v8/test/webkit/for-in-avoid-duplicates-expected.txt create mode 100644 deps/v8/test/webkit/for-in-avoid-duplicates.js create mode 100644 deps/v8/test/webkit/for-in-cached-expected.txt create mode 100644 deps/v8/test/webkit/for-in-cached.js create mode 100644 deps/v8/test/webkit/for-in-exeception-expected.txt create mode 100644 deps/v8/test/webkit/for-in-exeception.js create mode 100644 deps/v8/test/webkit/for-in-to-text-expected.txt create mode 100644 deps/v8/test/webkit/for-in-to-text.js create mode 100644 deps/v8/test/webkit/for-in-var-scope-expected.txt create mode 100644 deps/v8/test/webkit/for-in-var-scope.js create mode 100644 deps/v8/test/webkit/function-apply-aliased-expected.txt create mode 100644 deps/v8/test/webkit/function-apply-aliased.js create mode 100644 deps/v8/test/webkit/function-call-aliased-expected.txt create mode 100644 deps/v8/test/webkit/function-call-aliased.js create mode 100644 deps/v8/test/webkit/function-call-register-allocation-expected.txt create mode 100644 deps/v8/test/webkit/function-call-register-allocation.js create mode 100644 deps/v8/test/webkit/function-constructor-newline-after-brace-expected.txt create mode 100644 deps/v8/test/webkit/function-constructor-newline-after-brace.js create mode 100644 deps/v8/test/webkit/function-constructor-single-line-comment-expected.txt create mode 100644 deps/v8/test/webkit/function-constructor-single-line-comment.js create mode 100644 deps/v8/test/webkit/function-declaration-expected.txt create mode 100644 deps/v8/test/webkit/function-declaration-statement-expected.txt create mode 100644 deps/v8/test/webkit/function-declaration-statement.js create mode 100644 deps/v8/test/webkit/function-declaration.js create mode 100644 deps/v8/test/webkit/function-declarations-in-switch-statement-expected.txt create mode 100644 deps/v8/test/webkit/function-declarations-in-switch-statement.js create mode 100644 deps/v8/test/webkit/function-dot-apply-replace-base-expected.txt create mode 100644 deps/v8/test/webkit/function-dot-apply-replace-base.js create mode 100644 deps/v8/test/webkit/function-dot-length-read-only-expected.txt create mode 100644 deps/v8/test/webkit/function-dot-length-read-only.js create mode 100644 deps/v8/test/webkit/function-prototype-descriptor-expected.txt create mode 100644 deps/v8/test/webkit/function-prototype-descriptor.js create mode 100644 deps/v8/test/webkit/function-toString-object-literals-expected.txt create mode 100644 deps/v8/test/webkit/function-toString-object-literals.js create mode 100644 deps/v8/test/webkit/get-by-pname-expected.txt create mode 100644 deps/v8/test/webkit/get-by-pname-non-final-object-expected.txt create mode 100644 deps/v8/test/webkit/get-by-pname-non-final-object.js create mode 100644 deps/v8/test/webkit/get-by-pname-that-looks-like-a-patchable-get-by-val-expected.txt create mode 100644 deps/v8/test/webkit/get-by-pname-that-looks-like-a-patchable-get-by-val.js create mode 100644 deps/v8/test/webkit/get-by-pname.js create mode 100644 deps/v8/test/webkit/getter-setter-gc-expected.txt create mode 100644 deps/v8/test/webkit/getter-setter-gc.js create mode 100644 deps/v8/test/webkit/global-resolve-through-eval-expected.txt create mode 100644 deps/v8/test/webkit/global-resolve-through-eval.js create mode 100644 deps/v8/test/webkit/gmail-re-re-expected.txt create mode 100644 deps/v8/test/webkit/gmail-re-re.js create mode 100644 deps/v8/test/webkit/has-own-property-expected.txt create mode 100644 deps/v8/test/webkit/has-own-property.js create mode 100644 deps/v8/test/webkit/ignored-result-null-comparison-crash-expected.txt create mode 100644 deps/v8/test/webkit/ignored-result-null-comparison-crash.js create mode 100644 deps/v8/test/webkit/ignored-result-ref-crash-expected.txt create mode 100644 deps/v8/test/webkit/ignored-result-ref-crash.js create mode 100644 deps/v8/test/webkit/indexed-setter-on-global-object-expected.txt create mode 100644 deps/v8/test/webkit/indexed-setter-on-global-object.js create mode 100644 deps/v8/test/webkit/instance-of-immediates-expected.txt create mode 100644 deps/v8/test/webkit/instance-of-immediates.js create mode 100644 deps/v8/test/webkit/instanceof-operator-expected.txt create mode 100644 deps/v8/test/webkit/instanceof-operator.js create mode 100644 deps/v8/test/webkit/integer-extremes-expected.txt create mode 100644 deps/v8/test/webkit/integer-extremes.js create mode 100644 deps/v8/test/webkit/interpreter-no-activation-expected.txt create mode 100644 deps/v8/test/webkit/interpreter-no-activation.js create mode 100644 deps/v8/test/webkit/invalid-callframe-during-unwind-expected.txt create mode 100644 deps/v8/test/webkit/invalid-callframe-during-unwind.js create mode 100644 deps/v8/test/webkit/isPrototypeOf-expected.txt create mode 100644 deps/v8/test/webkit/isPrototypeOf.js create mode 100644 deps/v8/test/webkit/jit-float32-array-nan-expected.txt create mode 100644 deps/v8/test/webkit/jit-float32-array-nan.js create mode 100644 deps/v8/test/webkit/js-continue-break-restrictions-expected.txt create mode 100644 deps/v8/test/webkit/js-continue-break-restrictions.js create mode 100644 deps/v8/test/webkit/keywords-and-reserved_words-expected.txt create mode 100644 deps/v8/test/webkit/keywords-and-reserved_words.js create mode 100644 deps/v8/test/webkit/legitimately-captured-argument-expected.txt create mode 100644 deps/v8/test/webkit/legitimately-captured-argument.js create mode 100644 deps/v8/test/webkit/logical-or-jless-expected.txt create mode 100644 deps/v8/test/webkit/logical-or-jless.js create mode 100644 deps/v8/test/webkit/math-expected.txt create mode 100644 deps/v8/test/webkit/math-transforms-expected.txt create mode 100644 deps/v8/test/webkit/math-transforms.js create mode 100644 deps/v8/test/webkit/math.js create mode 100644 deps/v8/test/webkit/mod-by-zero-expected.txt create mode 100644 deps/v8/test/webkit/mod-by-zero.js create mode 100644 deps/v8/test/webkit/mod-crash-expected.txt create mode 100644 deps/v8/test/webkit/mod-crash.js create mode 100644 deps/v8/test/webkit/multiline-comment-newline-expected.txt create mode 100644 deps/v8/test/webkit/multiline-comment-newline.js create mode 100644 deps/v8/test/webkit/named-function-expression-expected.txt create mode 100644 deps/v8/test/webkit/named-function-expression.js create mode 100644 deps/v8/test/webkit/nested-functions-expected.txt create mode 100644 deps/v8/test/webkit/nested-functions.js create mode 100644 deps/v8/test/webkit/new-array-double-with-holes-expected.txt create mode 100644 deps/v8/test/webkit/new-array-double-with-holes.js create mode 100644 deps/v8/test/webkit/no-semi-insertion-at-end-of-script-expected.txt create mode 100644 deps/v8/test/webkit/no-semi-insertion-at-end-of-script.js create mode 100644 deps/v8/test/webkit/number-cell-reuse-expected.txt create mode 100644 deps/v8/test/webkit/number-cell-reuse.js create mode 100644 deps/v8/test/webkit/number-parsing-crash-expected.txt create mode 100644 deps/v8/test/webkit/number-parsing-crash.js create mode 100644 deps/v8/test/webkit/number-toExponential-expected.txt create mode 100644 deps/v8/test/webkit/number-toExponential.js create mode 100644 deps/v8/test/webkit/numeric-compare-expected.txt create mode 100644 deps/v8/test/webkit/numeric-compare.js create mode 100644 deps/v8/test/webkit/numeric-conversion-expected.txt create mode 100644 deps/v8/test/webkit/numeric-conversion.js create mode 100644 deps/v8/test/webkit/object-literal-direct-put-expected.txt create mode 100644 deps/v8/test/webkit/object-literal-direct-put.js create mode 100644 deps/v8/test/webkit/object-literal-syntax-expected.txt create mode 100644 deps/v8/test/webkit/object-literal-syntax.js create mode 100644 deps/v8/test/webkit/order-of-operations-expected.txt create mode 100644 deps/v8/test/webkit/order-of-operations.js create mode 100644 deps/v8/test/webkit/parse-nan-expected.txt create mode 100644 deps/v8/test/webkit/parse-nan.js create mode 100644 deps/v8/test/webkit/parseFloat-expected.txt create mode 100644 deps/v8/test/webkit/parseFloat.js create mode 100644 deps/v8/test/webkit/parseInt-expected.txt create mode 100644 deps/v8/test/webkit/parseInt.js create mode 100644 deps/v8/test/webkit/parser-high-byte-character-expected.txt create mode 100644 deps/v8/test/webkit/parser-high-byte-character.js create mode 100644 deps/v8/test/webkit/parser-xml-close-comment-expected.txt create mode 100644 deps/v8/test/webkit/parser-xml-close-comment.js create mode 100644 deps/v8/test/webkit/polymorphic-construct-expected.txt create mode 100644 deps/v8/test/webkit/polymorphic-construct.js create mode 100644 deps/v8/test/webkit/pretty-print-expected.txt create mode 100644 deps/v8/test/webkit/pretty-print.js create mode 100644 deps/v8/test/webkit/preventExtensions-expected.txt create mode 100644 deps/v8/test/webkit/preventExtensions.js create mode 100644 deps/v8/test/webkit/primitive-method-this-expected.txt create mode 100644 deps/v8/test/webkit/primitive-method-this.js create mode 100644 deps/v8/test/webkit/property-getters-and-setters-expected.txt create mode 100644 deps/v8/test/webkit/property-getters-and-setters.js create mode 100644 deps/v8/test/webkit/property-iteration-expected.txt create mode 100644 deps/v8/test/webkit/property-iteration.js create mode 100644 deps/v8/test/webkit/propertyIsEnumerable-expected.txt create mode 100644 deps/v8/test/webkit/propertyIsEnumerable.js create mode 100644 deps/v8/test/webkit/prototypes-expected.txt create mode 100644 deps/v8/test/webkit/prototypes.js create mode 100644 deps/v8/test/webkit/reentrant-caching-expected.txt create mode 100644 deps/v8/test/webkit/reentrant-caching.js create mode 100644 deps/v8/test/webkit/reentrant-call-unwind-expected.txt create mode 100644 deps/v8/test/webkit/reentrant-call-unwind.js create mode 100644 deps/v8/test/webkit/regexp-alternatives-expected.txt create mode 100644 deps/v8/test/webkit/regexp-alternatives.js create mode 100644 deps/v8/test/webkit/regexp-backreferences-expected.txt create mode 100644 deps/v8/test/webkit/regexp-backreferences.js create mode 100644 deps/v8/test/webkit/regexp-char-insensitive-expected.txt create mode 100644 deps/v8/test/webkit/regexp-char-insensitive.js create mode 100644 deps/v8/test/webkit/regexp-character-match-out-of-order-expected.txt create mode 100644 deps/v8/test/webkit/regexp-character-match-out-of-order.js create mode 100644 deps/v8/test/webkit/regexp-compile-crash-expected.txt create mode 100644 deps/v8/test/webkit/regexp-compile-crash.js create mode 100644 deps/v8/test/webkit/regexp-compile-expected.txt create mode 100644 deps/v8/test/webkit/regexp-compile.js create mode 100644 deps/v8/test/webkit/regexp-divequal-expected.txt create mode 100644 deps/v8/test/webkit/regexp-divequal.js create mode 100644 deps/v8/test/webkit/regexp-extended-characters-match-expected.txt create mode 100644 deps/v8/test/webkit/regexp-extended-characters-match.js create mode 100644 deps/v8/test/webkit/regexp-extended-characters-more-expected.txt create mode 100644 deps/v8/test/webkit/regexp-extended-characters-more.js create mode 100644 deps/v8/test/webkit/regexp-find-first-asserted-expected.txt create mode 100644 deps/v8/test/webkit/regexp-find-first-asserted.js create mode 100644 deps/v8/test/webkit/regexp-in-and-foreach-handling-expected.txt create mode 100644 deps/v8/test/webkit/regexp-in-and-foreach-handling.js create mode 100644 deps/v8/test/webkit/regexp-literals-arent-constants-expected.txt create mode 100644 deps/v8/test/webkit/regexp-literals-arent-constants.js create mode 100644 deps/v8/test/webkit/regexp-many-brackets-expected.txt create mode 100644 deps/v8/test/webkit/regexp-many-brackets.js create mode 100644 deps/v8/test/webkit/regexp-negative-special-characters-expected.txt create mode 100644 deps/v8/test/webkit/regexp-negative-special-characters.js create mode 100644 deps/v8/test/webkit/regexp-non-bmp-expected.txt create mode 100644 deps/v8/test/webkit/regexp-non-bmp.js create mode 100644 deps/v8/test/webkit/regexp-non-character-expected.txt create mode 100644 deps/v8/test/webkit/regexp-non-character.js create mode 100644 deps/v8/test/webkit/regexp-norepeat-expected.txt create mode 100644 deps/v8/test/webkit/regexp-norepeat.js create mode 100644 deps/v8/test/webkit/regexp-range-bound-ffff-expected.txt create mode 100644 deps/v8/test/webkit/regexp-range-bound-ffff.js create mode 100644 deps/v8/test/webkit/regexp-zero-length-alternatives-expected.txt create mode 100644 deps/v8/test/webkit/regexp-zero-length-alternatives.js create mode 100644 deps/v8/test/webkit/registerCachingAcrossBranchTargets-expected.txt create mode 100644 deps/v8/test/webkit/registerCachingAcrossBranchTargets.js create mode 100644 deps/v8/test/webkit/rehash-assign-expected.txt create mode 100644 deps/v8/test/webkit/rehash-assign.js create mode 100644 deps/v8/test/webkit/reserved-words-expected.txt create mode 100644 deps/v8/test/webkit/reserved-words.js create mode 100644 deps/v8/test/webkit/resize-array-assign-expected.txt create mode 100644 deps/v8/test/webkit/resize-array-assign.js create mode 100644 deps/v8/test/webkit/resolve-arguments-from-scope-expected.txt create mode 100644 deps/v8/test/webkit/resolve-arguments-from-scope.js create mode 100644 deps/v8/test/webkit/resources/standalone-post.js create mode 100644 deps/v8/test/webkit/resources/standalone-pre.js create mode 100644 deps/v8/test/webkit/slash-lineterminator-parse-expected.txt create mode 100644 deps/v8/test/webkit/slash-lineterminator-parse.js create mode 100644 deps/v8/test/webkit/sort-large-array-expected.txt create mode 100644 deps/v8/test/webkit/sort-large-array.js create mode 100644 deps/v8/test/webkit/sort-no-jit-code-crash-expected.txt create mode 100644 deps/v8/test/webkit/sort-no-jit-code-crash.js create mode 100644 deps/v8/test/webkit/sort-non-numbers-expected.txt create mode 100644 deps/v8/test/webkit/sort-non-numbers.js create mode 100644 deps/v8/test/webkit/sort-randomly-expected.txt create mode 100644 deps/v8/test/webkit/sort-randomly.js create mode 100644 deps/v8/test/webkit/sort-with-side-effecting-comparisons-expected.txt create mode 100644 deps/v8/test/webkit/sort-with-side-effecting-comparisons.js create mode 100644 deps/v8/test/webkit/sparse-array-expected.txt create mode 100644 deps/v8/test/webkit/sparse-array.js create mode 100644 deps/v8/test/webkit/stack-overflow-catch-expected.txt create mode 100644 deps/v8/test/webkit/stack-overflow-catch.js create mode 100644 deps/v8/test/webkit/stack-unwinding-expected.txt create mode 100644 deps/v8/test/webkit/stack-unwinding.js create mode 100644 deps/v8/test/webkit/statement-list-register-crash-expected.txt create mode 100644 deps/v8/test/webkit/statement-list-register-crash.js create mode 100644 deps/v8/test/webkit/static-scope-object-expected.txt create mode 100644 deps/v8/test/webkit/static-scope-object.js create mode 100644 deps/v8/test/webkit/strict-callback-this-expected.txt create mode 100644 deps/v8/test/webkit/strict-callback-this.js create mode 100644 deps/v8/test/webkit/strict-throw-type-error-expected.txt create mode 100644 deps/v8/test/webkit/strict-throw-type-error.js create mode 100644 deps/v8/test/webkit/string-from-char-code-expected.txt create mode 100644 deps/v8/test/webkit/string-from-char-code.js create mode 100644 deps/v8/test/webkit/string-index-overflow-expected.txt create mode 100644 deps/v8/test/webkit/string-index-overflow.js create mode 100644 deps/v8/test/webkit/string-property-deletion-expected.txt create mode 100644 deps/v8/test/webkit/string-property-deletion.js create mode 100644 deps/v8/test/webkit/string-property-iteration-expected.txt create mode 100644 deps/v8/test/webkit/string-property-iteration.js create mode 100644 deps/v8/test/webkit/string-slice-abnormal-values-expected.txt create mode 100644 deps/v8/test/webkit/string-slice-abnormal-values.js create mode 100644 deps/v8/test/webkit/string-sort-expected.txt create mode 100644 deps/v8/test/webkit/string-sort.js create mode 100644 deps/v8/test/webkit/string-substr-expected.txt create mode 100644 deps/v8/test/webkit/string-substr.js create mode 100644 deps/v8/test/webkit/string-trim-expected.txt create mode 100644 deps/v8/test/webkit/string-trim.js create mode 100644 deps/v8/test/webkit/string_replace-expected.txt create mode 100644 deps/v8/test/webkit/string_replace.js create mode 100644 deps/v8/test/webkit/testcfg.py create mode 100644 deps/v8/test/webkit/this-non-object-proto-expected.txt create mode 100644 deps/v8/test/webkit/this-non-object-proto.js create mode 100644 deps/v8/test/webkit/throw-from-finally-expected.txt create mode 100644 deps/v8/test/webkit/throw-from-finally.js create mode 100644 deps/v8/test/webkit/toString-elision-trailing-comma-expected.txt create mode 100644 deps/v8/test/webkit/toString-elision-trailing-comma.js create mode 100644 deps/v8/test/webkit/toString-for-var-decl-expected.txt create mode 100644 deps/v8/test/webkit/toString-for-var-decl.js create mode 100644 deps/v8/test/webkit/toString-number-dot-expr-expected.txt create mode 100644 deps/v8/test/webkit/toString-number-dot-expr.js create mode 100644 deps/v8/test/webkit/toString-prefix-postfix-preserve-parens-expected.txt create mode 100644 deps/v8/test/webkit/toString-prefix-postfix-preserve-parens.js create mode 100644 deps/v8/test/webkit/toString-recursion-expected.txt create mode 100644 deps/v8/test/webkit/toString-recursion.js create mode 100644 deps/v8/test/webkit/tostring-exception-in-property-access-expected.txt create mode 100644 deps/v8/test/webkit/tostring-exception-in-property-access.js create mode 100644 deps/v8/test/webkit/try-catch-try-try-catch-try-finally-return-catch-finally-expected.txt create mode 100644 deps/v8/test/webkit/try-catch-try-try-catch-try-finally-return-catch-finally.js create mode 100644 deps/v8/test/webkit/try-try-return-finally-finally-expected.txt create mode 100644 deps/v8/test/webkit/try-try-return-finally-finally.js create mode 100644 deps/v8/test/webkit/typeof-codegen-crash-expected.txt create mode 100644 deps/v8/test/webkit/typeof-codegen-crash.js create mode 100644 deps/v8/test/webkit/typeof-constant-string-expected.txt create mode 100644 deps/v8/test/webkit/typeof-constant-string.js create mode 100644 deps/v8/test/webkit/unexpected-constant-crash-expected.txt create mode 100644 deps/v8/test/webkit/unexpected-constant-crash.js create mode 100644 deps/v8/test/webkit/unmatching-argument-count-expected.txt create mode 100644 deps/v8/test/webkit/unmatching-argument-count.js create mode 100644 deps/v8/test/webkit/var-declarations-zero-width-expected.txt create mode 100644 deps/v8/test/webkit/var-declarations-zero-width.js create mode 100644 deps/v8/test/webkit/var-shadows-arg-crash-expected.txt create mode 100644 deps/v8/test/webkit/var-shadows-arg-crash.js create mode 100644 deps/v8/test/webkit/var-shadows-arg-gc-crash-expected.txt create mode 100644 deps/v8/test/webkit/var-shadows-arg-gc-crash.js create mode 100644 deps/v8/test/webkit/vardecl-blocks-init-expected.txt create mode 100644 deps/v8/test/webkit/vardecl-blocks-init.js create mode 100644 deps/v8/test/webkit/webkit.status create mode 100755 deps/v8/tools/generate_shim_headers/generate_shim_headers.py create mode 100644 deps/v8/tools/perf_tests/chromium_revision delete mode 100644 deps/v8/tools/plot-timer-events.js create mode 100644 deps/v8/tools/profviz/composer.js create mode 100644 deps/v8/tools/profviz/gnuplot-4.6.3-emscripten.js create mode 100644 deps/v8/tools/profviz/profviz.css create mode 100644 deps/v8/tools/profviz/profviz.html create mode 100644 deps/v8/tools/profviz/profviz.js create mode 100644 deps/v8/tools/profviz/stdio.js create mode 100644 deps/v8/tools/profviz/worker.js create mode 100755 deps/v8/tools/v8-info.sh create mode 100755 deps/v8/tools/v8-rolls.sh diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index a04811d3c1..656c4b353d 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -40,6 +40,7 @@ shell_g /test/test262/data /test/test262/test262-* /test/test262/test262.status2 +/test/webkit/webkit.status2 /third_party /tools/jsfunfuzz /tools/jsfunfuzz.zip diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 6117e56b76..3c113b2f75 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,92 @@ +2013-07-05: Version 3.20.2 + + Remove deprecated heap profiler methods from V8 public API + + Mark i18n functions as native and set proper names + (issue 2745) + + Correctly report stack trace when current function is FunctionApply + builtin (Chromium issue 252097) + + Enable GDBJIT interface for standalone by default. + + Fix debuggersupport=off build. (issue 2754) + + Introduce -m64 flag for making x64 when the default gcc compiler is for + X32 + + Performance and stability improvements on all platforms. + + +2013-07-02: Version 3.20.1 + + Implemented WeakMap.prototype.clear function. (issue 2753) + + Ensure CheckInitialized is present independent of define. + (Chromium issue 255779) + + Performance and stability improvements on all platforms. + + +2013-06-28: Version 3.20.0 + + Migrated several tests from blink to V8 repository. + + Allowed users of the V8 API to distinguish between unset and undefined + HiddenValues (issue 2746). + + Deprecated old style callbacks in the V8 API. + + Turned on parallel recompilation. + + Performance and stability improvements on all platforms. + + +2013-06-18: Version 3.19.18 + + Fixed read-only attribute of Function.length in strict mode. + (issue 2705) + + Fixed Runtime_SetProperty to properly handle OOM failures + (Chromium issue 249873) + + Emit deprecated check for constant function transitions. + (Chromium issue 250609) + + Made MathFloorOfDiv optimization trigger more often + (Issue 2205) + + Make more GCs in idle notification handler. + (Chromium issue 241815) + + Increased default type info threshold. + (Issue 2730) + + Performance and stability improvements on all platforms. + + +2013-06-14: Version 3.19.16 + + Performance and stability improvements on all platforms. + + +2013-06-13: Version 3.19.15 + + Performance and stability improvements on all platforms. + + +2013-06-13: Version 3.19.14 + + Fixed crashes when calling new Array(a) with a single argument that + could result in creating a holey array with a packed elements kind. + (Chromium issue 245480) + + Fixed issues in parallel compilation. + (Chromium issue 248076) + + Performance and stability improvements on all platforms. + + 2013-06-11: Version 3.19.13 Performance and stability improvements on all platforms. diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 8d66960f2d..4f1a5cfb26 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -5,7 +5,10 @@ deps = { # Remember to keep the revision in sync with the Makefile. "v8/build/gyp": - "http://gyp.googlecode.com/svn/trunk@1501", + "http://gyp.googlecode.com/svn/trunk@1656", + + "v8/third_party/icu": + "https://src.chromium.org/chrome/trunk/deps/third_party/icu46@205936", } deps_os = { diff --git a/deps/v8/Makefile b/deps/v8/Makefile index a46b333f1e..16c004f32d 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -35,7 +35,7 @@ GYPFLAGS ?= TESTFLAGS ?= ANDROID_NDK_ROOT ?= ANDROID_TOOLCHAIN ?= -ANDROID_V8 ?= /data/local/v8 +ANDROID_V8 ?= /data/local/tmp/v8 NACL_SDK_ROOT ?= # Special build flags. Use them like this: "make library=shared" @@ -80,10 +80,13 @@ endif ifeq ($(extrachecks), off) GYPFLAGS += -Dv8_enable_extra_checks=0 endif -# gdbjit=on +# gdbjit=on/off ifeq ($(gdbjit), on) GYPFLAGS += -Dv8_enable_gdbjit=1 endif +ifeq ($(gdbjit), off) + GYPFLAGS += -Dv8_enable_gdbjit=0 +endif # vtunejit=on ifeq ($(vtunejit), on) GYPFLAGS += -Dv8_enable_vtunejit=1 @@ -116,6 +119,10 @@ endif ifeq ($(regexp), interpreted) GYPFLAGS += -Dv8_interpreted_regexp=1 endif +# i18nsupport=on +ifeq ($(i18nsupport), on) + GYPFLAGS += -Dv8_enable_i18n_support=1 +endif # arm specific flags. # armv7=false/true ifeq ($(armv7), false) @@ -391,4 +398,7 @@ $(ENVFILE).new: # Remember to keep these in sync with the DEPS file. dependencies: svn checkout --force http://gyp.googlecode.com/svn/trunk build/gyp \ - --revision 1501 + --revision 1656 + svn checkout --force \ + https://src.chromium.org/chrome/trunk/deps/third_party/icu46 \ + third_party/icu --revision 205936 diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index 0333d15184..6fe40e21e3 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -1,3 +1,4 @@ +bmeurer@chromium.org danno@chromium.org dslomov@chromium.org hpayer@chromium.org diff --git a/deps/v8/build/android.gypi b/deps/v8/build/android.gypi index 8400ab113a..ca097255bb 100644 --- a/deps/v8/build/android.gypi +++ b/deps/v8/build/android.gypi @@ -75,15 +75,8 @@ ], 'configurations': { 'Release': { - 'cflags!': [ - '-O2', - '-Os', - ], 'cflags': [ - '-fdata-sections', - '-ffunction-sections', '-fomit-frame-pointer', - '-O3', ], }, # Release }, # configurations diff --git a/deps/v8/build/common.gypi b/deps/v8/build/common.gypi index c7849e26af..dbb33a867b 100644 --- a/deps/v8/build/common.gypi +++ b/deps/v8/build/common.gypi @@ -104,6 +104,10 @@ # Interpreted regexp engine exists as platform-independent alternative # based where the regular expression is compiled to a bytecode. 'v8_interpreted_regexp%': 0, + + # Enable ECMAScript Internationalization API. Enabling this feature will + # add a dependency on the ICU library. + 'v8_enable_i18n_support%': 0, }, 'target_defaults': { 'conditions': [ @@ -125,6 +129,9 @@ ['v8_interpreted_regexp==1', { 'defines': ['V8_INTERPRETED_REGEXP',], }], + ['v8_enable_i18n_support==1', { + 'defines': ['V8_I18N_SUPPORT',], + }], ['v8_target_arch=="arm"', { 'defines': [ 'V8_TARGET_ARCH_ARM', @@ -452,6 +459,26 @@ }], ], }], + ['(OS=="linux") and (v8_target_arch=="x64")', { + # Check whether the host compiler and target compiler support the + # '-m64' option and set it if so. + 'target_conditions': [ + ['_toolset=="host"', { + 'variables': { + 'm64flag': ' /dev/null 2>&1) && echo "-m64" || true)', + }, + 'cflags': [ '<(m64flag)' ], + 'ldflags': [ '<(m64flag)' ], + }], + ['_toolset=="target"', { + 'variables': { + 'm64flag': ' /dev/null 2>&1) && echo "-m64" || true)', + }, + 'cflags': [ '<(m64flag)' ], + 'ldflags': [ '<(m64flag)' ], + }] + ], + }], ['OS=="freebsd" or OS=="openbsd"', { 'cflags': [ '-I/usr/local/include' ], }], @@ -528,8 +555,35 @@ ['v8_enable_extra_checks==1', { 'defines': ['ENABLE_EXTRA_CHECKS',], }], - ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \ - or OS=="android"', { + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd"', { + 'cflags!': [ + '-O2', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + '-O3', + ], + 'conditions': [ + [ 'gcc_version==44 and clang==0', { + 'cflags': [ + # Avoid crashes with gcc 4.4 in the v8 test suite. + '-fno-tree-vrp', + ], + }], + ], + }], + ['OS=="android"', { + 'cflags!': [ + '-O3', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + '-O2', + ], 'conditions': [ [ 'gcc_version==44 and clang==0', { 'cflags': [ diff --git a/deps/v8/build/shim_headers.gypi b/deps/v8/build/shim_headers.gypi new file mode 100644 index 0000000000..940211c240 --- /dev/null +++ b/deps/v8/build/shim_headers.gypi @@ -0,0 +1,73 @@ +# Copyright 2013 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# This file is meant to be included into a target to handle shim headers +# in a consistent manner. To use this the following variables need to be +# defined: +# headers_root_path: string: path to directory containing headers +# header_filenames: list: list of header file names + +{ + 'variables': { + 'shim_headers_path': '<(SHARED_INTERMEDIATE_DIR)/shim_headers/<(_target_name)/<(_toolset)', + 'shim_generator_additional_args%': [], + }, + 'include_dirs++': [ + '<(shim_headers_path)', + ], + 'all_dependent_settings': { + 'include_dirs+++': [ + '<(shim_headers_path)', + ], + }, + 'actions': [ + { + 'variables': { + 'generator_path': '<(DEPTH)/tools/generate_shim_headers/generate_shim_headers.py', + 'generator_args': [ + '--headers-root', '<(headers_root_path)', + '--output-directory', '<(shim_headers_path)', + '<@(shim_generator_additional_args)', + '<@(header_filenames)', + ], + }, + 'action_name': 'generate_<(_target_name)_shim_headers', + 'inputs': [ + '<(generator_path)', + ], + 'outputs': [ + ' GetFunctionName() const; + /** Returns id of the script where function is located. */ + int GetScriptId() const; + /** Returns resource name for script from where the function originates. */ Handle GetScriptResourceName() const; @@ -172,18 +175,12 @@ class V8EXPORT CpuProfiler { * obtaining profiling results. */ - /** Deprecated. Use GetProfileCount instead. */ - V8_DEPRECATED(static int GetProfilesCount()); /** * Returns the number of profiles collected (doesn't include * profiles that are being collected at the moment of call.) */ int GetProfileCount(); - /** Deprecated. Use GetCpuProfile instead. */ - V8_DEPRECATED(static const CpuProfile* GetProfile( - int index, - Handle security_token = Handle())); /** Deprecated. Use GetCpuProfile with single parameter. */ V8_DEPRECATED(const CpuProfile* GetCpuProfile( int index, @@ -191,18 +188,11 @@ class V8EXPORT CpuProfiler { /** Returns a profile by index. */ const CpuProfile* GetCpuProfile(int index); - /** Deprecated. Use FindProfile instead. */ - V8_DEPRECATED(static const CpuProfile* FindProfile( - unsigned uid, - Handle security_token = Handle())); /** Returns a profile by uid. */ V8_DEPRECATED(const CpuProfile* FindCpuProfile( unsigned uid, Handle security_token = Handle())); - /** Deprecated. Use StartCpuProfiling instead. */ - V8_DEPRECATED(static void StartProfiling(Handle title, - bool record_samples = false)); /** * Starts collecting CPU profile. Title may be an empty string. It * is allowed to have several profiles being collected at @@ -216,10 +206,6 @@ class V8EXPORT CpuProfiler { */ void StartCpuProfiling(Handle title, bool record_samples = false); - /** Deprecated. Use StopCpuProfiling instead. */ - V8_DEPRECATED(static const CpuProfile* StopProfiling( - Handle title, - Handle security_token = Handle())); /** * Deprecated. Use StopCpuProfiling with one parameter instead. */ @@ -232,8 +218,6 @@ class V8EXPORT CpuProfiler { */ const CpuProfile* StopCpuProfiling(Handle title); - /** Deprecated. Use DeleteAllCpuProfiles instead. */ - V8_DEPRECATED(static void DeleteAllProfiles()); /** * Deletes all existing profiles, also cancelling all profiling * activity. All previously returned pointers to profiles and their @@ -346,16 +330,10 @@ class V8EXPORT HeapGraphNode { */ class V8EXPORT HeapSnapshot { public: - enum Type { - kFull = 0 // Heap snapshot with all instances and references. - }; enum SerializationFormat { kJSON = 0 // See format description near 'Serialize' method. }; - /** Deprecated. Returns kFull. */ - V8_DEPRECATED(Type GetType() const); - /** Returns heap snapshot UID (assigned by the profiler.) */ unsigned GetUid() const; @@ -431,24 +409,12 @@ class V8EXPORT HeapProfiler { typedef RetainedObjectInfo* (*WrapperInfoCallback) (uint16_t class_id, Handle wrapper); - /** Deprecated. Use GetSnapshotCount instead. */ - V8_DEPRECATED(static int GetSnapshotsCount()); /** Returns the number of snapshots taken. */ int GetSnapshotCount(); - /** Deprecated. Use GetHeapSnapshot instead. */ - V8_DEPRECATED(static const HeapSnapshot* GetSnapshot(int index)); /** Returns a snapshot by index. */ const HeapSnapshot* GetHeapSnapshot(int index); - /** Deprecated. Use FindHeapSnapshot instead. */ - V8_DEPRECATED(static const HeapSnapshot* FindSnapshot(unsigned uid)); - /** Returns a profile by uid. */ - V8_DEPRECATED(const HeapSnapshot* FindHeapSnapshot(unsigned uid)); - - /** Deprecated. Use GetObjectId instead. */ - V8_DEPRECATED(static SnapshotObjectId GetSnapshotObjectId( - Handle value)); /** * Returns SnapshotObjectId for a heap object referenced by |value| if * it has been seen by the heap profiler, kUnknownObjectId otherwise. @@ -476,12 +442,6 @@ class V8EXPORT HeapProfiler { virtual ~ObjectNameResolver() {} }; - /** Deprecated. Use TakeHeapSnapshot instead. */ - V8_DEPRECATED(static const HeapSnapshot* TakeSnapshot( - Handle title, - HeapSnapshot::Type type = HeapSnapshot::kFull, - ActivityControl* control = NULL, - ObjectNameResolver* global_object_name_resolver = NULL)); /** * Takes a heap snapshot and returns it. Title may be an empty string. */ @@ -490,9 +450,6 @@ class V8EXPORT HeapProfiler { ActivityControl* control = NULL, ObjectNameResolver* global_object_name_resolver = NULL); - - /** Deprecated. Use StartTrackingHeapObjects instead. */ - V8_DEPRECATED(static void StartHeapObjectsTracking()); /** * Starts tracking of heap objects population statistics. After calling * this method, all heap objects relocations done by the garbage collector @@ -500,9 +457,6 @@ class V8EXPORT HeapProfiler { */ void StartTrackingHeapObjects(); - /** Deprecated. Use GetHeapStats instead. */ - V8_DEPRECATED(static SnapshotObjectId PushHeapObjectsStats( - OutputStream* stream)); /** * Adds a new time interval entry to the aggregated statistics array. The * time interval entry contains information on the current heap objects @@ -517,8 +471,6 @@ class V8EXPORT HeapProfiler { */ SnapshotObjectId GetHeapStats(OutputStream* stream); - /** Deprecated. Use StopTrackingHeapObjects instead. */ - V8_DEPRECATED(static void StopHeapObjectsTracking()); /** * Stops tracking of heap objects population statistics, cleans up all * collected data. StartHeapObjectsTracking must be called again prior to @@ -526,18 +478,12 @@ class V8EXPORT HeapProfiler { */ void StopTrackingHeapObjects(); - /** Deprecated. Use DeleteAllHeapSnapshots instead. */ - V8_DEPRECATED(static void DeleteAllSnapshots()); /** * Deletes all snapshots taken. All previously returned pointers to * snapshots and their contents become invalid after this call. */ void DeleteAllHeapSnapshots(); - /** Deprecated. Use SetWrapperClassInfoProvider instead. */ - V8_DEPRECATED(static void DefineWrapperClass( - uint16_t class_id, - WrapperInfoCallback callback)); /** Binds a callback to embedder's class ID. */ void SetWrapperClassInfoProvider( uint16_t class_id, @@ -550,13 +496,6 @@ class V8EXPORT HeapProfiler { */ static const uint16_t kPersistentHandleNoClassId = 0; - /** - * Deprecated. Returns the number of currently existing persistent handles. - */ - V8_DEPRECATED(static int GetPersistentHandleCount()); - - /** Deprecated. Use GetHeapProfilerMemorySize instead. */ - V8_DEPRECATED(static size_t GetMemorySizeUsedByProfiler()); /** Returns memory used for profiler internal data and snapshots. */ size_t GetProfilerMemorySize(); @@ -590,7 +529,7 @@ class V8EXPORT HeapProfiler { * objects for heap snapshots, he can do it in a GC prologue * handler, and / or by assigning wrapper class ids in the following way: * - * 1. Bind a callback to class id by calling DefineWrapperClass. + * 1. Bind a callback to class id by calling SetWrapperClassInfoProvider. * 2. Call SetWrapperClassId on certain persistent handles. * * V8 takes ownership of RetainedObjectInfo instances passed to it and diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index c0bec79b01..3afb83572a 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -123,7 +123,6 @@ class ImplementationUtilities; class Int32; class Integer; class Isolate; -class LocalContext; class Number; class NumberObject; class Object; @@ -155,6 +154,7 @@ class Isolate; class DeclaredAccessorDescriptor; class ObjectOperationDescriptor; class RawOperationDescriptor; +class CallHandlerHelper; namespace internal { class Arguments; @@ -162,8 +162,7 @@ class Heap; class HeapObject; class Isolate; class Object; -template -class CustomArguments; +template class CustomArguments; class PropertyCallbackArguments; class FunctionCallbackArguments; } @@ -222,8 +221,6 @@ class WeakReferenceCallbacks { } -#define V8_USE_UNSAFE_HANDLES - /** * An object reference managed by the v8 garbage collector. * @@ -365,21 +362,19 @@ template class Handle { #endif private: + friend class Utils; template friend class Persistent; template friend class Local; friend class Arguments; template friend class FunctionCallbackInfo; template friend class PropertyCallbackInfo; - friend class String; - friend class Object; + template friend class internal::CustomArguments; friend class AccessorInfo; friend Handle Undefined(Isolate* isolate); friend Handle Null(Isolate* isolate); friend Handle True(Isolate* isolate); friend Handle False(Isolate* isolate); friend class Context; - friend class InternalHandleHelper; - friend class LocalContext; friend class HandleScope; #ifndef V8_USE_UNSAFE_HANDLES @@ -454,6 +449,7 @@ template class Local : public Handle { #endif private: + friend class Utils; template friend class Persistent; template friend class Handle; friend class Arguments; @@ -463,8 +459,7 @@ template class Local : public Handle { friend class Object; friend class AccessorInfo; friend class Context; - friend class InternalHandleHelper; - friend class LocalContext; + template friend class internal::CustomArguments; friend class HandleScope; V8_INLINE(static Local New(Isolate* isolate, T* that)); @@ -496,10 +491,10 @@ template class Persistent // NOLINT public: #ifndef V8_USE_UNSAFE_HANDLES V8_INLINE(Persistent()) : val_(0) { } - V8_INLINE(~Persistent()) { - // TODO(dcarney): add this back before cutover. - // Dispose(); - } + // TODO(dcarney): add this back before cutover. +// V8_INLINE(~Persistent()) { +// Dispose(); +// } V8_INLINE(bool IsEmpty() const) { return val_ == 0; } // TODO(dcarney): remove somehow before cutover // The handle should either be 0, or a pointer to a live cell. @@ -511,11 +506,11 @@ template class Persistent // NOLINT * to be separately disposed. */ template V8_INLINE(Persistent(Isolate* isolate, Handle that)) - : val_(*New(isolate, that)) { } + : val_(New(isolate, *that)) { } template V8_INLINE(Persistent(Isolate* isolate, - Persistent& that)) // NOLINT - : val_(*New(isolate, that)) { } + const Persistent& that)) // NOLINT + : val_(New(isolate, *that)) { } #else /** @@ -594,15 +589,9 @@ template class Persistent // NOLINT } #endif +#ifdef V8_USE_UNSAFE_HANDLES V8_DEPRECATED(static Persistent New(Handle that)); - - /** - * Creates a new persistent handle for an existing local or persistent handle. - */ - // TODO(dcarney): remove before cutover V8_INLINE(static Persistent New(Isolate* isolate, Handle that)); -#ifndef V8_USE_UNSAFE_HANDLES - // TODO(dcarney): remove before cutover V8_INLINE(static Persistent New(Isolate* isolate, Persistent that)); #endif @@ -652,23 +641,17 @@ template class Persistent // NOLINT P* parameters, typename WeakReferenceCallbacks::Revivable callback)); - // TODO(dcarney): deprecate template - V8_INLINE(void MakeWeak( + V8_DEPRECATED(void MakeWeak( Isolate* isolate, P* parameters, - typename WeakReferenceCallbacks::Revivable callback)) { - MakeWeak(parameters, callback); - } + typename WeakReferenceCallbacks::Revivable callback)); - // TODO(dcarney): deprecate template - V8_INLINE(void MakeWeak( + V8_DEPRECATED(void MakeWeak( Isolate* isolate, P* parameters, - typename WeakReferenceCallbacks::Revivable callback)) { - MakeWeak

(parameters, callback); - } + typename WeakReferenceCallbacks::Revivable callback)); V8_INLINE(void ClearWeak()); @@ -779,11 +762,7 @@ template class Persistent // NOLINT #endif // TODO(dcarney): remove before cutover template V8_INLINE(Persistent(S* that)) : val_(that) { } - // TODO(dcarney): remove before cutover - template V8_INLINE(Persistent(Persistent that)) - : val_(*that) { - TYPE_CHECK(T, S); - } + // TODO(dcarney): remove before cutover V8_INLINE(T* operator*() const) { return val_; } @@ -794,16 +773,13 @@ template class Persistent // NOLINT #endif private: + friend class Utils; template friend class Handle; template friend class Local; + template friend class Persistent; template friend class ReturnValue; - friend class ImplementationUtilities; - friend class ObjectTemplate; - friend class Context; - friend class InternalHandleHelper; - friend class LocalContext; - V8_INLINE(static Persistent New(Isolate* isolate, T* that)); + V8_INLINE(static T* New(Isolate* isolate, T* that)); #ifndef V8_USE_UNSAFE_HANDLES T* val_; @@ -1067,9 +1043,15 @@ class V8EXPORT Script { /** * Returns the script id value. + * DEPRECATED: Please use GetId(). */ Local Id(); + /** + * Returns the script id. + */ + int GetId(); + /** * Associate an additional data object with the script. This is mainly used * with the debugger as this data object is only available through the @@ -1087,6 +1069,8 @@ class V8EXPORT Script { * -1 will be returned if no information available. */ int GetLineNumber(int code_pos); + + static const int kNoScriptId = 0; }; @@ -1385,6 +1369,12 @@ class V8EXPORT Value : public Data { */ bool IsArrayBuffer() const; + /** + * Returns true if this value is an ArrayBufferView. + * This is an experimental feature. + */ + bool IsArrayBufferView() const; + /** * Returns true if this value is one of TypedArrays. * This is an experimental feature. @@ -1445,6 +1435,12 @@ class V8EXPORT Value : public Data { */ bool IsFloat64Array() const; + /** + * Returns true if this value is a DataView. + * This is an experimental feature. + */ + bool IsDataView() const; + Local ToBoolean() const; Local ToNumber() const; Local ToString() const; @@ -2078,13 +2074,12 @@ class V8EXPORT Object : public Value { bool Delete(uint32_t index); - // TODO(dcarney): deprecate - bool SetAccessor(Handle name, - AccessorGetter getter, - AccessorSetter setter = 0, - Handle data = Handle(), - AccessControl settings = DEFAULT, - PropertyAttribute attribute = None); + V8_DEPRECATED(bool SetAccessor(Handle name, + AccessorGetter getter, + AccessorSetter setter = 0, + Handle data = Handle(), + AccessControl settings = DEFAULT, + PropertyAttribute attribute = None)); bool SetAccessor(Handle name, AccessorGetterCallback getter, AccessorSetterCallback setter = 0, @@ -2360,7 +2355,18 @@ class V8EXPORT Function : public Object { * kLineOffsetNotFound if no information available. */ int GetScriptColumnNumber() const; + + /** + * Returns scriptId object. + * DEPRECATED: use ScriptId() instead. + */ Handle GetScriptId() const; + + /** + * Returns scriptId. + */ + int ScriptId() const; + ScriptOrigin GetScriptOrigin() const; V8_INLINE(static Function* Cast(Value* obj)); static const int kLineOffsetNotFound; @@ -2484,33 +2490,51 @@ class V8EXPORT ArrayBuffer : public Object { /** - * A base class for an instance of TypedArray series of constructors - * (ES6 draft 15.13.6). + * A base class for an instance of one of "views" over ArrayBuffer, + * including TypedArrays and DataView (ES6 draft 15.13). + * * This API is experimental and may change significantly. */ -class V8EXPORT TypedArray : public Object { +class V8EXPORT ArrayBufferView : public Object { public: /** * Returns underlying ArrayBuffer. */ Local Buffer(); /** - * Byte offset in |Buffer| + * Byte offset in |Buffer|. */ size_t ByteOffset(); /** - * Numbe of elements in this typed array. - */ - size_t Length(); - /** - * Size of typed array in bytes (e.g. for Int16Array, 2*|Length|). + * Size of a view in bytes. */ size_t ByteLength(); /** - * Base address of typed array. + * Base address of a view. */ void* BaseAddress(); + V8_INLINE(static ArrayBufferView* Cast(Value* obj)); + + private: + ArrayBufferView(); + static void CheckCast(Value* obj); +}; + + +/** + * A base class for an instance of TypedArray series of constructors + * (ES6 draft 15.13.6). + * This API is experimental and may change significantly. + */ +class V8EXPORT TypedArray : public ArrayBufferView { + public: + /** + * Number of elements in this typed array + * (e.g. for Int16Array, |ByteLength|/2). + */ + size_t Length(); + V8_INLINE(static TypedArray* Cast(Value* obj)); private: @@ -2662,6 +2686,22 @@ class V8EXPORT Float64Array : public TypedArray { }; +/** + * An instance of DataView constructor (ES6 draft 15.13.7). + * This API is experimental and may change significantly. + */ +class V8EXPORT DataView : public ArrayBufferView { + public: + static Local New(Handle array_buffer, + size_t byte_offset, size_t length); + V8_INLINE(static DataView* Cast(Value* obj)); + + private: + DataView(); + static void CheckCast(Value* obj); +}; + + /** * An instance of the built-in Date constructor (ECMA-262, 15.9). */ @@ -3220,14 +3260,13 @@ typedef bool (*IndexedSecurityCallback)(Local host, class V8EXPORT FunctionTemplate : public Template { public: /** Creates a function template.*/ - // TODO(dcarney): deprecate - static Local New( - InvocationCallback callback = 0, + V8_DEPRECATED(static Local New( + InvocationCallback callback, Handle data = Handle(), Handle signature = Handle(), - int length = 0); + int length = 0)); static Local New( - FunctionCallback callback, // TODO(dcarney): add back default param. + FunctionCallback callback = 0, Handle data = Handle(), Handle signature = Handle(), int length = 0); @@ -3240,9 +3279,8 @@ class V8EXPORT FunctionTemplate : public Template { * callback is called whenever the function created from this * FunctionTemplate is called. */ - // TODO(dcarney): deprecate - void SetCallHandler(InvocationCallback callback, - Handle data = Handle()); + V8_DEPRECATED(void SetCallHandler(InvocationCallback callback, + Handle data = Handle())); void SetCallHandler(FunctionCallback callback, Handle data = Handle()); @@ -3296,6 +3334,9 @@ class V8EXPORT FunctionTemplate : public Template { private: FunctionTemplate(); + // TODO(dcarney): Remove with SetCallHandler. + friend class v8::CallHandlerHelper; + void SetCallHandlerInternal(InvocationCallback callback, Handle data); friend class Context; friend class ObjectTemplate; }; @@ -3344,15 +3385,14 @@ class V8EXPORT ObjectTemplate : public Template { * defined by FunctionTemplate::HasInstance()), an implicit TypeError is * thrown and no callback is invoked. */ - // TODO(dcarney): deprecate - void SetAccessor(Handle name, - AccessorGetter getter, - AccessorSetter setter = 0, - Handle data = Handle(), - AccessControl settings = DEFAULT, - PropertyAttribute attribute = None, - Handle signature = - Handle()); + V8_DEPRECATED(void SetAccessor(Handle name, + AccessorGetter getter, + AccessorSetter setter = 0, + Handle data = Handle(), + AccessControl settings = DEFAULT, + PropertyAttribute attribute = None, + Handle signature = + Handle())); void SetAccessor(Handle name, AccessorGetterCallback getter, AccessorSetterCallback setter = 0, @@ -3387,13 +3427,13 @@ class V8EXPORT ObjectTemplate : public Template { * \param data A piece of data that will be passed to the callbacks * whenever they are invoked. */ - // TODO(dcarney): deprecate - void SetNamedPropertyHandler(NamedPropertyGetter getter, - NamedPropertySetter setter = 0, - NamedPropertyQuery query = 0, - NamedPropertyDeleter deleter = 0, - NamedPropertyEnumerator enumerator = 0, - Handle data = Handle()); + V8_DEPRECATED(void SetNamedPropertyHandler( + NamedPropertyGetter getter, + NamedPropertySetter setter = 0, + NamedPropertyQuery query = 0, + NamedPropertyDeleter deleter = 0, + NamedPropertyEnumerator enumerator = 0, + Handle data = Handle())); void SetNamedPropertyHandler( NamedPropertyGetterCallback getter, NamedPropertySetterCallback setter = 0, @@ -3418,13 +3458,13 @@ class V8EXPORT ObjectTemplate : public Template { * \param data A piece of data that will be passed to the callbacks * whenever they are invoked. */ - // TODO(dcarney): deprecate - void SetIndexedPropertyHandler(IndexedPropertyGetter getter, - IndexedPropertySetter setter = 0, - IndexedPropertyQuery query = 0, - IndexedPropertyDeleter deleter = 0, - IndexedPropertyEnumerator enumerator = 0, - Handle data = Handle()); + V8_DEPRECATED(void SetIndexedPropertyHandler( + IndexedPropertyGetter getter, + IndexedPropertySetter setter = 0, + IndexedPropertyQuery query = 0, + IndexedPropertyDeleter deleter = 0, + IndexedPropertyEnumerator enumerator = 0, + Handle data = Handle())); void SetIndexedPropertyHandler( IndexedPropertyGetterCallback getter, IndexedPropertySetterCallback setter = 0, @@ -3439,9 +3479,9 @@ class V8EXPORT ObjectTemplate : public Template { * behave like normal JavaScript objects that cannot be called as a * function. */ - // TODO(dcarney): deprecate - void SetCallAsFunctionHandler(InvocationCallback callback, - Handle data = Handle()); + V8_DEPRECATED(void SetCallAsFunctionHandler( + InvocationCallback callback, + Handle data = Handle())); void SetCallAsFunctionHandler(FunctionCallback callback, Handle data = Handle()); @@ -3953,8 +3993,9 @@ class V8EXPORT Isolate { HeapProfiler* GetHeapProfiler(); /** - * Returns CPU profiler for this isolate. Will return NULL until the isolate - * is initialized. + * Returns CPU profiler for this isolate. Will return NULL unless the isolate + * is initialized. It is the embedder's responsibility to stop all CPU + * profiling activities if it has started any. */ CpuProfiler* GetCpuProfiler(); @@ -4436,19 +4477,26 @@ class V8EXPORT V8 { static void SetReturnAddressLocationResolver( ReturnAddressLocationResolver return_address_resolver); + /** + * Deprecated, use the variant with the Isolate parameter below instead. + */ + V8_DEPRECATED(static bool SetFunctionEntryHook(FunctionEntryHook entry_hook)); + /** * Allows the host application to provide the address of a function that's * invoked on entry to every V8-generated function. * Note that \p entry_hook is invoked at the very start of each * generated function. * + * \param isolate the isolate to operate on. * \param entry_hook a function that will be invoked on entry to every * V8-generated function. * \returns true on success on supported platforms, false on failure. - * \note Setting a new entry hook function when one is already active will - * fail. + * \note Setting an entry hook can only be done very early in an isolates + * lifetime, and once set, the entry hook cannot be revoked. */ - static bool SetFunctionEntryHook(FunctionEntryHook entry_hook); + static bool SetFunctionEntryHook(Isolate* isolate, + FunctionEntryHook entry_hook); /** * Allows the host application to provide the address of a function that is @@ -4776,7 +4824,10 @@ class V8EXPORT TryCatch { v8::internal::Isolate* isolate_; void* next_; void* exception_; - void* message_; + void* message_obj_; + void* message_script_; + int message_start_pos_; + int message_end_pos_; bool is_verbose_ : 1; bool can_continue_ : 1; bool capture_message_ : 1; @@ -5320,20 +5371,19 @@ class Internals { static const int kJSObjectHeaderSize = 3 * kApiPointerSize; static const int kFixedArrayHeaderSize = 2 * kApiPointerSize; static const int kContextHeaderSize = 2 * kApiPointerSize; - static const int kContextEmbedderDataIndex = 64; + static const int kContextEmbedderDataIndex = 65; static const int kFullStringRepresentationMask = 0x07; static const int kStringEncodingMask = 0x4; static const int kExternalTwoByteRepresentationTag = 0x02; static const int kExternalAsciiRepresentationTag = 0x06; - static const int kIsolateStateOffset = 0; static const int kIsolateEmbedderDataOffset = 1 * kApiPointerSize; static const int kIsolateRootsOffset = 3 * kApiPointerSize; static const int kUndefinedValueRootIndex = 5; static const int kNullValueRootIndex = 7; static const int kTrueValueRootIndex = 8; static const int kFalseValueRootIndex = 9; - static const int kEmptyStringRootIndex = 130; + static const int kEmptyStringRootIndex = 131; static const int kNodeClassIdOffset = 1 * kApiPointerSize; static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; @@ -5343,14 +5393,21 @@ class Internals { static const int kNodeIsIndependentShift = 4; static const int kNodeIsPartiallyDependentShift = 5; - static const int kJSObjectType = 0xaf; + static const int kJSObjectType = 0xb0; static const int kFirstNonstringType = 0x80; static const int kOddballType = 0x83; - static const int kForeignType = 0x87; + static const int kForeignType = 0x88; static const int kUndefinedOddballKind = 5; static const int kNullOddballKind = 3; + static void CheckInitializedImpl(v8::Isolate* isolate); + V8_INLINE(static void CheckInitialized(v8::Isolate* isolate)) { +#ifdef V8_ENABLE_CHECKS + CheckInitializedImpl(isolate); +#endif + } + V8_INLINE(static bool HasHeapObjectTag(internal::Object* value)) { return ((reinterpret_cast(value) & kHeapObjectTagMask) == kHeapObjectTag); @@ -5384,11 +5441,6 @@ class Internals { return representation == kExternalTwoByteRepresentationTag; } - V8_INLINE(static bool IsInitialized(v8::Isolate* isolate)) { - uint8_t* addr = reinterpret_cast(isolate) + kIsolateStateOffset; - return *reinterpret_cast(addr) == 1; - } - V8_INLINE(static uint8_t GetNodeFlag(internal::Object** obj, int shift)) { uint8_t* addr = reinterpret_cast(obj) + kNodeFlagsOffset; return *addr & (1 << shift); @@ -5510,6 +5562,7 @@ Local Local::New(Isolate* isolate, T* that) { } +#ifdef V8_USE_UNSAFE_HANDLES template Persistent Persistent::New(Handle that) { return New(Isolate::GetCurrent(), that.val_); @@ -5521,20 +5574,20 @@ Persistent Persistent::New(Isolate* isolate, Handle that) { return New(Isolate::GetCurrent(), that.val_); } -#ifndef V8_USE_UNSAFE_HANDLES template Persistent Persistent::New(Isolate* isolate, Persistent that) { return New(Isolate::GetCurrent(), that.val_); } #endif + template -Persistent Persistent::New(Isolate* isolate, T* that) { - if (that == NULL) return Persistent(); +T* Persistent::New(Isolate* isolate, T* that) { + if (that == NULL) return NULL; internal::Object** p = reinterpret_cast(that); - return Persistent(reinterpret_cast( + return reinterpret_cast( V8::GlobalizeReference(reinterpret_cast(isolate), - p))); + p)); } @@ -5597,6 +5650,26 @@ void Persistent::MakeWeak( } +template +template +void Persistent::MakeWeak( + Isolate* isolate, + P* parameters, + typename WeakReferenceCallbacks::Revivable callback) { + MakeWeak(parameters, callback); +} + + +template +template +void Persistent::MakeWeak( + Isolate* isolate, + P* parameters, + typename WeakReferenceCallbacks::Revivable callback) { + MakeWeak

(parameters, callback); +} + + template void Persistent::ClearWeak() { V8::ClearWeak(reinterpret_cast(this->val_)); @@ -5716,11 +5789,13 @@ void ReturnValue::Set(const Handle handle) { template void ReturnValue::Set(double i) { + TYPE_CHECK(T, Number); Set(Number::New(GetIsolate(), i)); } template void ReturnValue::Set(int32_t i) { + TYPE_CHECK(T, Integer); typedef internal::Internals I; if (V8_LIKELY(I::IsValidSmi(i))) { *value_ = I::IntToSmi(i); @@ -5731,6 +5806,7 @@ void ReturnValue::Set(int32_t i) { template void ReturnValue::Set(uint32_t i) { + TYPE_CHECK(T, Integer); typedef internal::Internals I; // Can't simply use INT32_MAX here for whatever reason. bool fits_into_int32_t = (i & (1 << 31)) == 0; @@ -5743,6 +5819,7 @@ void ReturnValue::Set(uint32_t i) { template void ReturnValue::Set(bool value) { + TYPE_CHECK(T, Boolean); typedef internal::Internals I; int root_index; if (value) { @@ -5755,18 +5832,21 @@ void ReturnValue::Set(bool value) { template void ReturnValue::SetNull() { + TYPE_CHECK(T, Primitive); typedef internal::Internals I; *value_ = *I::GetRoot(GetIsolate(), I::kNullValueRootIndex); } template void ReturnValue::SetUndefined() { + TYPE_CHECK(T, Primitive); typedef internal::Internals I; *value_ = *I::GetRoot(GetIsolate(), I::kUndefinedValueRootIndex); } template void ReturnValue::SetEmptyString() { + TYPE_CHECK(T, String); typedef internal::Internals I; *value_ = *I::GetRoot(GetIsolate(), I::kEmptyStringRootIndex); } @@ -5936,7 +6016,7 @@ String* String::Cast(v8::Value* value) { Local String::Empty(Isolate* isolate) { typedef internal::Object* S; typedef internal::Internals I; - if (!I::IsInitialized(isolate)) return Empty(); + I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kEmptyStringRootIndex); return Local(reinterpret_cast(slot)); } @@ -6160,6 +6240,14 @@ ArrayBuffer* ArrayBuffer::Cast(v8::Value* value) { } +ArrayBufferView* ArrayBufferView::Cast(v8::Value* value) { +#ifdef V8_ENABLE_CHECKS + CheckCast(value); +#endif + return static_cast(value); +} + + TypedArray* TypedArray::Cast(v8::Value* value) { #ifdef V8_ENABLE_CHECKS CheckCast(value); @@ -6240,6 +6328,14 @@ Uint8ClampedArray* Uint8ClampedArray::Cast(v8::Value* value) { } +DataView* DataView::Cast(v8::Value* value) { +#ifdef V8_ENABLE_CHECKS + CheckCast(value); +#endif + return static_cast(value); +} + + Function* Function::Cast(v8::Value* value) { #ifdef V8_ENABLE_CHECKS CheckCast(value); @@ -6289,7 +6385,7 @@ ReturnValue PropertyCallbackInfo::GetReturnValue() const { Handle Undefined(Isolate* isolate) { typedef internal::Object* S; typedef internal::Internals I; - if (!I::IsInitialized(isolate)) return Undefined(); + I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kUndefinedValueRootIndex); return Handle(reinterpret_cast(slot)); } @@ -6298,7 +6394,7 @@ Handle Undefined(Isolate* isolate) { Handle Null(Isolate* isolate) { typedef internal::Object* S; typedef internal::Internals I; - if (!I::IsInitialized(isolate)) return Null(); + I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kNullValueRootIndex); return Handle(reinterpret_cast(slot)); } @@ -6307,7 +6403,7 @@ Handle Null(Isolate* isolate) { Handle True(Isolate* isolate) { typedef internal::Object* S; typedef internal::Internals I; - if (!I::IsInitialized(isolate)) return True(); + I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kTrueValueRootIndex); return Handle(reinterpret_cast(slot)); } @@ -6316,7 +6412,7 @@ Handle True(Isolate* isolate) { Handle False(Isolate* isolate) { typedef internal::Object* S; typedef internal::Internals I; - if (!I::IsInitialized(isolate)) return False(); + I::CheckInitialized(isolate); S* slot = I::GetRoot(isolate, I::kFalseValueRootIndex); return Handle(reinterpret_cast(slot)); } diff --git a/deps/v8/preparser/preparser.gyp b/deps/v8/preparser/preparser.gyp index 863a2ff8a9..598f0a511e 100644 --- a/deps/v8/preparser/preparser.gyp +++ b/deps/v8/preparser/preparser.gyp @@ -26,6 +26,9 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. { + 'variables': { + 'v8_code': 1, + }, 'includes': ['../build/common.gypi'], 'targets': [ { diff --git a/deps/v8/samples/samples.gyp b/deps/v8/samples/samples.gyp index 3c720a748a..8b1de7eb42 100644 --- a/deps/v8/samples/samples.gyp +++ b/deps/v8/samples/samples.gyp @@ -26,6 +26,9 @@ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. { + 'variables': { + 'v8_code': 1, + }, 'includes': ['../build/common.gypi'], 'target_defaults': { 'type': 'executable', diff --git a/deps/v8/src/api.cc b/deps/v8/src/api.cc index 20496fefde..638a25f317 100644 --- a/deps/v8/src/api.cc +++ b/deps/v8/src/api.cc @@ -38,6 +38,7 @@ #include "compiler.h" #include "conversions-inl.h" #include "counters.h" +#include "cpu-profiler.h" #include "debug.h" #include "deoptimizer.h" #include "execution.h" @@ -183,6 +184,10 @@ void i::V8::FatalProcessOutOfMemory(const char* location, bool take_snapshot) { heap_stats.cell_space_size = &cell_space_size; intptr_t cell_space_capacity; heap_stats.cell_space_capacity = &cell_space_capacity; + intptr_t property_cell_space_size; + heap_stats.property_cell_space_size = &property_cell_space_size; + intptr_t property_cell_space_capacity; + heap_stats.property_cell_space_capacity = &property_cell_space_capacity; intptr_t lo_space_size; heap_stats.lo_space_size = &lo_space_size; int global_handle_count; @@ -296,8 +301,13 @@ static inline bool EmptyCheck(const char* location, const v8::Data* obj) { // --- S t a t i c s --- -static bool InitializeHelper() { - if (i::Snapshot::Initialize()) return true; +static bool InitializeHelper(i::Isolate* isolate) { + // If the isolate has a function entry hook, it needs to re-build all its + // code stubs with entry hooks embedded, so let's deserialize a snapshot. + if (isolate == NULL || isolate->function_entry_hook() == NULL) { + if (i::Snapshot::Initialize()) + return true; + } return i::V8::Initialize(NULL); } @@ -309,7 +319,7 @@ static inline bool EnsureInitializedForIsolate(i::Isolate* isolate, if (isolate->IsInitialized()) return true; } ASSERT(isolate == i::Isolate::Current()); - return ApiCheck(InitializeHelper(), location, "Error initializing V8"); + return ApiCheck(InitializeHelper(isolate), location, "Error initializing V8"); } // Some initializing API functions are called early and may be @@ -385,6 +395,9 @@ enum CompressedStartupDataItems { kSnapshotContext, kLibraries, kExperimentalLibraries, +#if defined(ENABLE_I18N_SUPPORT) + kI18NExtension, +#endif kCompressedStartupDataCount }; @@ -424,6 +437,17 @@ void V8::GetCompressedStartupData(StartupData* compressed_data) { exp_libraries_source.length(); compressed_data[kExperimentalLibraries].raw_size = i::ExperimentalNatives::GetRawScriptsSize(); + +#if defined(ENABLE_I18N_SUPPORT) + i::Vector i18n_extension_source = + i::I18NNatives::GetScriptsSource(); + compressed_data[kI18NExtension].data = + reinterpret_cast(i18n_extension_source.start()); + compressed_data[kI18NExtension].compressed_size = + i18n_extension_source.length(); + compressed_data[kI18NExtension].raw_size = + i::I18NNatives::GetRawScriptsSize(); +#endif #endif } @@ -453,6 +477,15 @@ void V8::SetDecompressedStartupData(StartupData* decompressed_data) { decompressed_data[kExperimentalLibraries].data, decompressed_data[kExperimentalLibraries].raw_size); i::ExperimentalNatives::SetRawScriptsSource(exp_libraries_source); + +#if defined(ENABLE_I18N_SUPPORT) + ASSERT_EQ(i::I18NNatives::GetRawScriptsSize(), + decompressed_data[kI18NExtension].raw_size); + i::Vector i18n_extension_source( + decompressed_data[kI18NExtension].data, + decompressed_data[kI18NExtension].raw_size); + i::I18NNatives::SetRawScriptsSource(i18n_extension_source); +#endif #endif } @@ -548,8 +581,7 @@ v8::Handle Undefined() { if (!EnsureInitializedForIsolate(isolate, "v8::Undefined()")) { return v8::Handle(); } - return v8::Handle(ToApi( - isolate->factory()->undefined_value())); + return ToApiHandle(isolate->factory()->undefined_value()); } @@ -558,8 +590,7 @@ v8::Handle Null() { if (!EnsureInitializedForIsolate(isolate, "v8::Null()")) { return v8::Handle(); } - return v8::Handle( - ToApi(isolate->factory()->null_value())); + return ToApiHandle(isolate->factory()->null_value()); } @@ -568,8 +599,7 @@ v8::Handle True() { if (!EnsureInitializedForIsolate(isolate, "v8::True()")) { return v8::Handle(); } - return v8::Handle( - ToApi(isolate->factory()->true_value())); + return ToApiHandle(isolate->factory()->true_value()); } @@ -578,8 +608,7 @@ v8::Handle False() { if (!EnsureInitializedForIsolate(isolate, "v8::False()")) { return v8::Handle(); } - return v8::Handle( - ToApi(isolate->factory()->false_value())); + return ToApiHandle(isolate->factory()->false_value()); } @@ -949,7 +978,7 @@ Local FunctionTemplate::PrototypeTemplate() { result = Utils::OpenHandle(*ObjectTemplate::New()); Utils::OpenHandle(this)->set_prototype_template(*result); } - return Local(ToApi(result)); + return ToApiHandle(result); } @@ -961,6 +990,22 @@ void FunctionTemplate::Inherit(v8::Handle value) { } +// TODO(dcarney): Remove this abstraction when old callbacks are removed. +class CallHandlerHelper { + public: + static inline void Set(Local function_template, + InvocationCallback callback, + v8::Handle data) { + function_template->SetCallHandlerInternal(callback, data); + } + static inline void Set(Local function_template, + FunctionCallback callback, + v8::Handle data) { + function_template->SetCallHandler(callback, data); + } +}; + + template static Local FunctionTemplateNew( Callback callback, @@ -981,7 +1026,7 @@ static Local FunctionTemplateNew( obj->set_serial_number(i::Smi::FromInt(next_serial_number)); if (callback != 0) { if (data.IsEmpty()) data = v8::Undefined(); - Utils::ToLocal(obj)->SetCallHandler(callback, data); + CallHandlerHelper::Set(Utils::ToLocal(obj), callback, data); } obj->set_length(length); obj->set_undetectable(false); @@ -1044,8 +1089,7 @@ template static Local NewDescriptor( Isolate* isolate, const i::DeclaredAccessorDescriptorData& data, - Data* previous_descriptor - ) { + Data* previous_descriptor) { i::Isolate* internal_isolate = reinterpret_cast(isolate); i::Handle previous = i::Handle(); @@ -1055,8 +1099,7 @@ static Local NewDescriptor( } i::Handle descriptor = i::DeclaredAccessorDescriptor::Create(internal_isolate, data, previous); - return Local( - reinterpret_cast(*Utils::ToLocal(descriptor))); + return Utils::Convert(descriptor); } @@ -1227,6 +1270,11 @@ void FunctionTemplate::SetCallHandler(InvocationCallback callback, FunctionTemplateSetCallHandler(this, callback, data); } +void FunctionTemplate::SetCallHandlerInternal(InvocationCallback callback, + v8::Handle data) { + FunctionTemplateSetCallHandler(this, callback, data); +} + void FunctionTemplate::SetCallHandler(FunctionCallback callback, v8::Handle data) { FunctionTemplateSetCallHandler(this, callback, data); @@ -1297,13 +1345,14 @@ Local FunctionTemplate::InstanceTemplate() { || EmptyCheck("v8::FunctionTemplate::InstanceTemplate()", this)) return Local(); ENTER_V8(isolate); - if (Utils::OpenHandle(this)->instance_template()->IsUndefined()) { + i::Handle handle = Utils::OpenHandle(this); + if (handle->instance_template()->IsUndefined()) { Local templ = - ObjectTemplate::New(v8::Handle(this)); - Utils::OpenHandle(this)->set_instance_template(*Utils::OpenHandle(*templ)); + ObjectTemplate::New(ToApiHandle(handle)); + handle->set_instance_template(*Utils::OpenHandle(*templ)); } - i::Handle result(i::ObjectTemplateInfo::cast( - Utils::OpenHandle(this)->instance_template())); + i::Handle result( + i::ObjectTemplateInfo::cast(handle->instance_template())); return Utils::ToLocal(result); } @@ -1901,7 +1950,7 @@ Local + + + +

+ + + + +
+ + + + + + + + +
+ + + + + + + + + + + + + + +
+ +
+ + +
+

+ + Instructions + +

+
+
    +
  1. + Run V8 with + --prof --log-timer-events, + or alternatively,
    + Chrome with + + --no-sandbox --js-flags="--prof --noprof-lazy --log-timer-events + to produce v8.log. +
  2. +
  3. + Open + v8.log + on this page. Don't worry, it won't be uploaded anywhere. +
  4. +
  5. + Click "Start" to start number crunching. This will take a while. +
  6. +
  7. + Click "Show plot/profile" to switch between the statistical profile and + the timeline plot.
    + C++ items are missing in the statistical profile because symbol + information is not available.
    + Consider using the + + command-line utility + instead. +
  8. +
+
+ +
+

+ + Credits + +

+
+ +
+
+ +
+ + diff --git a/deps/v8/tools/profviz/profviz.js b/deps/v8/tools/profviz/profviz.js new file mode 100644 index 0000000000..7af12adc7e --- /dev/null +++ b/deps/v8/tools/profviz/profviz.js @@ -0,0 +1,287 @@ +// Copyright 2013 the V8 project authors. All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +var worker_scripts = [ + "../csvparser.js", + "../splaytree.js", + "../codemap.js", + "../consarray.js", + "../profile.js", + "../profile_view.js", + "../logreader.js", + "../tickprocessor.js", + "composer.js", + "gnuplot-4.6.3-emscripten.js" +]; + + +function plotWorker() { + var worker = null; + + var delegateList = { + "log" : log, + "error" : logError, + "displayplot" : displayplot, + "displayprof" : displayprof, + "range" : setRange, + "script" : scriptLoaded + } + + function initialize() { + ui.freeze(); + worker = new Worker("worker.js"); + running = false; + + worker.postMessage({ "call" : "load scripts", + "args" : worker_scripts }); + + worker.addEventListener("message", function(event) { + var call = delegateList[event.data["call"]]; + call(event.data["args"]); + }); + } + + function scriptLoaded() { + ui.thaw(); + } + + // Public methods. + this.run = function(filename, + resx, resy, + distortion, + range_start, range_end) { + var args = { + 'file' : filename, + 'resx' : resx, + 'resy' : resy, + 'distortion' : distortion, + 'range_start' : range_start, + 'range_end' : range_end + } + worker.postMessage({ 'call' : 'run', 'args' : args }); + } + + this.reset = function() { + if (worker) worker.terminate(); + initialize(); + } +} + + +function UIWrapper() { + var input_elements = ["range_start", + "range_end", + "distortion", + "start", + "file"]; + + var other_elements = ["log", + "plot", + "prof", + "instructions", + "credits", + "toggledisplay"]; + + for (var i in input_elements) { + var id = input_elements[i]; + this[id] = document.getElementById(id); + } + + for (var i in other_elements) { + var id = other_elements[i]; + this[id] = document.getElementById(id); + } + + this.freeze = function() { + this.plot.style.webkitFilter = "grayscale(1)"; + this.prof.style.color = "#bbb"; + for (var i in input_elements) { + this[input_elements[i]].disabled = true; + } + } + + this.thaw = function() { + this.plot.style.webkitFilter = ""; + this.prof.style.color = "#000"; + for (var i in input_elements) { + this[input_elements[i]].disabled = false; + } + } + + this.reset = function() { + this.thaw(); + this.log.value = ""; + this.range_start.value = "automatic"; + this.range_end.value = "automatic"; + this.toggle("plot"); + this.plot.src = ""; + this.prof.value = ""; + } + + this.toggle = function(mode) { + if (mode) this.toggledisplay.next_mode = mode; + if (this.toggledisplay.next_mode == "plot") { + this.toggledisplay.next_mode = "prof"; + this.plot.style.display = "block"; + this.prof.style.display = "none"; + this.toggledisplay.innerHTML = "Show profile"; + } else { + this.toggledisplay.next_mode = "plot"; + this.plot.style.display = "none"; + this.prof.style.display = "block"; + this.toggledisplay.innerHTML = "Show plot"; + } + } + + this.info = function(field) { + var down_arrow = "\u25bc"; + var right_arrow = "\u25b6"; + if (field && this[field].style.display != "none") field = null; // Toggle. + this.credits.style.display = "none"; + this.instructions.style.display = "none"; + if (!field) return; + this[field].style.display = "block"; + } +} + + +function log(text) { + ui.log.value += text; + ui.log.scrollTop = ui.log.scrollHeight; +} + + +function logError(text) { + if (ui.log.value.length > 0 && + ui.log.value[ui.log.value.length-1] != "\n") { + ui.log.value += "\n"; + } + ui.log.value += "ERROR: " + text + "\n"; + ui.log.scrollTop = ui.log.scrollHeight; + error_logged = true; +} + + +function displayplot(args) { + if (error_logged) { + log("Plot failed.\n\n"); + } else { + log("Displaying plot. Total time: " + + (Date.now() - timer) / 1000 + "ms.\n\n"); + var blob = new Blob([new Uint8Array(args.contents).buffer], + { "type" : "image\/svg+xml" }); + window.URL = window.URL || window.webkitURL; + ui.plot.src = window.URL.createObjectURL(blob); + } + + ui.thaw(); + ui.toggle("plot"); +} + + +function displayprof(args) { + if (error_logged) return; + ui.prof.value = args; + this.prof.style.color = ""; + ui.toggle("prof"); +} + + +function start(event) { + error_logged = false; + ui.freeze(); + + try { + var file = getSelectedFile(); + var distortion = getDistortion(); + var range = getRange(); + } catch (e) { + logError(e.message); + display(); + return; + } + + timer = Date.now(); + worker.run(file, kResX, kResY, distortion, range[0], range[1]); +} + + +function getSelectedFile() { + var file = ui.file.files[0]; + if (!file) throw Error("No valid file selected."); + if (!file.type.toString().match(/text/)) { + throw Error("'" + escape(file.name) + "' is not a text file."); + } + return file; +} + + +function getDistortion() { + var input_distortion = + parseInt(ui.distortion.value, 10); + if (isNaN(input_distortion)) { + input_distortion = ui.distortion.value = 4500; + } + return input_distortion / 1000000; +} + + +function getRange() { + var input_start = + parseInt(ui.range_start.value, 10); + if (isNaN(input_start)) input_start = undefined; + var input_end = + parseInt(ui.range_end.value, 10); + if (isNaN(input_end)) input_end = undefined; + return [input_start, input_end]; +} + + +function setRange(args) { + ui.range_start.value = args.start.toFixed(1); + ui.range_end.value = args.end.toFixed(1); +} + + +function onload() { + kResX = 1200; + kResY = 600; + error_logged = false; + ui = new UIWrapper(); + ui.reset(); + ui.info(null); + worker = new plotWorker(); + worker.reset(); +} + + +var kResX; +var kResY; +var error_logged; +var ui; +var worker; +var timer; diff --git a/deps/v8/tools/profviz/stdio.js b/deps/v8/tools/profviz/stdio.js new file mode 100644 index 0000000000..e8001494c9 --- /dev/null +++ b/deps/v8/tools/profviz/stdio.js @@ -0,0 +1,52 @@ +// Copyright 2013 the V8 project authors. All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +var processor = new ArgumentsProcessor(arguments); +var distortion_per_entry = 0; +var range_start_override = undefined; +var range_end_override = undefined; + +if (!processor.parse()) processor.printUsageAndExit();; +var result = processor.result(); +var distortion = parseInt(result.distortion); +if (isNaN(distortion)) processor.printUsageAndExit();; +// Convert picoseconds to milliseconds. +distortion_per_entry = distortion / 1000000; +var rangelimits = result.range.split(","); +var range_start = parseInt(rangelimits[0]); +var range_end = parseInt(rangelimits[1]); +if (!isNaN(range_start)) range_start_override = range_start; +if (!isNaN(range_end)) range_end_override = range_end; + +var kResX = 1600; +var kResY = 600; +var psc = new PlotScriptComposer(kResX, kResY); +psc.collectData(readline, distortion_per_entry); +psc.findPlotRange(range_start_override, range_end_override); +print("set terminal pngcairo size " + kResX + "," + kResY + + " enhanced font 'Helvetica,10'"); +psc.assembleOutput(print); diff --git a/deps/v8/tools/profviz/worker.js b/deps/v8/tools/profviz/worker.js new file mode 100644 index 0000000000..60a557f982 --- /dev/null +++ b/deps/v8/tools/profviz/worker.js @@ -0,0 +1,167 @@ +// Copyright 2013 the V8 project authors. All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +var delegateList = { + "load scripts" : load_scripts, + "run" : run, +} + +self.addEventListener("message", function(event) { + var call = delegateList[event.data["call"]]; + var result = call(event.data["args"]); +}, false); + + +function log(text) { + self.postMessage({ "call" : "log", "args" : text }); +} + + +function displayplot(content) { + self.postMessage({ "call" : "displayplot", "args" : content}); +} + + +function displayprof(content) { + self.postMessage({ "call" : "displayprof", "args" : content}); +} + + +function setRange(start, end) { + self.postMessage({ "call" : "range", + "args" : { "start" : start, "end" : end } }); +} + + +function time(name, fun) { + log(name + "..."); + var start = Date.now(); + fun(); + log(" took " + (Date.now() - start) / 1000 + "s.\n"); +} + + +function load_scripts(scripts) { + time("Loading scripts", + function() { for (var i in scripts) importScripts(scripts[i]); }); + self.postMessage({ "call" : "script" }); +} + + +function run(args) { + var file = args["file"]; + var resx = args["resx"]; + var resy = args["resy"]; + var distortion = args["distortion"]; + var range_start_override = args["range_start"]; + var range_end_override = args["range_end"]; + + var reader = new FileReaderSync(); + var content_lines; + + time("Reading log file (" + (file.size / 1024).toFixed(1) + " kB)", + function() { + var content = reader.readAsText(file); + content_lines = content.split("\n"); + }); + + time("Producing statistical profile", + function() { + var profile = ""; + print = function(text) { profile += text + "\n"; }; + // Dummy entries provider, as we cannot call nm. + var entriesProvider = new UnixCppEntriesProvider("", ""); + var targetRootFS = ""; + var separateIc = false; + var callGraphSize = 5; + var ignoreUnknown = true; + var stateFilter = null; + var snapshotLogProcessor = null; + var range = range_start_override + "," + range_end_override; + + var tickProcessor = new TickProcessor(entriesProvider, + separateIc, + callGraphSize, + ignoreUnknown, + stateFilter, + snapshotLogProcessor, + distortion, + range); + for (var i = 0; i < content_lines.length; i++) { + tickProcessor.processLogLine(content_lines[i]); + } + tickProcessor.printStatistics(); + displayprof(profile); + }); + + var input_file_name = "input_temp"; + var output_file_name = "output.svg"; + + var psc = new PlotScriptComposer(resx, resy); + var objects = 0; + + time("Collecting events (" + content_lines.length + " entries)", + function() { + var line_cursor = 0; + var input = function() { return content_lines[line_cursor++]; }; + psc.collectData(input, distortion); + psc.findPlotRange(range_start_override, + range_end_override, + setRange); + }); + + time("Assembling plot script", + function() { + var plot_script = ""; + var output = function(text) { plot_script += text + "\n"; }; + output("set terminal svg size " + resx + "," + resy + + " enhanced font \"Helvetica,10\""); + output("set output \""+ output_file_name + "\""); + objects = psc.assembleOutput(output); + if (FS.findObject(input_file_name)) { + FS.deleteFile(input_file_name); + } + var arrc = Module["intArrayFromString"](plot_script, true); + FS.createDataFile("/", input_file_name, arrc); + }); + + time("Running gnuplot (" + objects + " objects)", + function() { Module.run([input_file_name]); }); + + displayplot(FS.findObject(output_file_name)); +} + + +var Module = { + "noInitialRun": true, + print: function(text) { + self.postMessage({"call": "error", "args": text}); + }, + printErr: function(text) { + self.postMessage({"call": "error", "args": text}); + }, +}; diff --git a/deps/v8/tools/testrunner/local/execution.py b/deps/v8/tools/testrunner/local/execution.py index 0f52616d97..4453c08451 100644 --- a/deps/v8/tools/testrunner/local/execution.py +++ b/deps/v8/tools/testrunner/local/execution.py @@ -138,14 +138,15 @@ class Runner(object): self.indicator.AboutToRun(test) test.output = result[1] test.duration = result[2] - if test.suite.HasUnexpectedOutput(test): + has_unexpected_output = test.suite.HasUnexpectedOutput(test) + if has_unexpected_output: self.failed.append(test) if test.output.HasCrashed(): self.crashed += 1 else: self.succeeded += 1 self.remaining -= 1 - self.indicator.HasRun(test) + self.indicator.HasRun(test, has_unexpected_output) except KeyboardInterrupt: pool.terminate() pool.join() diff --git a/deps/v8/tools/testrunner/local/old_statusfile.py b/deps/v8/tools/testrunner/local/old_statusfile.py index a16941b83b..a9a62036ec 100644 --- a/deps/v8/tools/testrunner/local/old_statusfile.py +++ b/deps/v8/tools/testrunner/local/old_statusfile.py @@ -386,7 +386,7 @@ class ConvertNotation(object): self.init = True def CloseGlobal(self): - if not self.init: return + if not self.init: self.OpenGlobal() print >> self.out, "]" self.init = False diff --git a/deps/v8/tools/testrunner/local/progress.py b/deps/v8/tools/testrunner/local/progress.py index c13c0eb54e..a663be23eb 100644 --- a/deps/v8/tools/testrunner/local/progress.py +++ b/deps/v8/tools/testrunner/local/progress.py @@ -57,7 +57,7 @@ class ProgressIndicator(object): def AboutToRun(self, test): pass - def HasRun(self, test): + def HasRun(self, test, has_unexpected_output): pass def PrintFailureHeader(self, test): @@ -111,8 +111,8 @@ class VerboseProgressIndicator(SimpleProgressIndicator): print 'Starting %s...' % test.GetLabel() sys.stdout.flush() - def HasRun(self, test): - if test.suite.HasUnexpectedOutput(test): + def HasRun(self, test, has_unexpected_output): + if has_unexpected_output: if test.output.HasCrashed(): outcome = 'CRASH' else: @@ -124,11 +124,11 @@ class VerboseProgressIndicator(SimpleProgressIndicator): class DotsProgressIndicator(SimpleProgressIndicator): - def HasRun(self, test): + def HasRun(self, test, has_unexpected_output): total = self.runner.succeeded + len(self.runner.failed) if (total > 1) and (total % 50 == 1): sys.stdout.write('\n') - if test.suite.HasUnexpectedOutput(test): + if has_unexpected_output: if test.output.HasCrashed(): sys.stdout.write('C') sys.stdout.flush() @@ -159,8 +159,8 @@ class CompactProgressIndicator(ProgressIndicator): def AboutToRun(self, test): self.PrintProgress(test.GetLabel()) - def HasRun(self, test): - if test.suite.HasUnexpectedOutput(test): + def HasRun(self, test, has_unexpected_output): + if has_unexpected_output: self.ClearLine(self.last_status_length) self.PrintFailureHeader(test) stdout = test.output.stdout.strip() @@ -255,10 +255,10 @@ class JUnitTestProgressIndicator(ProgressIndicator): def AboutToRun(self, test): self.progress_indicator.AboutToRun(test) - def HasRun(self, test): - self.progress_indicator.HasRun(test) + def HasRun(self, test, has_unexpected_output): + self.progress_indicator.HasRun(test, has_unexpected_output) fail_text = "" - if test.suite.HasUnexpectedOutput(test): + if has_unexpected_output: stdout = test.output.stdout.strip() if len(stdout): fail_text += "stdout:\n%s\n" % stdout diff --git a/deps/v8/tools/testrunner/network/endpoint.py b/deps/v8/tools/testrunner/network/endpoint.py index 5dc2b9f902..d0950cf5a6 100644 --- a/deps/v8/tools/testrunner/network/endpoint.py +++ b/deps/v8/tools/testrunner/network/endpoint.py @@ -50,7 +50,7 @@ class EndpointProgress(progress.ProgressIndicator): self.senderthread = threading.Thread(target=self._SenderThread) self.senderthread.start() - def HasRun(self, test): + def HasRun(self, test, has_unexpected_output): # The runners that call this have a lock anyway, so this is safe. self.results_queue.append(test) @@ -119,6 +119,6 @@ def Execute(workspace, ctx, tests, sock, server): else: message = "%s" % e compression.Send([[-1, message]], sock) - progress_indicator.HasRun(None) # Sentinel to signal the end. + progress_indicator.HasRun(None, None) # Sentinel to signal the end. progress_indicator.sender_lock.acquire() # Released when sending is done. progress_indicator.sender_lock.release() diff --git a/deps/v8/tools/testrunner/network/network_execution.py b/deps/v8/tools/testrunner/network/network_execution.py index ddb59e60b7..0f53a6bb64 100644 --- a/deps/v8/tools/testrunner/network/network_execution.py +++ b/deps/v8/tools/testrunner/network/network_execution.py @@ -204,14 +204,15 @@ class NetworkedRunner(execution.Runner): self.context.arch, self.context.mode], self.local_socket) self.indicator.AboutToRun(test) - if test.suite.HasUnexpectedOutput(test): + has_unexpected_output = test.suite.HasUnexpectedOutput(test) + if has_unexpected_output: self.failed.append(test) if test.output.HasCrashed(): self.crashed += 1 else: self.succeeded += 1 self.remaining -= 1 - self.indicator.HasRun(test) + self.indicator.HasRun(test, has_unexpected_output) rec.Advance() peer.runtime = time.time() - start_time except KeyboardInterrupt: diff --git a/deps/v8/tools/tickprocessor.js b/deps/v8/tools/tickprocessor.js index abb2f2d7ee..967bd3c5b7 100644 --- a/deps/v8/tools/tickprocessor.js +++ b/deps/v8/tools/tickprocessor.js @@ -169,7 +169,7 @@ function TickProcessor( 'snapshot-pos': { parsers: [parseInt, parseInt], processor: this.processSnapshotPosition }, 'tick': { - parsers: [parseInt, parseInt, parseInt, parseInt, + parsers: [parseInt, parseInt, parseInt, parseInt, parseInt, 'var-args'], processor: this.processTick }, 'heap-sample-begin': { parsers: [null, null, parseInt], @@ -204,7 +204,7 @@ function TickProcessor( // Convert picoseconds to nanoseconds. this.distortion_per_entry = isNaN(distortion) ? 0 : (distortion / 1000); this.distortion = 0; - var rangelimits = range.split(","); + var rangelimits = range ? range.split(",") : []; var range_start = parseInt(rangelimits[0]); var range_end = parseInt(rangelimits[1]); // Convert milliseconds to nanoseconds. @@ -365,7 +365,6 @@ TickProcessor.prototype.includeTick = function(vmState) { }; TickProcessor.prototype.processTick = function(pc, - sp, ns_since_start, is_external_callback, tos_or_external_callback, diff --git a/deps/v8/tools/v8-info.sh b/deps/v8/tools/v8-info.sh new file mode 100755 index 0000000000..1f25d147a5 --- /dev/null +++ b/deps/v8/tools/v8-info.sh @@ -0,0 +1,161 @@ +#!/bin/bash +# Copyright 2013 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +########## Global variable definitions + +BASE_URL="https://code.google.com/p/v8/source/list" +VERSION="src/version.cc" +MAJOR="MAJOR_VERSION" +MINOR="MINOR_VERSION" +BUILD="BUILD_NUMBER" +PATCH="PATCH_LEVEL" + +V8="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +########## Function definitions + +cd $V8 + +usage() { +cat << EOF +usage: $0 OPTIONS + +Fetches V8 revision information from a git-svn checkout. + +OPTIONS: + -h Show this message. + + -i Print revision info for all branches matching the V8 version. + Example usage: $0 -i 3.19.10$ + Output format: [Git hash] [SVN revision] [V8 version] + + -v Print the V8 version tag for a trunk SVN revision. + Example usage: $0 -v 14981 + Output format: [V8 version] + + -m Print all patches that were merged to the specified V8 branch. + Example usage: $0 -m 3.18 + Output format: [V8 version] [SVN revision] [SVN patch merged]*. + + -p Print all patches merged to a specific V8 point-release. + Example usage: $0 -p 3.19.12.1 + Output format: [SVN patch merged]* + + -u Print a link to all SVN revisions between two V8 revision tags. + Example usage: $0 -u 3.19.10:3.19.11 +EOF +} + +tags() { + git for-each-ref --format="%(objectname) %(refname:short)" refs/remotes/svn +} + +tag_revision() { + cut -d" " -f1 +} + +tag_log() { + git log --format="%h %ci %ce %s" -1 $1 +} + +v8_hash() { + tags | grep "svn/tags/$1$" | tag_revision +} + +point_merges() { + echo $1 | grep -o "r[0-9]\+" +} + +hash_to_svn() { + git svn log -1 --oneline $1 | cut -d" " -f1 +} + +tag_version() { + tags | grep svn/tags/$1 | while read tag; do + id=$(echo $tag | grep -o "[^/]*$") + rev=$(echo $tag | tag_revision) + svn=$(hash_to_svn $rev) + echo $rev $svn $id + done +} + +svn_rev() { + git svn find-rev $2 svn/$1 +} + +v8_rev() { + cd $(git rev-parse --show-toplevel) + rev=$(git show $1:$VERSION \ + | grep "#define" \ + | grep "$MAJOR\|$MINOR\|$BUILD\|$PATCH" \ + | grep -o "[0-9]\+$" \ + | tr "\\n" ".") + echo ${rev%?} +} + +merges_to_branch() { + git cherry -v svn/trunk svn/$1 | while read merge; do + h=$(echo $merge | cut -d" " -f2) + svn=$(svn_rev $1 $h) + merges=$(echo $merge | grep -o "r[0-9]\+") + rev=$(v8_rev $h) + echo $rev r$svn $merges + done +} + +url_for() { + first=$(svn_rev trunk $(v8_hash $(echo $1 | cut -d":" -f1))) + last=$(svn_rev trunk $(v8_hash $(echo $1 | cut -d":" -f2))) + num=$[ $last - $first] + echo "$BASE_URL?num=$num&start=$last" +} + +########## Option parsing + +while getopts ":hi:v:m:p:u:" OPTION ; do + case $OPTION in + h) usage + exit 0 + ;; + i) tag_version $OPTARG + ;; + v) v8_rev $(svn_rev trunk r$OPTARG) + ;; + m) merges_to_branch $OPTARG + ;; + p) echo $(point_merges "$(tag_log $(v8_hash $OPTARG)^1)") + ;; + u) url_for $OPTARG + ;; + ?) echo "Illegal option: -$OPTARG" + usage + exit 1 + ;; + esac +done diff --git a/deps/v8/tools/v8-rolls.sh b/deps/v8/tools/v8-rolls.sh new file mode 100755 index 0000000000..590e05c1f9 --- /dev/null +++ b/deps/v8/tools/v8-rolls.sh @@ -0,0 +1,120 @@ +#!/bin/bash +# Copyright 2013 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +########## Global variable definitions + +DEPS_STRING='"v8_revision":' +INFO=tools/v8-info.sh + +V8="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" + +########## Function definitions + +usage() { +cat << EOF +usage: $0 OPTIONS + +Run in chromium/src to get information about V8 rolls. + +OPTIONS: + -h Show this message. + -n Number of rolls to print information about. + -s Chromium git hash to start printing V8 information about. +EOF +} + +v8_line() { + git show $1:DEPS | grep -n $DEPS_STRING | cut -d":" -f1 +} + +v8_info() { + git blame -L$(v8_line $1),+1 $1 DEPS | grep $DEPS_STRING +} + +v8_svn() { + sed -e 's/^.*"\([0-9]\+\)",$/\1/' +} + +v8_roll() { + cut -d" " -f1 +} + +find_rev() { + git svn find-rev $1 +} + +msg() { + msg=$(git log --format="%h %ci %ce" -1 $1) + h=$(echo $msg | cut -d" " -f1) + d=$(echo $msg | cut -d" " -f2) + t=$(echo $msg | cut -d" " -f3) + a=$(echo $msg | cut -d" " -f5) + a1=$(echo $a | cut -d"@" -f1) + a2=$(echo $a | cut -d"@" -f2) + echo $h $d $t $a1@$a2 +} + +v8_revision() { + cd $V8 + $INFO -v $1 +} + +rolls() { + roll=$2 + for i in $(seq 1 $1); do + info=$(v8_info $roll) + roll=$(echo $info | v8_roll $roll) + trunk=$(echo $info | v8_svn $roll) + echo "$(v8_revision $trunk) $trunk $(find_rev $roll) $(msg $roll)" + roll=$roll^1 + done +} + +########## Option parsing + +REVISIONS=1 +START=HEAD + +while getopts ":hn:s:" OPTION ; do + case $OPTION in + h) usage + exit 0 + ;; + n) REVISIONS=$OPTARG + ;; + s) START=$OPTARG + ;; + ?) echo "Illegal option: -$OPTARG" + usage + exit 1 + ;; + esac +done + +rolls $REVISIONS $START