From 3a280b2034e3ea438cd3a2e7acd1a4cd40112ac5 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Mon, 12 May 2014 05:07:46 +0200 Subject: [PATCH] deps: upgrade v8 to 3.26.33 Signed-off-by: Fedor Indutny --- deps/v8/.DEPS.git | 48 + deps/v8/.gitignore | 4 + deps/v8/BUILD.gn | 873 +++ deps/v8/ChangeLog | 305 + deps/v8/DEPS | 2 +- deps/v8/Makefile | 30 +- deps/v8/Makefile.android | 8 +- deps/v8/Makefile.nacl | 3 + deps/v8/OWNERS | 1 + deps/v8/PRESUBMIT.py | 7 + deps/v8/build/android.gypi | 2 +- deps/v8/build/features.gypi | 8 +- deps/v8/build/gyp_v8 | 3 +- deps/v8/build/standalone.gypi | 11 +- deps/v8/build/toolchain.gypi | 338 +- deps/v8/include/v8-debug.h | 62 +- deps/v8/include/v8-platform.h | 27 +- deps/v8/include/v8-profiler.h | 66 +- deps/v8/include/v8-testing.h | 27 +- deps/v8/include/v8-util.h | 345 +- deps/v8/include/v8.h | 239 +- deps/v8/include/v8config.h | 27 +- deps/v8/include/v8stdint.h | 27 +- deps/v8/samples/lineprocessor.cc | 14 - deps/v8/src/accessors.cc | 1227 +-- deps/v8/src/accessors.h | 147 +- deps/v8/src/allocation-site-scopes.cc | 29 +- deps/v8/src/allocation-site-scopes.h | 27 +- deps/v8/src/allocation-tracker.cc | 38 +- deps/v8/src/allocation-tracker.h | 27 +- deps/v8/src/allocation.cc | 27 +- deps/v8/src/allocation.h | 27 +- deps/v8/src/api.cc | 1066 ++- deps/v8/src/api.h | 35 +- deps/v8/src/apinatives.js | 61 +- deps/v8/src/arguments.cc | 27 +- deps/v8/src/arguments.h | 38 +- deps/v8/src/arm/assembler-arm-inl.h | 14 +- deps/v8/src/arm/assembler-arm.cc | 80 +- deps/v8/src/arm/assembler-arm.h | 27 +- deps/v8/src/arm/builtins-arm.cc | 65 +- deps/v8/src/arm/code-stubs-arm.cc | 929 +-- deps/v8/src/arm/code-stubs-arm.h | 52 +- deps/v8/src/arm/codegen-arm.cc | 101 +- deps/v8/src/arm/codegen-arm.h | 27 +- deps/v8/src/arm/constants-arm.cc | 27 +- deps/v8/src/arm/constants-arm.h | 27 +- deps/v8/src/arm/cpu-arm.cc | 37 +- deps/v8/src/arm/debug-arm.cc | 68 +- deps/v8/src/arm/deoptimizer-arm.cc | 32 +- deps/v8/src/arm/disasm-arm.cc | 29 +- deps/v8/src/arm/frames-arm.cc | 27 +- deps/v8/src/arm/frames-arm.h | 27 +- deps/v8/src/arm/full-codegen-arm.cc | 279 +- deps/v8/src/arm/ic-arm.cc | 27 +- deps/v8/src/arm/lithium-arm.cc | 249 +- deps/v8/src/arm/lithium-arm.h | 69 +- deps/v8/src/arm/lithium-codegen-arm.cc | 412 +- deps/v8/src/arm/lithium-codegen-arm.h | 38 +- deps/v8/src/arm/lithium-gap-resolver-arm.cc | 98 +- deps/v8/src/arm/lithium-gap-resolver-arm.h | 31 +- deps/v8/src/arm/macro-assembler-arm.cc | 153 +- deps/v8/src/arm/macro-assembler-arm.h | 46 +- deps/v8/src/arm/regexp-macro-assembler-arm.cc | 31 +- deps/v8/src/arm/regexp-macro-assembler-arm.h | 27 +- deps/v8/src/arm/simulator-arm.cc | 33 +- deps/v8/src/arm/simulator-arm.h | 27 +- deps/v8/src/arm/stub-cache-arm.cc | 92 +- deps/v8/src/arm64/assembler-arm64-inl.h | 49 +- deps/v8/src/arm64/assembler-arm64.cc | 178 +- deps/v8/src/arm64/assembler-arm64.h | 91 +- deps/v8/src/arm64/builtins-arm64.cc | 67 +- deps/v8/src/arm64/code-stubs-arm64.cc | 1045 +-- deps/v8/src/arm64/code-stubs-arm64.h | 78 +- deps/v8/src/arm64/codegen-arm64.cc | 69 +- deps/v8/src/arm64/codegen-arm64.h | 27 +- deps/v8/src/arm64/constants-arm64.h | 34 +- deps/v8/src/arm64/cpu-arm64.cc | 113 +- deps/v8/src/arm64/cpu-arm64.h | 52 +- deps/v8/src/arm64/debug-arm64.cc | 67 +- deps/v8/src/arm64/decoder-arm64-inl.h | 27 +- deps/v8/src/arm64/decoder-arm64.cc | 27 +- deps/v8/src/arm64/decoder-arm64.h | 27 +- deps/v8/src/arm64/deoptimizer-arm64.cc | 86 +- deps/v8/src/arm64/disasm-arm64.cc | 30 +- deps/v8/src/arm64/disasm-arm64.h | 27 +- deps/v8/src/arm64/frames-arm64.cc | 27 +- deps/v8/src/arm64/frames-arm64.h | 27 +- deps/v8/src/arm64/full-codegen-arm64.cc | 307 +- deps/v8/src/arm64/ic-arm64.cc | 28 +- deps/v8/src/arm64/instructions-arm64.cc | 42 +- deps/v8/src/arm64/instructions-arm64.h | 46 +- deps/v8/src/arm64/instrument-arm64.cc | 27 +- deps/v8/src/arm64/instrument-arm64.h | 27 +- deps/v8/src/arm64/lithium-arm64.cc | 436 +- deps/v8/src/arm64/lithium-arm64.h | 175 +- deps/v8/src/arm64/lithium-codegen-arm64.cc | 771 +- deps/v8/src/arm64/lithium-codegen-arm64.h | 100 +- deps/v8/src/arm64/lithium-gap-resolver-arm64.cc | 27 +- deps/v8/src/arm64/lithium-gap-resolver-arm64.h | 27 +- deps/v8/src/arm64/macro-assembler-arm64-inl.h | 79 +- deps/v8/src/arm64/macro-assembler-arm64.cc | 336 +- deps/v8/src/arm64/macro-assembler-arm64.h | 141 +- deps/v8/src/arm64/regexp-macro-assembler-arm64.cc | 33 +- deps/v8/src/arm64/regexp-macro-assembler-arm64.h | 27 +- deps/v8/src/arm64/simulator-arm64.cc | 97 +- deps/v8/src/arm64/simulator-arm64.h | 28 +- deps/v8/src/arm64/stub-cache-arm64.cc | 96 +- deps/v8/src/arm64/utils-arm64.cc | 27 +- deps/v8/src/arm64/utils-arm64.h | 27 +- deps/v8/src/array-iterator.js | 15 +- deps/v8/src/array.js | 396 +- deps/v8/src/arraybuffer.js | 35 +- deps/v8/src/assembler.cc | 71 +- deps/v8/src/assembler.h | 37 +- deps/v8/src/assert-scope.h | 38 +- deps/v8/src/ast.cc | 62 +- deps/v8/src/ast.h | 131 +- deps/v8/src/atomicops.h | 30 +- deps/v8/src/atomicops_internals_arm64_gcc.h | 188 +- deps/v8/src/atomicops_internals_arm_gcc.h | 35 +- .../v8/src/atomicops_internals_atomicword_compat.h | 27 +- deps/v8/src/atomicops_internals_mac.h | 35 +- deps/v8/src/atomicops_internals_mips_gcc.h | 35 +- deps/v8/src/atomicops_internals_tsan.h | 35 +- deps/v8/src/atomicops_internals_x86_gcc.cc | 35 +- deps/v8/src/atomicops_internals_x86_gcc.h | 35 +- deps/v8/src/atomicops_internals_x86_msvc.h | 35 +- deps/v8/src/base/macros.h | 76 + deps/v8/src/bignum-dtoa.cc | 27 +- deps/v8/src/bignum-dtoa.h | 27 +- deps/v8/src/bignum.cc | 27 +- deps/v8/src/bignum.h | 27 +- deps/v8/src/bootstrapper.cc | 863 +-- deps/v8/src/bootstrapper.h | 53 +- deps/v8/src/builtins.cc | 542 +- deps/v8/src/builtins.h | 37 +- deps/v8/src/bytecodes-irregexp.h | 27 +- deps/v8/src/cached-powers.cc | 27 +- deps/v8/src/cached-powers.h | 27 +- deps/v8/src/char-predicates-inl.h | 27 +- deps/v8/src/char-predicates.h | 27 +- deps/v8/src/checks.cc | 29 +- deps/v8/src/checks.h | 27 +- deps/v8/src/circular-queue-inl.h | 27 +- deps/v8/src/circular-queue.h | 27 +- deps/v8/src/code-stubs-hydrogen.cc | 160 +- deps/v8/src/code-stubs.cc | 158 +- deps/v8/src/code-stubs.h | 588 +- deps/v8/src/code.h | 27 +- deps/v8/src/codegen.cc | 101 +- deps/v8/src/codegen.h | 68 +- deps/v8/src/collection.js | 87 +- deps/v8/src/compilation-cache.cc | 193 +- deps/v8/src/compilation-cache.h | 90 +- deps/v8/src/compiler-intrinsics.h | 27 +- deps/v8/src/compiler.cc | 194 +- deps/v8/src/compiler.h | 70 +- deps/v8/src/contexts.cc | 40 +- deps/v8/src/contexts.h | 67 +- deps/v8/src/conversions-inl.h | 31 +- deps/v8/src/conversions.cc | 111 +- deps/v8/src/conversions.h | 115 +- deps/v8/src/counters.cc | 97 +- deps/v8/src/counters.h | 424 +- deps/v8/src/cpu-profiler-inl.h | 27 +- deps/v8/src/cpu-profiler.cc | 75 +- deps/v8/src/cpu-profiler.h | 27 +- deps/v8/src/cpu.cc | 27 +- deps/v8/src/cpu.h | 32 +- deps/v8/src/d8-debug.cc | 31 +- deps/v8/src/d8-debug.h | 27 +- deps/v8/src/d8-posix.cc | 27 +- deps/v8/src/d8-readline.cc | 27 +- deps/v8/src/d8-windows.cc | 27 +- deps/v8/src/d8.cc | 108 +- deps/v8/src/d8.h | 47 +- deps/v8/src/d8.js | 27 +- deps/v8/src/data-flow.cc | 27 +- deps/v8/src/data-flow.h | 27 +- deps/v8/src/date.cc | 32 +- deps/v8/src/date.h | 27 +- deps/v8/src/date.js | 27 +- deps/v8/src/dateparser-inl.h | 27 +- deps/v8/src/dateparser.cc | 27 +- deps/v8/src/dateparser.h | 27 +- deps/v8/src/debug-agent.cc | 37 +- deps/v8/src/debug-agent.h | 30 +- deps/v8/src/debug-debugger.js | 64 +- deps/v8/src/debug.cc | 650 +- deps/v8/src/debug.h | 131 +- deps/v8/src/deoptimizer.cc | 268 +- deps/v8/src/deoptimizer.h | 45 +- deps/v8/src/disasm.h | 27 +- deps/v8/src/disassembler.cc | 27 +- deps/v8/src/disassembler.h | 27 +- deps/v8/src/diy-fp.cc | 27 +- deps/v8/src/diy-fp.h | 27 +- deps/v8/src/double.h | 27 +- deps/v8/src/dtoa.cc | 27 +- deps/v8/src/dtoa.h | 27 +- deps/v8/src/effects.h | 27 +- deps/v8/src/elements-kind.cc | 92 +- deps/v8/src/elements-kind.h | 27 +- deps/v8/src/elements.cc | 675 +- deps/v8/src/elements.h | 162 +- deps/v8/src/execution.cc | 385 +- deps/v8/src/execution.h | 144 +- .../src/extensions/externalize-string-extension.cc | 27 +- .../src/extensions/externalize-string-extension.h | 27 +- deps/v8/src/extensions/free-buffer-extension.cc | 27 +- deps/v8/src/extensions/free-buffer-extension.h | 27 +- deps/v8/src/extensions/gc-extension.cc | 27 +- deps/v8/src/extensions/gc-extension.h | 27 +- deps/v8/src/extensions/statistics-extension.cc | 27 +- deps/v8/src/extensions/statistics-extension.h | 27 +- .../v8/src/extensions/trigger-failure-extension.cc | 27 +- deps/v8/src/extensions/trigger-failure-extension.h | 27 +- deps/v8/src/factory.cc | 1794 +++-- deps/v8/src/factory.h | 385 +- deps/v8/src/fast-dtoa.cc | 27 +- deps/v8/src/fast-dtoa.h | 27 +- deps/v8/src/feedback-slots.h | 89 +- deps/v8/src/fixed-dtoa.cc | 27 +- deps/v8/src/fixed-dtoa.h | 27 +- deps/v8/src/flag-definitions.h | 60 +- deps/v8/src/flags.cc | 36 +- deps/v8/src/flags.h | 36 +- deps/v8/src/frames-inl.h | 27 +- deps/v8/src/frames.cc | 66 +- deps/v8/src/frames.h | 27 +- deps/v8/src/full-codegen.cc | 68 +- deps/v8/src/full-codegen.h | 56 +- deps/v8/src/func-name-inferrer.cc | 40 +- deps/v8/src/func-name-inferrer.h | 27 +- deps/v8/src/gdb-jit.cc | 36 +- deps/v8/src/gdb-jit.h | 27 +- deps/v8/src/generator.js | 27 +- deps/v8/src/global-handles.cc | 27 +- deps/v8/src/global-handles.h | 29 +- deps/v8/src/globals.h | 106 +- deps/v8/src/handles-inl.h | 45 +- deps/v8/src/handles.cc | 652 +- deps/v8/src/handles.h | 189 +- deps/v8/src/harmony-array.js | 73 +- deps/v8/src/harmony-math.js | 29 +- deps/v8/src/harmony-string.js | 39 +- deps/v8/src/hashmap.h | 32 +- deps/v8/src/heap-inl.h | 255 +- deps/v8/src/heap-profiler.cc | 27 +- deps/v8/src/heap-profiler.h | 27 +- deps/v8/src/heap-snapshot-generator-inl.h | 27 +- deps/v8/src/heap-snapshot-generator.cc | 195 +- deps/v8/src/heap-snapshot-generator.h | 48 +- deps/v8/src/heap.cc | 2595 ++----- deps/v8/src/heap.h | 939 +-- deps/v8/src/hydrogen-alias-analysis.h | 27 +- deps/v8/src/hydrogen-bce.cc | 27 +- deps/v8/src/hydrogen-bce.h | 27 +- deps/v8/src/hydrogen-bch.cc | 27 +- deps/v8/src/hydrogen-bch.h | 27 +- deps/v8/src/hydrogen-canonicalize.cc | 27 +- deps/v8/src/hydrogen-canonicalize.h | 27 +- deps/v8/src/hydrogen-check-elimination.cc | 200 +- deps/v8/src/hydrogen-check-elimination.h | 27 +- deps/v8/src/hydrogen-dce.cc | 27 +- deps/v8/src/hydrogen-dce.h | 27 +- deps/v8/src/hydrogen-dehoist.cc | 27 +- deps/v8/src/hydrogen-dehoist.h | 27 +- deps/v8/src/hydrogen-environment-liveness.cc | 43 +- deps/v8/src/hydrogen-environment-liveness.h | 30 +- deps/v8/src/hydrogen-escape-analysis.cc | 51 +- deps/v8/src/hydrogen-escape-analysis.h | 29 +- deps/v8/src/hydrogen-flow-engine.h | 27 +- deps/v8/src/hydrogen-gvn.cc | 27 +- deps/v8/src/hydrogen-gvn.h | 27 +- deps/v8/src/hydrogen-infer-representation.cc | 27 +- deps/v8/src/hydrogen-infer-representation.h | 27 +- deps/v8/src/hydrogen-infer-types.cc | 27 +- deps/v8/src/hydrogen-infer-types.h | 27 +- deps/v8/src/hydrogen-instructions.cc | 381 +- deps/v8/src/hydrogen-instructions.h | 330 +- deps/v8/src/hydrogen-load-elimination.cc | 31 +- deps/v8/src/hydrogen-load-elimination.h | 27 +- deps/v8/src/hydrogen-mark-deoptimize.cc | 27 +- deps/v8/src/hydrogen-mark-deoptimize.h | 27 +- deps/v8/src/hydrogen-mark-unreachable.cc | 27 +- deps/v8/src/hydrogen-mark-unreachable.h | 27 +- deps/v8/src/hydrogen-osr.cc | 27 +- deps/v8/src/hydrogen-osr.h | 27 +- deps/v8/src/hydrogen-range-analysis.cc | 43 +- deps/v8/src/hydrogen-range-analysis.h | 28 +- deps/v8/src/hydrogen-redundant-phi.cc | 27 +- deps/v8/src/hydrogen-redundant-phi.h | 27 +- deps/v8/src/hydrogen-removable-simulates.cc | 67 +- deps/v8/src/hydrogen-removable-simulates.h | 27 +- deps/v8/src/hydrogen-representation-changes.cc | 27 +- deps/v8/src/hydrogen-representation-changes.h | 27 +- deps/v8/src/hydrogen-sce.cc | 27 +- deps/v8/src/hydrogen-sce.h | 27 +- deps/v8/src/hydrogen-store-elimination.cc | 29 +- deps/v8/src/hydrogen-store-elimination.h | 27 +- deps/v8/src/hydrogen-uint32-analysis.cc | 27 +- deps/v8/src/hydrogen-uint32-analysis.h | 27 +- deps/v8/src/hydrogen.cc | 524 +- deps/v8/src/hydrogen.h | 51 +- deps/v8/src/i18n.cc | 328 +- deps/v8/src/i18n.h | 27 +- deps/v8/src/i18n.js | 204 +- deps/v8/src/ia32/assembler-ia32-inl.h | 4 - deps/v8/src/ia32/assembler-ia32.cc | 20 +- deps/v8/src/ia32/assembler-ia32.h | 16 +- deps/v8/src/ia32/builtins-ia32.cc | 75 +- deps/v8/src/ia32/code-stubs-ia32.cc | 876 +-- deps/v8/src/ia32/code-stubs-ia32.h | 53 +- deps/v8/src/ia32/codegen-ia32.cc | 74 +- deps/v8/src/ia32/codegen-ia32.h | 27 +- deps/v8/src/ia32/cpu-ia32.cc | 37 +- deps/v8/src/ia32/debug-ia32.cc | 69 +- deps/v8/src/ia32/deoptimizer-ia32.cc | 27 +- deps/v8/src/ia32/disasm-ia32.cc | 27 +- deps/v8/src/ia32/frames-ia32.cc | 27 +- deps/v8/src/ia32/frames-ia32.h | 27 +- deps/v8/src/ia32/full-codegen-ia32.cc | 278 +- deps/v8/src/ia32/ic-ia32.cc | 29 +- deps/v8/src/ia32/lithium-codegen-ia32.cc | 405 +- deps/v8/src/ia32/lithium-codegen-ia32.h | 36 +- deps/v8/src/ia32/lithium-gap-resolver-ia32.cc | 27 +- deps/v8/src/ia32/lithium-gap-resolver-ia32.h | 27 +- deps/v8/src/ia32/lithium-ia32.cc | 169 +- deps/v8/src/ia32/lithium-ia32.h | 85 +- deps/v8/src/ia32/macro-assembler-ia32.cc | 88 +- deps/v8/src/ia32/macro-assembler-ia32.h | 42 +- deps/v8/src/ia32/regexp-macro-assembler-ia32.cc | 29 +- deps/v8/src/ia32/regexp-macro-assembler-ia32.h | 27 +- deps/v8/src/ia32/simulator-ia32.cc | 27 +- deps/v8/src/ia32/simulator-ia32.h | 27 +- deps/v8/src/ia32/stub-cache-ia32.cc | 91 +- deps/v8/src/ic-inl.h | 33 +- deps/v8/src/ic.cc | 916 ++- deps/v8/src/ic.h | 226 +- deps/v8/src/icu_util.cc | 27 +- deps/v8/src/icu_util.h | 27 +- deps/v8/src/incremental-marking-inl.h | 31 +- deps/v8/src/incremental-marking.cc | 47 +- deps/v8/src/incremental-marking.h | 27 +- deps/v8/src/interface.cc | 27 +- deps/v8/src/interface.h | 27 +- deps/v8/src/interpreter-irregexp.cc | 27 +- deps/v8/src/interpreter-irregexp.h | 27 +- deps/v8/src/isolate-inl.h | 36 +- deps/v8/src/isolate.cc | 451 +- deps/v8/src/isolate.h | 226 +- deps/v8/src/json-parser.h | 75 +- deps/v8/src/json-stringifier.h | 250 +- deps/v8/src/json.js | 27 +- deps/v8/src/jsregexp-inl.h | 27 +- deps/v8/src/jsregexp.cc | 129 +- deps/v8/src/jsregexp.h | 60 +- deps/v8/src/lazy-instance.h | 37 +- deps/v8/src/libplatform/default-platform.cc | 34 +- deps/v8/src/libplatform/default-platform.h | 32 +- deps/v8/src/libplatform/task-queue.cc | 27 +- deps/v8/src/libplatform/task-queue.h | 30 +- deps/v8/src/libplatform/worker-thread.cc | 27 +- deps/v8/src/libplatform/worker-thread.h | 30 +- deps/v8/src/list-inl.h | 27 +- deps/v8/src/list.h | 27 +- deps/v8/src/lithium-allocator-inl.h | 27 +- deps/v8/src/lithium-allocator.cc | 42 +- deps/v8/src/lithium-allocator.h | 27 +- deps/v8/src/lithium-codegen.cc | 89 +- deps/v8/src/lithium-codegen.h | 38 +- deps/v8/src/lithium.cc | 57 +- deps/v8/src/lithium.h | 64 +- deps/v8/src/liveedit-debugger.js | 27 +- deps/v8/src/liveedit.cc | 409 +- deps/v8/src/liveedit.h | 206 +- deps/v8/src/log-inl.h | 27 +- deps/v8/src/log-utils.cc | 28 +- deps/v8/src/log-utils.h | 35 +- deps/v8/src/log.cc | 88 +- deps/v8/src/log.h | 31 +- deps/v8/src/macro-assembler.h | 27 +- deps/v8/src/macros.py | 11 +- deps/v8/src/mark-compact-inl.h | 27 +- deps/v8/src/mark-compact.cc | 292 +- deps/v8/src/mark-compact.h | 79 +- deps/v8/src/math.js | 39 +- deps/v8/src/messages.cc | 53 +- deps/v8/src/messages.h | 27 +- deps/v8/src/messages.js | 89 +- deps/v8/src/mips/assembler-mips-inl.h | 6 +- deps/v8/src/mips/assembler-mips.cc | 35 +- deps/v8/src/mips/assembler-mips.h | 29 +- deps/v8/src/mips/builtins-mips.cc | 81 +- deps/v8/src/mips/code-stubs-mips.cc | 928 +-- deps/v8/src/mips/code-stubs-mips.h | 60 +- deps/v8/src/mips/codegen-mips.cc | 427 +- deps/v8/src/mips/codegen-mips.h | 27 +- deps/v8/src/mips/constants-mips.cc | 27 +- deps/v8/src/mips/constants-mips.h | 48 +- deps/v8/src/mips/cpu-mips.cc | 37 +- deps/v8/src/mips/debug-mips.cc | 71 +- deps/v8/src/mips/deoptimizer-mips.cc | 29 +- deps/v8/src/mips/disasm-mips.cc | 27 +- deps/v8/src/mips/frames-mips.cc | 27 +- deps/v8/src/mips/frames-mips.h | 27 +- deps/v8/src/mips/full-codegen-mips.cc | 266 +- deps/v8/src/mips/ic-mips.cc | 29 +- deps/v8/src/mips/lithium-codegen-mips.cc | 367 +- deps/v8/src/mips/lithium-codegen-mips.h | 51 +- deps/v8/src/mips/lithium-gap-resolver-mips.cc | 27 +- deps/v8/src/mips/lithium-gap-resolver-mips.h | 27 +- deps/v8/src/mips/lithium-mips.cc | 249 +- deps/v8/src/mips/lithium-mips.h | 67 +- deps/v8/src/mips/macro-assembler-mips.cc | 161 +- deps/v8/src/mips/macro-assembler-mips.h | 44 +- deps/v8/src/mips/regexp-macro-assembler-mips.cc | 31 +- deps/v8/src/mips/regexp-macro-assembler-mips.h | 27 +- deps/v8/src/mips/simulator-mips.cc | 27 +- deps/v8/src/mips/simulator-mips.h | 27 +- deps/v8/src/mips/stub-cache-mips.cc | 94 +- deps/v8/src/mirror-debugger.js | 90 +- deps/v8/src/misc-intrinsics.h | 27 +- deps/v8/src/mksnapshot.cc | 348 +- deps/v8/src/msan.h | 37 +- deps/v8/src/natives.h | 27 +- deps/v8/src/object-observe.js | 82 +- deps/v8/src/objects-debug.cc | 164 +- deps/v8/src/objects-inl.h | 1355 ++-- deps/v8/src/objects-printer.cc | 110 +- deps/v8/src/objects-visiting-inl.h | 65 +- deps/v8/src/objects-visiting.cc | 306 +- deps/v8/src/objects-visiting.h | 41 +- deps/v8/src/objects.cc | 7921 +++++++++++--------- deps/v8/src/objects.h | 2503 ++++--- deps/v8/src/once.cc | 27 +- deps/v8/src/once.h | 27 +- deps/v8/src/optimizing-compiler-thread.cc | 27 +- deps/v8/src/optimizing-compiler-thread.h | 27 +- deps/v8/src/parser.cc | 664 +- deps/v8/src/parser.h | 176 +- deps/v8/src/platform-cygwin.cc | 29 +- deps/v8/src/platform-freebsd.cc | 28 +- deps/v8/src/platform-linux.cc | 28 +- deps/v8/src/platform-macos.cc | 29 +- deps/v8/src/platform-openbsd.cc | 28 +- deps/v8/src/platform-posix.cc | 68 +- deps/v8/src/platform-qnx.cc | 28 +- deps/v8/src/platform-solaris.cc | 28 +- deps/v8/src/platform-win32.cc | 95 +- deps/v8/src/platform.h | 38 +- deps/v8/src/platform/condition-variable.cc | 27 +- deps/v8/src/platform/condition-variable.h | 27 +- deps/v8/src/platform/elapsed-timer.h | 27 +- deps/v8/src/platform/mutex.cc | 27 +- deps/v8/src/platform/mutex.h | 27 +- deps/v8/src/platform/semaphore.cc | 27 +- deps/v8/src/platform/semaphore.h | 27 +- deps/v8/src/platform/socket.cc | 27 +- deps/v8/src/platform/socket.h | 27 +- deps/v8/src/platform/time.cc | 27 +- deps/v8/src/platform/time.h | 27 +- deps/v8/src/preparse-data-format.h | 37 +- deps/v8/src/preparse-data.cc | 154 +- deps/v8/src/preparse-data.h | 104 +- deps/v8/src/preparser.cc | 59 +- deps/v8/src/preparser.h | 262 +- deps/v8/src/prettyprinter.cc | 27 +- deps/v8/src/prettyprinter.h | 27 +- deps/v8/src/profile-generator-inl.h | 27 +- deps/v8/src/profile-generator.cc | 45 +- deps/v8/src/profile-generator.h | 43 +- deps/v8/src/promise.js | 69 +- deps/v8/src/property-details-inl.h | 29 +- deps/v8/src/property-details.h | 30 +- deps/v8/src/property.cc | 70 +- deps/v8/src/property.h | 272 +- deps/v8/src/proxy.js | 27 +- deps/v8/src/qnx-math.h | 27 +- deps/v8/src/regexp-macro-assembler-irregexp-inl.h | 27 +- deps/v8/src/regexp-macro-assembler-irregexp.cc | 27 +- deps/v8/src/regexp-macro-assembler-irregexp.h | 27 +- deps/v8/src/regexp-macro-assembler-tracer.cc | 27 +- deps/v8/src/regexp-macro-assembler-tracer.h | 27 +- deps/v8/src/regexp-macro-assembler.cc | 27 +- deps/v8/src/regexp-macro-assembler.h | 27 +- deps/v8/src/regexp-stack.cc | 27 +- deps/v8/src/regexp-stack.h | 27 +- deps/v8/src/regexp.js | 30 +- deps/v8/src/rewriter.cc | 27 +- deps/v8/src/rewriter.h | 27 +- deps/v8/src/runtime-profiler.cc | 37 +- deps/v8/src/runtime-profiler.h | 27 +- deps/v8/src/runtime.cc | 5366 ++++++------- deps/v8/src/runtime.h | 165 +- deps/v8/src/runtime.js | 29 +- deps/v8/src/safepoint-table.cc | 27 +- deps/v8/src/safepoint-table.h | 27 +- deps/v8/src/sampler.cc | 28 +- deps/v8/src/sampler.h | 28 +- deps/v8/src/scanner-character-streams.cc | 29 +- deps/v8/src/scanner-character-streams.h | 28 +- deps/v8/src/scanner.cc | 45 +- deps/v8/src/scanner.h | 29 +- deps/v8/src/scopeinfo.cc | 126 +- deps/v8/src/scopeinfo.h | 35 +- deps/v8/src/scopes.cc | 33 +- deps/v8/src/scopes.h | 27 +- deps/v8/src/serialize.cc | 149 +- deps/v8/src/serialize.h | 66 +- deps/v8/src/simulator.h | 27 +- deps/v8/src/small-pointer-list.h | 27 +- deps/v8/src/smart-pointers.h | 27 +- deps/v8/src/snapshot-common.cc | 27 +- deps/v8/src/snapshot-empty.cc | 27 +- deps/v8/src/snapshot.h | 27 +- deps/v8/src/spaces-inl.h | 33 +- deps/v8/src/spaces.cc | 228 +- deps/v8/src/spaces.h | 153 +- deps/v8/src/splay-tree-inl.h | 27 +- deps/v8/src/splay-tree.h | 27 +- deps/v8/src/store-buffer-inl.h | 27 +- deps/v8/src/store-buffer.cc | 68 +- deps/v8/src/store-buffer.h | 27 +- deps/v8/src/string-search.cc | 27 +- deps/v8/src/string-search.h | 27 +- deps/v8/src/string-stream.cc | 38 +- deps/v8/src/string-stream.h | 59 +- deps/v8/src/string.js | 37 +- deps/v8/src/strtod.cc | 27 +- deps/v8/src/strtod.h | 27 +- deps/v8/src/stub-cache.cc | 126 +- deps/v8/src/stub-cache.h | 45 +- deps/v8/src/sweeper-thread.cc | 36 +- deps/v8/src/sweeper-thread.h | 30 +- deps/v8/src/symbol.js | 27 +- deps/v8/src/third_party/vtune/vtune-jit.cc | 7 +- deps/v8/src/token.cc | 27 +- deps/v8/src/token.h | 27 +- deps/v8/src/transitions-inl.h | 33 +- deps/v8/src/transitions.cc | 156 +- deps/v8/src/transitions.h | 69 +- deps/v8/src/trig-table.h | 27 +- deps/v8/src/type-info.cc | 71 +- deps/v8/src/type-info.h | 28 +- deps/v8/src/typedarray.js | 135 +- deps/v8/src/types-inl.h | 352 + deps/v8/src/types.cc | 518 +- deps/v8/src/types.h | 665 +- deps/v8/src/typing.cc | 36 +- deps/v8/src/typing.h | 27 +- deps/v8/src/unbound-queue-inl.h | 27 +- deps/v8/src/unbound-queue.h | 27 +- deps/v8/src/unicode-inl.h | 27 +- deps/v8/src/unicode.cc | 27 +- deps/v8/src/unicode.h | 27 +- deps/v8/src/unique.h | 69 +- deps/v8/src/uri.h | 64 +- deps/v8/src/uri.js | 27 +- deps/v8/src/utils-inl.h | 27 +- deps/v8/src/utils.cc | 269 +- deps/v8/src/utils.h | 634 +- deps/v8/src/utils/random-number-generator.cc | 27 +- deps/v8/src/utils/random-number-generator.h | 27 +- deps/v8/src/v8-counters.cc | 104 - deps/v8/src/v8-counters.h | 435 -- deps/v8/src/v8.cc | 120 +- deps/v8/src/v8.h | 40 +- deps/v8/src/v8checks.h | 27 +- deps/v8/src/v8conversions.cc | 132 - deps/v8/src/v8conversions.h | 113 - deps/v8/src/v8dll-main.cc | 27 +- deps/v8/src/v8globals.h | 46 +- deps/v8/src/v8memory.h | 27 +- deps/v8/src/v8natives.js | 45 +- deps/v8/src/v8threads.cc | 48 +- deps/v8/src/v8threads.h | 27 +- deps/v8/src/v8utils.cc | 276 - deps/v8/src/v8utils.h | 464 -- deps/v8/src/variables.cc | 31 +- deps/v8/src/variables.h | 35 +- deps/v8/src/vector.h | 171 + deps/v8/src/version.cc | 4 +- deps/v8/src/version.h | 27 +- deps/v8/src/vm-state-inl.h | 27 +- deps/v8/src/vm-state.h | 27 +- deps/v8/src/weak_collection.js | 27 +- deps/v8/src/win32-headers.h | 27 +- deps/v8/src/win32-math.cc | 27 +- deps/v8/src/win32-math.h | 27 +- deps/v8/src/x64/assembler-x64-inl.h | 38 +- deps/v8/src/x64/assembler-x64.cc | 209 +- deps/v8/src/x64/assembler-x64.h | 403 +- deps/v8/src/x64/builtins-x64.cc | 88 +- deps/v8/src/x64/code-stubs-x64.cc | 908 +-- deps/v8/src/x64/code-stubs-x64.h | 50 +- deps/v8/src/x64/codegen-x64.cc | 99 +- deps/v8/src/x64/codegen-x64.h | 27 +- deps/v8/src/x64/cpu-x64.cc | 37 +- deps/v8/src/x64/debug-x64.cc | 72 +- deps/v8/src/x64/deoptimizer-x64.cc | 43 +- deps/v8/src/x64/disasm-x64.cc | 27 +- deps/v8/src/x64/frames-x64.cc | 27 +- deps/v8/src/x64/frames-x64.h | 38 +- deps/v8/src/x64/full-codegen-x64.cc | 319 +- deps/v8/src/x64/ic-x64.cc | 35 +- deps/v8/src/x64/lithium-codegen-x64.cc | 553 +- deps/v8/src/x64/lithium-codegen-x64.h | 35 +- deps/v8/src/x64/lithium-gap-resolver-x64.cc | 27 +- deps/v8/src/x64/lithium-gap-resolver-x64.h | 27 +- deps/v8/src/x64/lithium-x64.cc | 188 +- deps/v8/src/x64/lithium-x64.h | 72 +- deps/v8/src/x64/macro-assembler-x64.cc | 500 +- deps/v8/src/x64/macro-assembler-x64.h | 82 +- deps/v8/src/x64/regexp-macro-assembler-x64.cc | 77 +- deps/v8/src/x64/regexp-macro-assembler-x64.h | 74 +- deps/v8/src/x64/simulator-x64.cc | 27 +- deps/v8/src/x64/simulator-x64.h | 27 +- deps/v8/src/x64/stub-cache-x64.cc | 88 +- deps/v8/src/zone-allocator.h | 39 +- deps/v8/src/zone-containers.h | 27 +- deps/v8/src/zone-inl.h | 28 +- deps/v8/src/zone.cc | 27 +- deps/v8/src/zone.h | 27 +- deps/v8/test/cctest/cctest.gyp | 13 +- deps/v8/test/cctest/cctest.h | 42 +- deps/v8/test/cctest/cctest.status | 107 +- deps/v8/test/cctest/profiler-extension.cc | 6 +- deps/v8/test/cctest/profiler-extension.h | 2 +- deps/v8/test/cctest/test-alloc.cc | 90 +- deps/v8/test/cctest/test-api.cc | 542 +- deps/v8/test/cctest/test-assembler-arm.cc | 196 +- deps/v8/test/cctest/test-assembler-arm64.cc | 260 +- deps/v8/test/cctest/test-assembler-ia32.cc | 116 +- deps/v8/test/cctest/test-assembler-mips.cc | 167 +- deps/v8/test/cctest/test-assembler-x64.cc | 67 +- deps/v8/test/cctest/test-atomicops.cc | 32 + deps/v8/test/cctest/test-code-stubs-arm.cc | 5 +- deps/v8/test/cctest/test-code-stubs-arm64.cc | 5 +- deps/v8/test/cctest/test-code-stubs-ia32.cc | 4 +- deps/v8/test/cctest/test-code-stubs-mips.cc | 5 +- deps/v8/test/cctest/test-code-stubs-x64.cc | 4 +- deps/v8/test/cctest/test-compiler.cc | 152 +- deps/v8/test/cctest/test-cpu-profiler.cc | 136 +- deps/v8/test/cctest/test-debug.cc | 41 +- deps/v8/test/cctest/test-dictionary.cc | 109 +- deps/v8/test/cctest/test-disasm-arm.cc | 4 +- deps/v8/test/cctest/test-disasm-arm64.cc | 14 +- deps/v8/test/cctest/test-disasm-ia32.cc | 16 +- deps/v8/test/cctest/test-disasm-x64.cc | 44 +- deps/v8/test/cctest/test-func-name-inference.cc | 4 +- deps/v8/test/cctest/test-global-handles.cc | 40 +- deps/v8/test/cctest/test-hashing.cc | 3 +- deps/v8/test/cctest/test-heap-profiler.cc | 49 +- deps/v8/test/cctest/test-heap.cc | 765 +- deps/v8/test/cctest/test-liveedit.cc | 4 - deps/v8/test/cctest/test-log.cc | 2 +- deps/v8/test/cctest/test-macro-assembler-arm.cc | 18 +- deps/v8/test/cctest/test-macro-assembler-mips.cc | 9 +- deps/v8/test/cctest/test-macro-assembler-x64.cc | 8 +- deps/v8/test/cctest/test-mark-compact.cc | 166 +- deps/v8/test/cctest/test-mementos.cc | 3 +- deps/v8/test/cctest/test-microtask-delivery.cc | 4 +- deps/v8/test/cctest/test-object-observe.cc | 578 +- deps/v8/test/cctest/test-ordered-hash-table.cc | 244 + deps/v8/test/cctest/test-parsing.cc | 393 +- deps/v8/test/cctest/test-platform.cc | 2 +- deps/v8/test/cctest/test-regexp.cc | 67 +- deps/v8/test/cctest/test-serialize.cc | 15 +- deps/v8/test/cctest/test-spaces.cc | 15 +- deps/v8/test/cctest/test-strings.cc | 142 +- deps/v8/test/cctest/test-strtod.cc | 7 +- deps/v8/test/cctest/test-symbols.cc | 2 +- deps/v8/test/cctest/test-types.cc | 1713 +++-- deps/v8/test/cctest/test-weakmaps.cc | 16 +- deps/v8/test/cctest/test-weaksets.cc | 16 +- deps/v8/test/fuzz-natives/base.js | 99 + deps/v8/test/fuzz-natives/fuzz-natives.status | 50 + deps/v8/test/fuzz-natives/testcfg.py | 47 + .../intl/break-iterator/protected-icu-internals.js | 49 - .../test/intl/collator/protected-icu-internals.js | 49 - .../intl/date-format/protected-icu-internals.js | 49 - .../intl/number-format/protected-icu-internals.js | 49 - deps/v8/test/mjsunit/array-push10.js | 15 + deps/v8/test/mjsunit/array-push11.js | 15 + deps/v8/test/mjsunit/array-push2.js | 21 + deps/v8/test/mjsunit/array-push3.js | 29 + deps/v8/test/mjsunit/array-push4.js | 60 + deps/v8/test/mjsunit/array-push5.js | 42 + deps/v8/test/mjsunit/array-push6.js | 22 + deps/v8/test/mjsunit/array-push7.js | 59 + deps/v8/test/mjsunit/array-push8.js | 37 + deps/v8/test/mjsunit/array-push9.js | 29 + deps/v8/test/mjsunit/binary-op-newspace.js | 2 +- .../test/mjsunit/bugs/harmony/debug-blockscopes.js | 8 - deps/v8/test/mjsunit/compiler/math-floor-global.js | 2 +- deps/v8/test/mjsunit/compiler/math-floor-local.js | 2 +- deps/v8/test/mjsunit/debug-liveedit-newsource.js | 8 + deps/v8/test/mjsunit/debug-scopes.js | 4 - deps/v8/test/mjsunit/debug-stepout-scope-part2.js | 2 +- deps/v8/test/mjsunit/debug-stepout-scope-part3.js | 2 +- deps/v8/test/mjsunit/debug-stepout-scope-part4.js | 2 +- deps/v8/test/mjsunit/debug-stepout-scope-part5.js | 2 +- deps/v8/test/mjsunit/debug-stepout-scope-part6.js | 2 +- deps/v8/test/mjsunit/define-property-gc.js | 2 +- deps/v8/test/mjsunit/delay-syntax-error.js | 11 +- .../test/mjsunit/es6/debug-promises-caught-all.js | 55 + .../test/mjsunit/es6/debug-promises-caught-late.js | 38 + .../mjsunit/es6/debug-promises-caught-uncaught.js | 40 + deps/v8/test/mjsunit/es6/debug-promises-reentry.js | 17 + .../es6/debug-promises-throw-in-constructor.js | 46 + .../mjsunit/es6/debug-promises-throw-in-reject.js | 61 + .../mjsunit/es6/debug-promises-uncaught-all.js | 55 + .../es6/debug-promises-uncaught-uncaught.js | 54 + .../mjsunit/es6/debug-promises-undefined-reject.js | 57 + deps/v8/test/mjsunit/es6/mirror-promises.js | 69 + deps/v8/test/mjsunit/es6/promises.js | 24 + deps/v8/test/mjsunit/es7/object-observe.js | 16 +- deps/v8/test/mjsunit/field-type-tracking.js | 167 + deps/v8/test/mjsunit/function-caller.js | 6 +- deps/v8/test/mjsunit/function-length-accessor.js | 35 + deps/v8/test/mjsunit/fuzz-natives-part1.js | 216 - deps/v8/test/mjsunit/fuzz-natives-part2.js | 216 - deps/v8/test/mjsunit/fuzz-natives-part3.js | 216 - deps/v8/test/mjsunit/fuzz-natives-part4.js | 216 - deps/v8/test/mjsunit/harmony/array-fill.js | 32 + deps/v8/test/mjsunit/harmony/collections.js | 344 + deps/v8/test/mjsunit/harmony/debug-blockscopes.js | 18 +- .../mjsunit/harmony/generators-debug-scopes.js | 326 + .../test/mjsunit/harmony/generators-relocation.js | 61 + .../test/mjsunit/harmony/regress/regress-3280.js | 25 + deps/v8/test/mjsunit/harmony/string-contains.js | 21 +- deps/v8/test/mjsunit/harmony/typedarrays.js | 5 + deps/v8/test/mjsunit/invalid-lhs.js | 21 +- deps/v8/test/mjsunit/math-abs.js | 2 +- deps/v8/test/mjsunit/math-floor-part1.js | 11 +- deps/v8/test/mjsunit/math-floor-part2.js | 11 +- deps/v8/test/mjsunit/math-floor-part3.js | 11 +- deps/v8/test/mjsunit/math-floor-part4.js | 11 +- deps/v8/test/mjsunit/math-round.js | 10 + deps/v8/test/mjsunit/mjsunit.status | 30 +- deps/v8/test/mjsunit/object-freeze.js | 8 +- deps/v8/test/mjsunit/readonly-accessor.js | 7 + deps/v8/test/mjsunit/regress/regress-1548.js | 8 +- deps/v8/test/mjsunit/regress/regress-1708.js | 12 +- deps/v8/test/mjsunit/regress/regress-2419.js | 4 +- deps/v8/test/mjsunit/regress/regress-3204.js | 17 + deps/v8/test/mjsunit/regress/regress-3255.js | 19 + deps/v8/test/mjsunit/regress/regress-3281.js | 13 + deps/v8/test/mjsunit/regress/regress-3294.js | 8 + deps/v8/test/mjsunit/regress/regress-353058.js | 27 + deps/v8/test/mjsunit/regress/regress-355486.js | 13 + deps/v8/test/mjsunit/regress/regress-357054.js | 10 + deps/v8/test/mjsunit/regress/regress-357103.js | 14 + deps/v8/test/mjsunit/regress/regress-357105.js | 23 + deps/v8/test/mjsunit/regress/regress-358057.js | 19 + deps/v8/test/mjsunit/regress/regress-358059.js | 13 + deps/v8/test/mjsunit/regress/regress-358088.js | 18 + deps/v8/test/mjsunit/regress/regress-358090.js | 8 + deps/v8/test/mjsunit/regress/regress-359441.js | 23 + deps/v8/test/mjsunit/regress/regress-359491.js | 61 + .../{greedy.js => regress/regress-359525.js} | 46 +- deps/v8/test/mjsunit/regress/regress-360733.js | 14 + deps/v8/test/mjsunit/regress/regress-361025.js | 10 + deps/v8/test/mjsunit/regress/regress-361608.js | 20 + deps/v8/test/mjsunit/regress/regress-362128.js | 37 + deps/v8/test/mjsunit/regress/regress-362870.js | 18 + deps/v8/test/mjsunit/regress/regress-363956.js | 12 + deps/v8/test/mjsunit/regress/regress-365172-1.js | 13 + deps/v8/test/mjsunit/regress/regress-365172-2.js | 13 + deps/v8/test/mjsunit/regress/regress-365172-3.js | 14 + deps/v8/test/mjsunit/regress/regress-369450.js | 15 + deps/v8/test/mjsunit/regress/regress-370384.js | 16 + deps/v8/test/mjsunit/regress/regress-99167.js | 2 +- .../mjsunit/regress/regress-alloc-smi-check.js | 16 + .../test/mjsunit/regress/regress-builtinbust-1.js | 14 + .../test/mjsunit/regress/regress-builtinbust-3.js | 15 + .../test/mjsunit/regress/regress-builtinbust-4.js | 16 + .../test/mjsunit/regress/regress-builtinbust-5.js | 13 + .../test/mjsunit/regress/regress-builtinbust-6.js | 40 + .../test/mjsunit/regress/regress-builtinbust-7.js | 32 + .../regress-captured-object-no-dummy-use.js | 18 + .../test/mjsunit/regress/regress-crbug-357052.js | 11 + .../test/mjsunit/regress/regress-crbug-357137.js | 8 + .../test/mjsunit/regress/regress-crbug-357330.js | 16 + .../mjsunit/regress/regress-create-exception.js | 2 +- .../regress/regress-empty-fixed-double-array.js | 15 + .../regress/regress-enum-prop-keys-cache-size.js | 19 + .../regress-escape-preserve-smi-representation.js | 35 + .../mjsunit/regress/regress-global-freeze-const.js | 7 + .../regress-handle-illegal-redeclaration.js | 15 + .../regress-inline-getter-near-stack-limit.js | 24 + .../mjsunit/regress/regress-lazy-deopt-inlining.js | 24 + .../regress/regress-lazy-deopt-inlining2.js | 24 + .../mjsunit/regress/regress-load-field-by-index.js | 22 + .../regress-no-dummy-use-for-arguments-object.js | 21 + .../mjsunit/regress/regress-observe-map-cache.js | 14 + deps/v8/test/mjsunit/regress/regress-parseint.js | 18 + deps/v8/test/mozilla/mozilla.status | 23 +- deps/v8/test/promises-aplus/promises-aplus.status | 2 - deps/v8/test/promises-aplus/testcfg.py | 1 - deps/v8/test/test262/test262.status | 4 +- deps/v8/test/webkit/fast/js/arguments-expected.txt | 2 +- .../fast/js/modify-non-references-expected.txt | 24 +- .../test/webkit/fast/js/modify-non-references.js | 12 +- deps/v8/test/webkit/resources/JSON-stringify.js | 529 ++ deps/v8/test/webkit/resources/json2-es5-compat.js | 481 ++ .../v8/test/webkit/run-json-stringify-expected.txt | 544 ++ deps/v8/test/webkit/run-json-stringify.js | 8 + deps/v8/test/webkit/webkit.status | 3 - deps/v8/tools/blink_tests/TestExpectations | 1 - deps/v8/tools/common-includes.sh | 198 - deps/v8/tools/gcmole/gcmole.lua | 21 +- deps/v8/tools/gyp/v8.gyp | 51 +- deps/v8/tools/js2c.py | 356 +- deps/v8/tools/lexer-shell.cc | 6 +- deps/v8/tools/merge-to-branch.sh | 342 - deps/v8/tools/oom_dump/oom_dump.cc | 2 - deps/v8/tools/parser-shell.cc | 75 +- deps/v8/tools/push-to-trunk/auto_push.py | 2 +- deps/v8/tools/push-to-trunk/auto_roll.py | 116 + deps/v8/tools/push-to-trunk/chromium_roll.py | 12 +- deps/v8/tools/push-to-trunk/common_includes.py | 86 +- deps/v8/tools/push-to-trunk/git_recipes.py | 36 +- deps/v8/tools/push-to-trunk/merge_to_branch.py | 38 +- deps/v8/tools/push-to-trunk/push_to_trunk.py | 6 +- deps/v8/tools/push-to-trunk/releases.py | 463 ++ deps/v8/tools/push-to-trunk/test_scripts.py | 278 +- deps/v8/tools/run-deopt-fuzzer.py | 8 +- deps/v8/tools/run-tests.py | 17 +- deps/v8/tools/testrunner/local/execution.py | 1 + deps/v8/tools/testrunner/local/statusfile.py | 4 +- deps/v8/tools/testrunner/objects/context.py | 9 +- 835 files changed, 44954 insertions(+), 49512 deletions(-) create mode 100644 deps/v8/.DEPS.git create mode 100644 deps/v8/BUILD.gn create mode 100644 deps/v8/src/base/macros.h create mode 100644 deps/v8/src/types-inl.h delete mode 100644 deps/v8/src/v8-counters.cc delete mode 100644 deps/v8/src/v8-counters.h delete mode 100644 deps/v8/src/v8conversions.cc delete mode 100644 deps/v8/src/v8conversions.h delete mode 100644 deps/v8/src/v8utils.cc delete mode 100644 deps/v8/src/v8utils.h create mode 100644 deps/v8/src/vector.h create mode 100644 deps/v8/test/cctest/test-ordered-hash-table.cc create mode 100644 deps/v8/test/fuzz-natives/base.js create mode 100644 deps/v8/test/fuzz-natives/fuzz-natives.status create mode 100644 deps/v8/test/fuzz-natives/testcfg.py delete mode 100644 deps/v8/test/intl/break-iterator/protected-icu-internals.js delete mode 100644 deps/v8/test/intl/collator/protected-icu-internals.js delete mode 100644 deps/v8/test/intl/date-format/protected-icu-internals.js delete mode 100644 deps/v8/test/intl/number-format/protected-icu-internals.js create mode 100644 deps/v8/test/mjsunit/array-push10.js create mode 100644 deps/v8/test/mjsunit/array-push11.js create mode 100644 deps/v8/test/mjsunit/array-push2.js create mode 100644 deps/v8/test/mjsunit/array-push3.js create mode 100644 deps/v8/test/mjsunit/array-push4.js create mode 100644 deps/v8/test/mjsunit/array-push5.js create mode 100644 deps/v8/test/mjsunit/array-push6.js create mode 100644 deps/v8/test/mjsunit/array-push7.js create mode 100644 deps/v8/test/mjsunit/array-push8.js create mode 100644 deps/v8/test/mjsunit/array-push9.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises-caught-all.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises-caught-late.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises-caught-uncaught.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises-reentry.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises-throw-in-constructor.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises-throw-in-reject.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises-uncaught-all.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises-uncaught-uncaught.js create mode 100644 deps/v8/test/mjsunit/es6/debug-promises-undefined-reject.js create mode 100644 deps/v8/test/mjsunit/es6/mirror-promises.js create mode 100644 deps/v8/test/mjsunit/field-type-tracking.js create mode 100644 deps/v8/test/mjsunit/function-length-accessor.js delete mode 100644 deps/v8/test/mjsunit/fuzz-natives-part1.js delete mode 100644 deps/v8/test/mjsunit/fuzz-natives-part2.js delete mode 100644 deps/v8/test/mjsunit/fuzz-natives-part3.js delete mode 100644 deps/v8/test/mjsunit/fuzz-natives-part4.js create mode 100644 deps/v8/test/mjsunit/harmony/array-fill.js create mode 100644 deps/v8/test/mjsunit/harmony/generators-debug-scopes.js create mode 100644 deps/v8/test/mjsunit/harmony/generators-relocation.js create mode 100644 deps/v8/test/mjsunit/harmony/regress/regress-3280.js create mode 100644 deps/v8/test/mjsunit/readonly-accessor.js create mode 100644 deps/v8/test/mjsunit/regress/regress-3255.js create mode 100644 deps/v8/test/mjsunit/regress/regress-3281.js create mode 100644 deps/v8/test/mjsunit/regress/regress-3294.js create mode 100644 deps/v8/test/mjsunit/regress/regress-353058.js create mode 100644 deps/v8/test/mjsunit/regress/regress-355486.js create mode 100644 deps/v8/test/mjsunit/regress/regress-357054.js create mode 100644 deps/v8/test/mjsunit/regress/regress-357103.js create mode 100644 deps/v8/test/mjsunit/regress/regress-357105.js create mode 100644 deps/v8/test/mjsunit/regress/regress-358057.js create mode 100644 deps/v8/test/mjsunit/regress/regress-358059.js create mode 100644 deps/v8/test/mjsunit/regress/regress-358088.js create mode 100644 deps/v8/test/mjsunit/regress/regress-358090.js create mode 100644 deps/v8/test/mjsunit/regress/regress-359441.js create mode 100644 deps/v8/test/mjsunit/regress/regress-359491.js rename deps/v8/test/mjsunit/{greedy.js => regress/regress-359525.js} (69%) create mode 100644 deps/v8/test/mjsunit/regress/regress-360733.js create mode 100644 deps/v8/test/mjsunit/regress/regress-361025.js create mode 100644 deps/v8/test/mjsunit/regress/regress-361608.js create mode 100644 deps/v8/test/mjsunit/regress/regress-362128.js create mode 100644 deps/v8/test/mjsunit/regress/regress-362870.js create mode 100644 deps/v8/test/mjsunit/regress/regress-363956.js create mode 100644 deps/v8/test/mjsunit/regress/regress-365172-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-365172-2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-365172-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-369450.js create mode 100644 deps/v8/test/mjsunit/regress/regress-370384.js create mode 100644 deps/v8/test/mjsunit/regress/regress-alloc-smi-check.js create mode 100644 deps/v8/test/mjsunit/regress/regress-builtinbust-1.js create mode 100644 deps/v8/test/mjsunit/regress/regress-builtinbust-3.js create mode 100644 deps/v8/test/mjsunit/regress/regress-builtinbust-4.js create mode 100644 deps/v8/test/mjsunit/regress/regress-builtinbust-5.js create mode 100644 deps/v8/test/mjsunit/regress/regress-builtinbust-6.js create mode 100644 deps/v8/test/mjsunit/regress/regress-builtinbust-7.js create mode 100644 deps/v8/test/mjsunit/regress/regress-captured-object-no-dummy-use.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-357052.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-357137.js create mode 100644 deps/v8/test/mjsunit/regress/regress-crbug-357330.js create mode 100644 deps/v8/test/mjsunit/regress/regress-empty-fixed-double-array.js create mode 100644 deps/v8/test/mjsunit/regress/regress-enum-prop-keys-cache-size.js create mode 100644 deps/v8/test/mjsunit/regress/regress-escape-preserve-smi-representation.js create mode 100644 deps/v8/test/mjsunit/regress/regress-global-freeze-const.js create mode 100644 deps/v8/test/mjsunit/regress/regress-handle-illegal-redeclaration.js create mode 100644 deps/v8/test/mjsunit/regress/regress-inline-getter-near-stack-limit.js create mode 100644 deps/v8/test/mjsunit/regress/regress-lazy-deopt-inlining.js create mode 100644 deps/v8/test/mjsunit/regress/regress-lazy-deopt-inlining2.js create mode 100644 deps/v8/test/mjsunit/regress/regress-load-field-by-index.js create mode 100644 deps/v8/test/mjsunit/regress/regress-no-dummy-use-for-arguments-object.js create mode 100644 deps/v8/test/mjsunit/regress/regress-observe-map-cache.js create mode 100644 deps/v8/test/mjsunit/regress/regress-parseint.js create mode 100644 deps/v8/test/webkit/resources/JSON-stringify.js create mode 100644 deps/v8/test/webkit/resources/json2-es5-compat.js create mode 100644 deps/v8/test/webkit/run-json-stringify-expected.txt create mode 100644 deps/v8/test/webkit/run-json-stringify.js delete mode 100644 deps/v8/tools/common-includes.sh delete mode 100755 deps/v8/tools/merge-to-branch.sh create mode 100755 deps/v8/tools/push-to-trunk/auto_roll.py create mode 100755 deps/v8/tools/push-to-trunk/releases.py diff --git a/deps/v8/.DEPS.git b/deps/v8/.DEPS.git new file mode 100644 index 0000000..e1e6982 --- /dev/null +++ b/deps/v8/.DEPS.git @@ -0,0 +1,48 @@ +# DO NOT EDIT EXCEPT FOR LOCAL TESTING. +# THIS IS A GENERATED FILE. +# ALL MANUAL CHANGES WILL BE OVERWRITTEN. +# SEE http://code.google.com/p/chromium/wiki/UsingGit +# FOR HOW TO ROLL DEPS +vars = { + 'webkit_url': + 'https://chromium.googlesource.com/chromium/blink.git', + 'git_url': + 'https://chromium.googlesource.com' +} + +deps = { + 'v8/build/gyp': + Var('git_url') + '/external/gyp.git@a3e2a5caf24a1e0a45401e09ad131210bf16b852', + 'v8/third_party/icu': + Var('git_url') + '/chromium/deps/icu46.git@7a1ec88f69e25b3efcf76196d07f7815255db025', +} + +deps_os = { + 'win': + { + 'v8/third_party/cygwin': + Var('git_url') + '/chromium/deps/cygwin.git@06a117a90c15174436bfa20ceebbfdf43b7eb820', + 'v8/third_party/python_26': + Var('git_url') + '/chromium/deps/python_26.git@67d19f904470effe3122d27101cc5a8195abd157', + }, +} + +include_rules = [ + +] + +skip_child_includes = [ + +] + +hooks = [ + { + 'action': + [ + 'python', + 'v8/build/gyp_v8' +], + 'pattern': + '.' +} +] diff --git a/deps/v8/.gitignore b/deps/v8/.gitignore index de51f8a..ebcb581 100644 --- a/deps/v8/.gitignore +++ b/deps/v8/.gitignore @@ -46,6 +46,9 @@ shell_g /test/mozilla/CHECKED_OUT_VERSION /test/mozilla/data /test/mozilla/downloaded_* +/test/promises-aplus/promises-tests +/test/promises-aplus/promises-tests.tar.gz +/test/promises-aplus/sinon /test/test262/data /test/test262/tc39-test262-* /third_party @@ -63,3 +66,4 @@ GTAGS GRTAGS GSYMS GPATH +gtags.files diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn new file mode 100644 index 0000000..2a6178e --- /dev/null +++ b/deps/v8/BUILD.gn @@ -0,0 +1,873 @@ +# Copyright 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# TODO(jochen): These will need to be user-settable to support standalone V8 +# builds. +v8_compress_startup_data = "off" +v8_deprecation_warnings = false +v8_enable_disassembler = false +v8_enable_gdbjit = false +v8_enable_handle_zapping = true +v8_enable_i18n_support = true +v8_enable_verify_heap = false +v8_interpreted_regexp = false +v8_object_print = false +v8_postmortem_support = false +v8_use_default_platform = true +v8_use_snapshot = true + +if (is_debug) { + v8_enable_extra_checks = true +} else { + v8_enable_extra_checks = false +} + +# TODO(jochen): Add support for want_seperate_host_toolset. +# TODO(jochen): Add toolchain.gypi support. + + +############################################################################### +# Configurations +# +config("internal_config") { + visibility = ":*" # Only targets in this file can depend on this. + + include_dirs = [ "src" ] + + if (component_mode == "shared_library") { + defines = [ + "BUILDING_V8_SHARED", + "V8_SHARED", + ] + } +} + +config("features") { + visibility = ":*" # Only targets in this file can depend on this. + + defines = [] + + if (v8_enable_disassembler == true) { + defines += [ + "ENABLE_DISASSEMBLER", + ] + } + if (v8_enable_gdbjit == true) { + defines += [ + "ENABLE_GDB_JIT_INTERFACE", + ] + } + if (v8_object_print == true) { + defines += [ + "OBJECT_PRINT", + ] + } + if (v8_enable_verify_heap == true) { + defines += [ + "VERIFY_HEAP", + ] + } + if (v8_interpreted_regexp == true) { + defines += [ + "V8_INTERPRETED_REGEXP", + ] + } + if (v8_deprecation_warnings == true) { + defines += [ + "V8_DEPRECATION_WARNINGS", + ] + } + if (v8_enable_i18n_support == true) { + defines += [ + "V8_I18N_SUPPORT", + ] + } + if (v8_use_default_platform == true) { + defines += [ + "V8_USE_DEFAULT_PLATFORM", + ] + } + if (v8_compress_startup_data == "bz2") { + defines += [ + "COMPRESS_STARTUP_DATA_BZ2", + ] + } + if (v8_enable_extra_checks == true) { + defines += [ + "ENABLE_EXTRA_CHECKS", + ] + } + if (v8_enable_handle_zapping == true) { + defines += [ + "ENABLE_HANDLE_ZAPPING", + ] + } +} + +############################################################################### +# Actions +# + +# TODO(jochen): Do actions need visibility settings as well? +action("generate_trig_table") { + visibility = ":*" # Only targets in this file can depend on this. + + script = "tools/generate-trig-table.py" + + outputs = [ + "$target_gen_dir/trig-table.cc" + ] + + args = rebase_path(outputs, root_build_dir) +} + +action("js2c") { + visibility = ":*" # Only targets in this file can depend on this. + + script = "tools/js2c.py" + + # The script depends on this other script, this rule causes a rebuild if it + # changes. + source_prereqs = [ "tools/jsmin.py" ] + + sources = [ + "src/runtime.js", + "src/v8natives.js", + "src/array.js", + "src/string.js", + "src/uri.js", + "src/math.js", + "src/messages.js", + "src/apinatives.js", + "src/debug-debugger.js", + "src/mirror-debugger.js", + "src/liveedit-debugger.js", + "src/date.js", + "src/json.js", + "src/regexp.js", + "src/arraybuffer.js", + "src/typedarray.js", + "src/object-observe.js", + "src/macros.py", + ] + + outputs = [ + "$target_gen_dir/libraries.cc" + ] + + if (v8_enable_i18n_support) { + sources += [ "src/i18n.js" ] + } + + args = + rebase_path(outputs, root_build_dir) + + [ "EXPERIMENTAL", v8_compress_startup_data ] + + rebase_path(sources, root_build_dir) +} + +action("js2c_experimental") { + visibility = ":*" # Only targets in this file can depend on this. + + script = "tools/js2c.py" + + # The script depends on this other script, this rule causes a rebuild if it + # changes. + source_prereqs = [ "tools/jsmin.py" ] + + sources = [ + "src/macros.py", + "src/symbol.js", + "src/proxy.js", + "src/collection.js", + "src/weak_collection.js", + "src/promise.js", + "src/generator.js", + "src/array-iterator.js", + "src/harmony-string.js", + "src/harmony-array.js", + "src/harmony-math.js", + ] + + outputs = [ + "$target_gen_dir/experimental-libraries.cc" + ] + + args = + rebase_path(outputs, root_build_dir) + + [ "CORE", v8_compress_startup_data ] + + rebase_path(sources, root_build_dir) +} + +action("postmortem-metadata") { + visibility = ":*" # Only targets in this file can depend on this. + + script = "tools/gen-postmortem-metadata.py" + + sources = [ + "src/objects.h", + "src/objects-inl.h", + ] + + outputs = [ + "$target_gen_dir/debug-support.cc" + ] + + args = + rebase_path(outputs, root_build_dir) + + rebase_path(sources, root_build_dir) +} + +############################################################################### +# Source Sets (aka static libraries) +# + +source_set("v8_nosnapshot") { + visibility = ":*" # Only targets in this file can depend on this. + + deps = [ + ":js2c", + ":js2c_experimental", + ":generate_trig_table", + ":v8_base", + ] + + sources = [ + "$target_gen_dir/libraries.cc", + "$target_gen_dir/experimental-libraries.cc", + "$target_gen_dir/trig-table.cc", + "src/snapshot-empty.cc", + ] + + configs += [ ":internal_config", ":features" ] +} + +source_set("v8_base") { + visibility = ":*" # Only targets in this file can depend on this. + + sources = [ + "src/accessors.cc", + "src/accessors.h", + "src/allocation.cc", + "src/allocation.h", + "src/allocation-site-scopes.cc", + "src/allocation-site-scopes.h", + "src/allocation-tracker.cc", + "src/allocation-tracker.h", + "src/api.cc", + "src/api.h", + "src/arguments.cc", + "src/arguments.h", + "src/assembler.cc", + "src/assembler.h", + "src/assert-scope.h", + "src/assert-scope.cc", + "src/ast.cc", + "src/ast.h", + "src/atomicops.h", + "src/atomicops_internals_x86_gcc.cc", + "src/bignum-dtoa.cc", + "src/bignum-dtoa.h", + "src/bignum.cc", + "src/bignum.h", + "src/bootstrapper.cc", + "src/bootstrapper.h", + "src/builtins.cc", + "src/builtins.h", + "src/bytecodes-irregexp.h", + "src/cached-powers.cc", + "src/cached-powers.h", + "src/char-predicates-inl.h", + "src/char-predicates.h", + "src/checks.cc", + "src/checks.h", + "src/circular-queue-inl.h", + "src/circular-queue.h", + "src/code-stubs.cc", + "src/code-stubs.h", + "src/code-stubs-hydrogen.cc", + "src/code.h", + "src/codegen.cc", + "src/codegen.h", + "src/compilation-cache.cc", + "src/compilation-cache.h", + "src/compiler.cc", + "src/compiler.h", + "src/contexts.cc", + "src/contexts.h", + "src/conversions-inl.h", + "src/conversions.cc", + "src/conversions.h", + "src/counters.cc", + "src/counters.h", + "src/cpu-profiler-inl.h", + "src/cpu-profiler.cc", + "src/cpu-profiler.h", + "src/cpu.cc", + "src/cpu.h", + "src/data-flow.cc", + "src/data-flow.h", + "src/date.cc", + "src/date.h", + "src/dateparser-inl.h", + "src/dateparser.cc", + "src/dateparser.h", + "src/debug-agent.cc", + "src/debug-agent.h", + "src/debug.cc", + "src/debug.h", + "src/deoptimizer.cc", + "src/deoptimizer.h", + "src/disasm.h", + "src/disassembler.cc", + "src/disassembler.h", + "src/diy-fp.cc", + "src/diy-fp.h", + "src/double.h", + "src/dtoa.cc", + "src/dtoa.h", + "src/effects.h", + "src/elements-kind.cc", + "src/elements-kind.h", + "src/elements.cc", + "src/elements.h", + "src/execution.cc", + "src/execution.h", + "src/extensions/externalize-string-extension.cc", + "src/extensions/externalize-string-extension.h", + "src/extensions/free-buffer-extension.cc", + "src/extensions/free-buffer-extension.h", + "src/extensions/gc-extension.cc", + "src/extensions/gc-extension.h", + "src/extensions/statistics-extension.cc", + "src/extensions/statistics-extension.h", + "src/extensions/trigger-failure-extension.cc", + "src/extensions/trigger-failure-extension.h", + "src/factory.cc", + "src/factory.h", + "src/fast-dtoa.cc", + "src/fast-dtoa.h", + "src/feedback-slots.h", + "src/fixed-dtoa.cc", + "src/fixed-dtoa.h", + "src/flag-definitions.h", + "src/flags.cc", + "src/flags.h", + "src/frames-inl.h", + "src/frames.cc", + "src/frames.h", + "src/full-codegen.cc", + "src/full-codegen.h", + "src/func-name-inferrer.cc", + "src/func-name-inferrer.h", + "src/gdb-jit.cc", + "src/gdb-jit.h", + "src/global-handles.cc", + "src/global-handles.h", + "src/globals.h", + "src/handles-inl.h", + "src/handles.cc", + "src/handles.h", + "src/hashmap.h", + "src/heap-inl.h", + "src/heap-profiler.cc", + "src/heap-profiler.h", + "src/heap-snapshot-generator-inl.h", + "src/heap-snapshot-generator.cc", + "src/heap-snapshot-generator.h", + "src/heap.cc", + "src/heap.h", + "src/hydrogen-alias-analysis.h", + "src/hydrogen-bce.cc", + "src/hydrogen-bce.h", + "src/hydrogen-bch.cc", + "src/hydrogen-bch.h", + "src/hydrogen-canonicalize.cc", + "src/hydrogen-canonicalize.h", + "src/hydrogen-check-elimination.cc", + "src/hydrogen-check-elimination.h", + "src/hydrogen-dce.cc", + "src/hydrogen-dce.h", + "src/hydrogen-dehoist.cc", + "src/hydrogen-dehoist.h", + "src/hydrogen-environment-liveness.cc", + "src/hydrogen-environment-liveness.h", + "src/hydrogen-escape-analysis.cc", + "src/hydrogen-escape-analysis.h", + "src/hydrogen-flow-engine.h", + "src/hydrogen-instructions.cc", + "src/hydrogen-instructions.h", + "src/hydrogen.cc", + "src/hydrogen.h", + "src/hydrogen-gvn.cc", + "src/hydrogen-gvn.h", + "src/hydrogen-infer-representation.cc", + "src/hydrogen-infer-representation.h", + "src/hydrogen-infer-types.cc", + "src/hydrogen-infer-types.h", + "src/hydrogen-load-elimination.cc", + "src/hydrogen-load-elimination.h", + "src/hydrogen-mark-deoptimize.cc", + "src/hydrogen-mark-deoptimize.h", + "src/hydrogen-mark-unreachable.cc", + "src/hydrogen-mark-unreachable.h", + "src/hydrogen-osr.cc", + "src/hydrogen-osr.h", + "src/hydrogen-range-analysis.cc", + "src/hydrogen-range-analysis.h", + "src/hydrogen-redundant-phi.cc", + "src/hydrogen-redundant-phi.h", + "src/hydrogen-removable-simulates.cc", + "src/hydrogen-removable-simulates.h", + "src/hydrogen-representation-changes.cc", + "src/hydrogen-representation-changes.h", + "src/hydrogen-sce.cc", + "src/hydrogen-sce.h", + "src/hydrogen-store-elimination.cc", + "src/hydrogen-store-elimination.h", + "src/hydrogen-uint32-analysis.cc", + "src/hydrogen-uint32-analysis.h", + "src/i18n.cc", + "src/i18n.h", + "src/icu_util.cc", + "src/icu_util.h", + "src/ic-inl.h", + "src/ic.cc", + "src/ic.h", + "src/incremental-marking.cc", + "src/incremental-marking.h", + "src/interface.cc", + "src/interface.h", + "src/interpreter-irregexp.cc", + "src/interpreter-irregexp.h", + "src/isolate.cc", + "src/isolate.h", + "src/json-parser.h", + "src/json-stringifier.h", + "src/jsregexp-inl.h", + "src/jsregexp.cc", + "src/jsregexp.h", + "src/lazy-instance.h", + # TODO(jochen): move libplatform/ files to their own target. + "src/libplatform/default-platform.cc", + "src/libplatform/default-platform.h", + "src/libplatform/task-queue.cc", + "src/libplatform/task-queue.h", + "src/libplatform/worker-thread.cc", + "src/libplatform/worker-thread.h", + "src/list-inl.h", + "src/list.h", + "src/lithium-allocator-inl.h", + "src/lithium-allocator.cc", + "src/lithium-allocator.h", + "src/lithium-codegen.cc", + "src/lithium-codegen.h", + "src/lithium.cc", + "src/lithium.h", + "src/liveedit.cc", + "src/liveedit.h", + "src/log-inl.h", + "src/log-utils.cc", + "src/log-utils.h", + "src/log.cc", + "src/log.h", + "src/macro-assembler.h", + "src/mark-compact.cc", + "src/mark-compact.h", + "src/messages.cc", + "src/messages.h", + "src/msan.h", + "src/natives.h", + "src/objects-debug.cc", + "src/objects-inl.h", + "src/objects-printer.cc", + "src/objects-visiting.cc", + "src/objects-visiting.h", + "src/objects.cc", + "src/objects.h", + "src/once.cc", + "src/once.h", + "src/optimizing-compiler-thread.h", + "src/optimizing-compiler-thread.cc", + "src/parser.cc", + "src/parser.h", + "src/platform/elapsed-timer.h", + "src/platform/time.cc", + "src/platform/time.h", + "src/platform.h", + "src/platform/condition-variable.cc", + "src/platform/condition-variable.h", + "src/platform/mutex.cc", + "src/platform/mutex.h", + "src/platform/semaphore.cc", + "src/platform/semaphore.h", + "src/platform/socket.cc", + "src/platform/socket.h", + "src/preparse-data-format.h", + "src/preparse-data.cc", + "src/preparse-data.h", + "src/preparser.cc", + "src/preparser.h", + "src/prettyprinter.cc", + "src/prettyprinter.h", + "src/profile-generator-inl.h", + "src/profile-generator.cc", + "src/profile-generator.h", + "src/property-details.h", + "src/property.cc", + "src/property.h", + "src/regexp-macro-assembler-irregexp-inl.h", + "src/regexp-macro-assembler-irregexp.cc", + "src/regexp-macro-assembler-irregexp.h", + "src/regexp-macro-assembler-tracer.cc", + "src/regexp-macro-assembler-tracer.h", + "src/regexp-macro-assembler.cc", + "src/regexp-macro-assembler.h", + "src/regexp-stack.cc", + "src/regexp-stack.h", + "src/rewriter.cc", + "src/rewriter.h", + "src/runtime-profiler.cc", + "src/runtime-profiler.h", + "src/runtime.cc", + "src/runtime.h", + "src/safepoint-table.cc", + "src/safepoint-table.h", + "src/sampler.cc", + "src/sampler.h", + "src/scanner-character-streams.cc", + "src/scanner-character-streams.h", + "src/scanner.cc", + "src/scanner.h", + "src/scopeinfo.cc", + "src/scopeinfo.h", + "src/scopes.cc", + "src/scopes.h", + "src/serialize.cc", + "src/serialize.h", + "src/small-pointer-list.h", + "src/smart-pointers.h", + "src/snapshot-common.cc", + "src/snapshot.h", + "src/spaces-inl.h", + "src/spaces.cc", + "src/spaces.h", + "src/store-buffer-inl.h", + "src/store-buffer.cc", + "src/store-buffer.h", + "src/string-search.cc", + "src/string-search.h", + "src/string-stream.cc", + "src/string-stream.h", + "src/strtod.cc", + "src/strtod.h", + "src/stub-cache.cc", + "src/stub-cache.h", + "src/sweeper-thread.h", + "src/sweeper-thread.cc", + "src/token.cc", + "src/token.h", + "src/transitions-inl.h", + "src/transitions.cc", + "src/transitions.h", + "src/type-info.cc", + "src/type-info.h", + "src/types-inl.h", + "src/types.cc", + "src/types.h", + "src/typing.cc", + "src/typing.h", + "src/unbound-queue-inl.h", + "src/unbound-queue.h", + "src/unicode-inl.h", + "src/unicode.cc", + "src/unicode.h", + "src/unique.h", + "src/uri.h", + "src/utils-inl.h", + "src/utils.cc", + "src/utils.h", + "src/utils/random-number-generator.cc", + "src/utils/random-number-generator.h", + "src/v8.cc", + "src/v8.h", + "src/v8checks.h", + "src/v8globals.h", + "src/v8memory.h", + "src/v8threads.cc", + "src/v8threads.h", + "src/variables.cc", + "src/variables.h", + "src/version.cc", + "src/version.h", + "src/vm-state-inl.h", + "src/vm-state.h", + "src/zone-inl.h", + "src/zone.cc", + "src/zone.h", + ] + + if (cpu_arch == "x86") { + sources += [ + "src/ia32/assembler-ia32-inl.h", + "src/ia32/assembler-ia32.cc", + "src/ia32/assembler-ia32.h", + "src/ia32/builtins-ia32.cc", + "src/ia32/code-stubs-ia32.cc", + "src/ia32/code-stubs-ia32.h", + "src/ia32/codegen-ia32.cc", + "src/ia32/codegen-ia32.h", + "src/ia32/cpu-ia32.cc", + "src/ia32/debug-ia32.cc", + "src/ia32/deoptimizer-ia32.cc", + "src/ia32/disasm-ia32.cc", + "src/ia32/frames-ia32.cc", + "src/ia32/frames-ia32.h", + "src/ia32/full-codegen-ia32.cc", + "src/ia32/ic-ia32.cc", + "src/ia32/lithium-codegen-ia32.cc", + "src/ia32/lithium-codegen-ia32.h", + "src/ia32/lithium-gap-resolver-ia32.cc", + "src/ia32/lithium-gap-resolver-ia32.h", + "src/ia32/lithium-ia32.cc", + "src/ia32/lithium-ia32.h", + "src/ia32/macro-assembler-ia32.cc", + "src/ia32/macro-assembler-ia32.h", + "src/ia32/regexp-macro-assembler-ia32.cc", + "src/ia32/regexp-macro-assembler-ia32.h", + "src/ia32/stub-cache-ia32.cc", + ] + } else if (cpu_arch == "x64") { + sources += [ + "src/x64/assembler-x64-inl.h", + "src/x64/assembler-x64.cc", + "src/x64/assembler-x64.h", + "src/x64/builtins-x64.cc", + "src/x64/code-stubs-x64.cc", + "src/x64/code-stubs-x64.h", + "src/x64/codegen-x64.cc", + "src/x64/codegen-x64.h", + "src/x64/cpu-x64.cc", + "src/x64/debug-x64.cc", + "src/x64/deoptimizer-x64.cc", + "src/x64/disasm-x64.cc", + "src/x64/frames-x64.cc", + "src/x64/frames-x64.h", + "src/x64/full-codegen-x64.cc", + "src/x64/ic-x64.cc", + "src/x64/lithium-codegen-x64.cc", + "src/x64/lithium-codegen-x64.h", + "src/x64/lithium-gap-resolver-x64.cc", + "src/x64/lithium-gap-resolver-x64.h", + "src/x64/lithium-x64.cc", + "src/x64/lithium-x64.h", + "src/x64/macro-assembler-x64.cc", + "src/x64/macro-assembler-x64.h", + "src/x64/regexp-macro-assembler-x64.cc", + "src/x64/regexp-macro-assembler-x64.h", + "src/x64/stub-cache-x64.cc", + ] + } else if (cpu_arch == "arm") { + sources += [ + "src/arm/assembler-arm-inl.h", + "src/arm/assembler-arm.cc", + "src/arm/assembler-arm.h", + "src/arm/builtins-arm.cc", + "src/arm/code-stubs-arm.cc", + "src/arm/code-stubs-arm.h", + "src/arm/codegen-arm.cc", + "src/arm/codegen-arm.h", + "src/arm/constants-arm.h", + "src/arm/constants-arm.cc", + "src/arm/cpu-arm.cc", + "src/arm/debug-arm.cc", + "src/arm/deoptimizer-arm.cc", + "src/arm/disasm-arm.cc", + "src/arm/frames-arm.cc", + "src/arm/frames-arm.h", + "src/arm/full-codegen-arm.cc", + "src/arm/ic-arm.cc", + "src/arm/lithium-arm.cc", + "src/arm/lithium-arm.h", + "src/arm/lithium-codegen-arm.cc", + "src/arm/lithium-codegen-arm.h", + "src/arm/lithium-gap-resolver-arm.cc", + "src/arm/lithium-gap-resolver-arm.h", + "src/arm/macro-assembler-arm.cc", + "src/arm/macro-assembler-arm.h", + "src/arm/regexp-macro-assembler-arm.cc", + "src/arm/regexp-macro-assembler-arm.h", + "src/arm/simulator-arm.cc", + "src/arm/stub-cache-arm.cc", + ] + } else if (cpu_arch == "arm64") { + sources += [ + "src/arm64/assembler-arm64.cc", + "src/arm64/assembler-arm64.h", + "src/arm64/assembler-arm64-inl.h", + "src/arm64/builtins-arm64.cc", + "src/arm64/codegen-arm64.cc", + "src/arm64/codegen-arm64.h", + "src/arm64/code-stubs-arm64.cc", + "src/arm64/code-stubs-arm64.h", + "src/arm64/constants-arm64.h", + "src/arm64/cpu-arm64.cc", + "src/arm64/cpu-arm64.h", + "src/arm64/debug-arm64.cc", + "src/arm64/decoder-arm64.cc", + "src/arm64/decoder-arm64.h", + "src/arm64/decoder-arm64-inl.h", + "src/arm64/deoptimizer-arm64.cc", + "src/arm64/disasm-arm64.cc", + "src/arm64/disasm-arm64.h", + "src/arm64/frames-arm64.cc", + "src/arm64/frames-arm64.h", + "src/arm64/full-codegen-arm64.cc", + "src/arm64/ic-arm64.cc", + "src/arm64/instructions-arm64.cc", + "src/arm64/instructions-arm64.h", + "src/arm64/instrument-arm64.cc", + "src/arm64/instrument-arm64.h", + "src/arm64/lithium-arm64.cc", + "src/arm64/lithium-arm64.h", + "src/arm64/lithium-codegen-arm64.cc", + "src/arm64/lithium-codegen-arm64.h", + "src/arm64/lithium-gap-resolver-arm64.cc", + "src/arm64/lithium-gap-resolver-arm64.h", + "src/arm64/macro-assembler-arm64.cc", + "src/arm64/macro-assembler-arm64.h", + "src/arm64/macro-assembler-arm64-inl.h", + "src/arm64/regexp-macro-assembler-arm64.cc", + "src/arm64/regexp-macro-assembler-arm64.h", + "src/arm64/simulator-arm64.cc", + "src/arm64/simulator-arm64.h", + "src/arm64/stub-cache-arm64.cc", + "src/arm64/utils-arm64.cc", + "src/arm64/utils-arm64.h", + ] + } else if (cpu_arch == "mipsel") { + sources += [ + "src/mips/assembler-mips.cc", + "src/mips/assembler-mips.h", + "src/mips/assembler-mips-inl.h", + "src/mips/builtins-mips.cc", + "src/mips/codegen-mips.cc", + "src/mips/codegen-mips.h", + "src/mips/code-stubs-mips.cc", + "src/mips/code-stubs-mips.h", + "src/mips/constants-mips.cc", + "src/mips/constants-mips.h", + "src/mips/cpu-mips.cc", + "src/mips/debug-mips.cc", + "src/mips/deoptimizer-mips.cc", + "src/mips/disasm-mips.cc", + "src/mips/frames-mips.cc", + "src/mips/frames-mips.h", + "src/mips/full-codegen-mips.cc", + "src/mips/ic-mips.cc", + "src/mips/lithium-codegen-mips.cc", + "src/mips/lithium-codegen-mips.h", + "src/mips/lithium-gap-resolver-mips.cc", + "src/mips/lithium-gap-resolver-mips.h", + "src/mips/lithium-mips.cc", + "src/mips/lithium-mips.h", + "src/mips/macro-assembler-mips.cc", + "src/mips/macro-assembler-mips.h", + "src/mips/regexp-macro-assembler-mips.cc", + "src/mips/regexp-macro-assembler-mips.h", + "src/mips/simulator-mips.cc", + "src/mips/stub-cache-mips.cc", + ] + } + + configs += [ ":internal_config", ":features" ] + + defines = [] + deps = [] + + if (is_posix) { + sources += [ + "src/platform-posix.cc" + ] + } + + if (is_linux) { + sources += [ + "src/platform-linux.cc" + ] + + # TODO(brettw) + # 'conditions': [ + # ['v8_compress_startup_data=="bz2"', { + # 'libraries': [ + # '-lbz2', + # ] + # }], + # ], + + libs = [ "rt" ] + } else if (is_android) { + # TODO(brettw) OS=="android" condition from tools/gyp/v8.gyp + } else if (is_mac) { + sources += [ "src/platform-macos,cc" ] + } else if (is_win) { + sources += [ + "src/platform-win32.cc", + "src/win32-math.cc", + "src/win32-math.h", + ] + + defines += [ "_CRT_RAND_S" ] # for rand_s() + + libs = [ "winmm.lib", "ws2_32.lib" ] + } + + + if (v8_enable_i18n_support) { + deps += [ "//third_party/icu" ] + if (is_win) { + deps += [ "//third_party/icu:icudata" ] + } + } else { + sources -= [ + "src/i18n.cc", + "src/i18n.h", + ] + } + + # TODO(brettw) other conditions from v8.gyp + # TODO(brettw) icu_use_data_file_flag +} + +############################################################################### +# Executables +# + +# TODO(jochen): Remove this as soon as toolchain.gypi is integrated. +if (build_cpu_arch != cpu_arch) { + +executable("mksnapshot") { + sources = [ + ] +} + +} else { + +executable("mksnapshot") { + sources = [ + "src/mksnapshot.cc", + ] + + configs += [ ":internal_config", ":features" ] + + deps = [ + ":v8_base", + ":v8_nosnapshot", + ] + + if (v8_compress_startup_data == "bz2") { + libs = [ "bz2" ] + } +} + +} diff --git a/deps/v8/ChangeLog b/deps/v8/ChangeLog index 879515d..8f1d256 100644 --- a/deps/v8/ChangeLog +++ b/deps/v8/ChangeLog @@ -1,3 +1,308 @@ +2014-05-08: Version 3.26.33 + + Removed default Isolate (Chromium issue 359977). + + Performance and stability improvements on all platforms. + + +2014-05-07: Version 3.26.32 + + Performance and stability improvements on all platforms. + + +2014-05-06: Version 3.26.31 + + Add a basic gn file for V8. + + Performance and stability improvements on all platforms. + + +2014-05-05: Version 3.26.30 + + Introduce a microtask suppression scope and move microtask methods to + isolate (Chromium issue 369503). + + Re-enable Object.observe and add enforcement for security invariants. + + Move cache line size calculation directly into CPU::FlushICache + (Chromium issue 359977). + + Generation of our home-grown memmove doesn't depend on serializer state + anymore (Chromium issue 359977). + + Fix |RunMicrotasks()| leaking reference to the last context being run + on. + + Object.defineProperty shouldn't be a hint that we're constructing a + dictionary (Chromium issue 362870). + + Performance and stability improvements on all platforms. + + +2014-05-01: Version 3.26.29 + + Added a Isolate* parameter to Serializer::enabled() (Chromium issue + 359977). + + ES6: Add support for Array.prototype.fill() (issue 3273). + + Performance and stability improvements on all platforms. + + +2014-04-29: Version 3.26.28 + + PromiseThen should ignore non-function parameters (Chromium issue + 347455). + + Performance and stability improvements on all platforms. + + +2014-04-29: Version 3.26.27 + + Error stack getter should not overwrite itself with a data property + (issue 3294). + + Performance and stability improvements on all platforms. + + +2014-04-28: Version 3.26.26 + + Expose promise value through promise mirror (issue 3093). + + Simplified CPU/CpuFeatures a bit (Chromium issue 359977). + + Performance and stability improvements on all platforms. + + +2014-04-28: Version 3.26.25 + + Add timestamps to CPU profile samples (Chromium issue 363976). + + Expose promise status through promise mirror (issue 3093). + + Remove static CallCompletedCallback handlers. + + Added an Isolate* field to NoTrackDoubleFieldsForSerializerScope, + PlatformFeatureScope and BinaryOpIC::State (Chromium issue 359977). + + Trigger debug event on not yet caught exception in promises (issue + 3093). + + Unbreak vtunejit=on (issue 3288). + + Performance and stability improvements on all platforms. + + +2014-04-25: Version 3.26.24 + + MIPS: CodeStubs contain their corresponding Isolate* now. (part 2) + (Chromium issue 359977). + + MIPS: CodeStubs contain their corresponding Isolate* now. (part 1) + (Chromium issue 359977). + + CodeStubs contain their corresponding Isolate* now. (part 2) (Chromium + issue 359977). + + Make DescriptorArray::IsMoreGeneralThan() and DescriptorArray::Merge() + compatible again (Chromium issue 365172). + + CodeStubs contain their corresponding Isolate* now. (part 1) (Chromium + issue 359977). + + Performance and stability improvements on all platforms. + + +2014-04-24: Version 3.26.23 + + Performance and stability improvements on all platforms. + + +2014-04-23: Version 3.26.22 + + Disable field type tracking by default (Chromium issue 365172). + + Performance and stability improvements on all platforms. + + +2014-04-23: Version 3.26.21 + + Context-allocate all parameters in generators (issue 3280). + + Simplify v8/Isolate teardown (Chromium issue 359977). + + Performance and stability improvements on all platforms. + + +2014-04-21: Version 3.26.20 + + ES6: Add support for Map/Set forEach (Chromium issues 1793, 2323). + + Performance and stability improvements on all platforms. + + +2014-04-18: Version 3.26.19 + + ES6: Add support for Map/Set forEach (Chromium issues 1793, 2323). + + Performance and stability improvements on all platforms. + + +2014-04-17: Version 3.26.18 + + Removed Isolate::EnterDefaultIsolate (Chromium issue 359977). + + Performance and stability improvements on all platforms. + + +2014-04-16: Version 3.26.17 + + Clear invalid field maps in PropertyAccessInfo (Chromium issue 363956). + + ES6: Add support for Map/Set forEach (Chromium issues 1793, 2323). + + Performance and stability improvements on all platforms. + + +2014-04-16: Version 3.26.16 + + Removed EnterIsolateIfNeeded and a soon-to-be-useless assertion + (Chromium issue 359977). + + Removed GetDefaultIsolate{Debugger,ForLocking,StackGuard} (Chromium + issue 359977). + + Performance and stability improvements on all platforms. + + +2014-04-15: Version 3.26.15 + + Fix result of LCodeGen::DoWrapReceiver for strict functions and builtins + (Chromium issue 362128). + + Performance and stability improvements on all platforms. + + +2014-04-15: Version 3.26.14 + + Performance and stability improvements on all platforms. + + +2014-04-14: Version 3.26.13 + + Make maps in monomorphic IC stubs weak (issue 2073). + + x64: Make sure that the upper half of a 64bit register contains 0 for + int32 values (Chromium issue 360611). + + Performance and stability improvements on all platforms. + + +2014-04-11: Version 3.26.12 + + Do not use ranges after range analysis (Chromium issue 361608). + + Performance and stability improvements on all platforms. + + +2014-04-10: Version 3.26.11 + + Performance and stability improvements on all platforms. + + +2014-04-10: Version 3.26.10 + + Allow the embedder to pass the virtual memory limit to v8. + + Performance and stability improvements on all platforms. + + +2014-04-09: Version 3.26.9 + + Fix invalid local property lookup for transitions (Chromium issue + 361025). + + MIPS: Fixed flooring division by -1 (issue 3259). + + Fixed flooring division by -1 on ARM (issue 3259). + + Make `String.prototype.contains` throw when passing a regular expression + (issue 3261). + + Performance and stability improvements on all platforms. + + +2014-04-08: Version 3.26.8 + + Yet another regression test for range analysis (issue 3204). + + Performance and stability improvements on all platforms. + + +2014-04-07: Version 3.26.7 + + Performance and stability improvements on all platforms. + + +2014-04-04: Version 3.26.6 + + Performance and stability improvements on all platforms. + + +2014-04-03: Version 3.26.5 + + Performance and stability improvements on all platforms. + + +2014-04-03: Version 3.26.4 + + Make stray 'return' an early error. + + Show references from weak containers as weak in heap snapshots (Chromium + issue 356590). + + Make invalid LHSs that are calls late errors (Chromium issue 358346). + + Performance and stability improvements on all platforms. + + +2014-04-02: Version 3.26.3 + + Support typed arrays in IsMoreGeneralElementsKindTransition (Chromium + issue 357054). + + Remove debugger_auto_break flag. + + Store i18n meta data in hidden symbols instead of js accessible + properties (Chromium issue 354967). + + Performance and stability improvements on all platforms. + + +2014-04-01: Version 3.26.2 + + Performance and stability improvements on all platforms. + + +2014-04-01: Version 3.26.1 + + Fix Type::Intersect to skip uninhabited bitsets (Chromium issue 357330). + + Fix PrepareKeyedOperand on arm (Chromium issue 358057). + + Performance and stability improvements on all platforms. + + +2014-03-31: Version 3.26.0 + + Deprecate Start/StopCpuProfiling methods (issue 3213). + + Don't crash if we get a timezone change notification on an uninitialized + isolate (Chromium issue 357362). + + Performance and stability improvements on all platforms. + + 2014-03-28: Version 3.25.30 NativeContext::map_cache reference should be strong in heap snapshots diff --git a/deps/v8/DEPS b/deps/v8/DEPS index 353c5c8..24b7841 100644 --- a/deps/v8/DEPS +++ b/deps/v8/DEPS @@ -8,7 +8,7 @@ deps = { "http://gyp.googlecode.com/svn/trunk@1831", "v8/third_party/icu": - "https://src.chromium.org/chrome/trunk/deps/third_party/icu46@258359", + "https://src.chromium.org/svn/trunk/deps/third_party/icu46@258359", } deps_os = { diff --git a/deps/v8/Makefile b/deps/v8/Makefile index cdf5d74..a99b09c 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -96,10 +96,6 @@ endif ifeq ($(optdebug), on) GYPFLAGS += -Dv8_optimized_debug=2 endif -# debuggersupport=off -ifeq ($(debuggersupport), off) - GYPFLAGS += -Dv8_enable_debugger_support=0 -endif # unalignedaccess=on ifeq ($(unalignedaccess), on) GYPFLAGS += -Dv8_can_use_unaligned_accesses=true @@ -140,9 +136,9 @@ endif # asan=/path/to/clang++ ifneq ($(strip $(asan)),) GYPFLAGS += -Dasan=1 - export CXX="$(asan)" - export CXX_host="$(asan)" - export LINK="$(asan)" + export CXX=$(asan) + export CXX_host=$(asan) + export LINK=$(asan) export ASAN_SYMBOLIZER_PATH="$(dir $(asan))llvm-symbolizer" endif @@ -232,7 +228,7 @@ endif # Architectures and modes to be compiled. Consider these to be internal # variables, don't override them (use the targets instead). -ARCHES = ia32 x64 arm arm64 mipsel +ARCHES = ia32 x64 arm arm64 mips mipsel DEFAULT_ARCHES = ia32 x64 arm MODES = release debug optdebug DEFAULT_MODES = release debug @@ -281,10 +277,6 @@ buildbot: $(MAKE) -C "$(OUTDIR)" BUILDTYPE=$(BUILDTYPE) \ builddir="$(abspath $(OUTDIR))/$(BUILDTYPE)" -mips mips.release mips.debug: - @echo "V8 does not support big-endian MIPS builds at the moment," \ - "please use little-endian builds (mipsel)." - # Compile targets. MODES and ARCHES are convenience targets. .SECONDEXPANSION: $(MODES): $(addsuffix .$$@,$(DEFAULT_ARCHES)) @@ -409,7 +401,7 @@ native.clean: rm -rf $(OUTDIR)/native find $(OUTDIR) -regex '.*\(host\|target\)\.native\.mk' -delete -clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)) native.clean +clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)) native.clean gtags.clean # GYP file generation targets. OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(BUILDS)) @@ -467,6 +459,18 @@ grokdump: ia32.release @cat $(DUMP_FILE).tmpl > $(DUMP_FILE) @$(OUTDIR)/ia32.release/d8 --dump-heap-constants >> $(DUMP_FILE) +# Support for the GNU GLOBAL Source Code Tag System. +gtags.files: $(GYPFILES) $(ENVFILE) + @find include src test -name '*.h' -o -name '*.cc' -o -name '*.c' > $@ + +# We need to manually set the stack limit here, to work around bugs in +# gmake-3.81 and global-5.7.1 on recent 64-bit Linux systems. +GPATH GRTAGS GSYMS GTAGS: gtags.files $(shell cat gtags.files 2> /dev/null) + @bash -c 'ulimit -s 10240 && GTAGSFORCECPP=yes gtags -i -q -f $<' + +gtags.clean: + rm -f gtags.files GPATH GRTAGS GSYMS GTAGS + # Dependencies. # Remember to keep these in sync with the DEPS file. dependencies: diff --git a/deps/v8/Makefile.android b/deps/v8/Makefile.android index f4e144f..396b58d 100644 --- a/deps/v8/Makefile.android +++ b/deps/v8/Makefile.android @@ -47,20 +47,20 @@ else endif ifeq ($(ARCH), android_arm) - DEFINES = target_arch=arm v8_target_arch=arm android_target_arch=arm + DEFINES = target_arch=arm v8_target_arch=arm android_target_arch=arm android_target_platform=14 DEFINES += arm_neon=0 arm_version=7 TOOLCHAIN_ARCH = arm-linux-androideabi TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) TOOLCHAIN_VER = 4.6 else ifeq ($(ARCH), android_arm64) - DEFINES = target_arch=arm64 v8_target_arch=arm64 android_target_arch=arm64 + DEFINES = target_arch=arm64 v8_target_arch=arm64 android_target_arch=arm64 android_target_platform=20 TOOLCHAIN_ARCH = aarch64-linux-android TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) TOOLCHAIN_VER = 4.8 else ifeq ($(ARCH), android_mipsel) - DEFINES = target_arch=mipsel v8_target_arch=mipsel + DEFINES = target_arch=mipsel v8_target_arch=mipsel android_target_platform=14 DEFINES += android_target_arch=mips mips_arch_variant=mips32r2 TOOLCHAIN_ARCH = mipsel-linux-android TOOLCHAIN_PREFIX = $(TOOLCHAIN_ARCH) @@ -68,7 +68,7 @@ else else ifeq ($(ARCH), android_ia32) - DEFINES = target_arch=ia32 v8_target_arch=ia32 android_target_arch=x86 + DEFINES = target_arch=ia32 v8_target_arch=ia32 android_target_arch=x86 android_target_platform=14 TOOLCHAIN_ARCH = x86 TOOLCHAIN_PREFIX = i686-linux-android TOOLCHAIN_VER = 4.6 diff --git a/deps/v8/Makefile.nacl b/deps/v8/Makefile.nacl index fc3eb28..1d34a3b 100644 --- a/deps/v8/Makefile.nacl +++ b/deps/v8/Makefile.nacl @@ -77,6 +77,9 @@ GYPENV += host_os=${HOST_OS} # ICU doesn't support NaCl. GYPENV += v8_enable_i18n_support=0 +# Disable strict aliasing - v8 code often relies on undefined behavior of C++. +GYPENV += v8_no_strict_aliasing=1 + NACL_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(NACL_BUILDS)) .SECONDEXPANSION: # For some reason the $$(basename $$@) expansion didn't work here... diff --git a/deps/v8/OWNERS b/deps/v8/OWNERS index 186fc10..2fbb3ef 100644 --- a/deps/v8/OWNERS +++ b/deps/v8/OWNERS @@ -11,6 +11,7 @@ machenbach@chromium.org marja@chromium.org mstarzinger@chromium.org mvstanton@chromium.org +rmcilroy@chromium.org rossberg@chromium.org svenpanne@chromium.org titzer@chromium.org diff --git a/deps/v8/PRESUBMIT.py b/deps/v8/PRESUBMIT.py index 4f7a960..41d79eb 100644 --- a/deps/v8/PRESUBMIT.py +++ b/deps/v8/PRESUBMIT.py @@ -103,6 +103,13 @@ def CheckChangeOnCommit(input_api, output_api): def GetPreferredTryMasters(project, change): return { 'tryserver.v8': { + 'v8_linux_rel': set(['defaulttests']), + 'v8_linux_dbg': set(['defaulttests']), + 'v8_linux_nosnap_rel': set(['defaulttests']), + 'v8_linux_nosnap_dbg': set(['defaulttests']), + 'v8_linux64_rel': set(['defaulttests']), + 'v8_linux_arm_dbg': set(['defaulttests']), + 'v8_linux_arm64_rel': set(['defaulttests']), 'v8_mac_rel': set(['defaulttests']), 'v8_win_rel': set(['defaulttests']), }, diff --git a/deps/v8/build/android.gypi b/deps/v8/build/android.gypi index 9570f44..73ac93a 100644 --- a/deps/v8/build/android.gypi +++ b/deps/v8/build/android.gypi @@ -51,7 +51,7 @@ 'android_stlport_libs': '<(android_stlport)/libs', }, { 'variables': { - 'android_sysroot': '<(android_ndk_root)/platforms/android-9/arch-<(android_target_arch)', + 'android_sysroot': '<(android_ndk_root)/platforms/android-<(android_target_platform)/arch-<(android_target_arch)', 'android_stlport': '<(android_ndk_root)/sources/cxx-stl/stlport/', }, 'android_include': '<(android_sysroot)/usr/include', diff --git a/deps/v8/build/features.gypi b/deps/v8/build/features.gypi index f0e7212..d542d05 100644 --- a/deps/v8/build/features.gypi +++ b/deps/v8/build/features.gypi @@ -31,8 +31,6 @@ 'variables': { 'v8_compress_startup_data%': 'off', - 'v8_enable_debugger_support%': 1, - 'v8_enable_disassembler%': 0, 'v8_enable_gdbjit%': 0, @@ -64,9 +62,6 @@ }, 'target_defaults': { 'conditions': [ - ['v8_enable_debugger_support==1', { - 'defines': ['ENABLE_DEBUGGER_SUPPORT',], - }], ['v8_enable_disassembler==1', { 'defines': ['ENABLE_DISASSEMBLER',], }], @@ -98,7 +93,8 @@ }], ], # conditions 'configurations': { - 'Debug': { + 'DebugBaseCommon': { + 'abstract': 1, 'variables': { 'v8_enable_extra_checks%': 1, 'v8_enable_handle_zapping%': 1, diff --git a/deps/v8/build/gyp_v8 b/deps/v8/build/gyp_v8 index f2a60d1..bc733df 100755 --- a/deps/v8/build/gyp_v8 +++ b/deps/v8/build/gyp_v8 @@ -158,7 +158,8 @@ if __name__ == '__main__': # Generate for the architectures supported on the given platform. gyp_args = list(args) - if platform.system() == 'Linux': + gyp_generators = os.environ.get('GYP_GENERATORS') + if platform.system() == 'Linux' and gyp_generators != 'ninja': # Work around for crbug.com/331475. for f in glob.glob(os.path.join(v8_root, 'out', 'Makefile.*')): os.unlink(f) diff --git a/deps/v8/build/standalone.gypi b/deps/v8/build/standalone.gypi index 6ff0170..befa738 100644 --- a/deps/v8/build/standalone.gypi +++ b/deps/v8/build/standalone.gypi @@ -55,8 +55,8 @@ '&1 | grep -q "^Target: mips" && echo "yes" || echo "no")', + }, + 'conditions': [ + ['mipscompiler=="yes"', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': ['-EB'], + 'ldflags': ['-EB'], + 'conditions': [ + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'cflags': ['-mhard-float'], + 'ldflags': ['-mhard-float'], + }, { + 'cflags': ['-msoft-float'], + 'ldflags': ['-msoft-float'], + }], + ['mips_arch_variant=="mips32r2"', { + 'cflags': ['-mips32r2', '-Wa,-mips32r2'], + }], + ['mips_arch_variant=="mips32r1"', { + 'cflags': ['-mips32', '-Wa,-mips32'], + }], + ], + }], + ], + }], + [ 'v8_can_use_fpu_instructions=="true"', { + 'defines': [ + 'CAN_USE_FPU_INSTRUCTIONS', + ], + }], + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'defines': [ + '__mips_hard_float=1', + 'CAN_USE_FPU_INSTRUCTIONS', + ], + }, { + 'defines': [ + '__mips_soft_float=1' + ], + }], + ['mips_arch_variant=="mips32r2"', { + 'defines': ['_MIPS_ARCH_MIPS32R2',], + }], + ], + }], # v8_target_arch=="mips" ['v8_target_arch=="mipsel"', { 'defines': [ 'V8_TARGET_ARCH_MIPS', @@ -380,7 +431,7 @@ ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ (v8_target_arch=="arm" or v8_target_arch=="ia32" or \ - v8_target_arch=="mipsel")', { + v8_target_arch=="mips" or v8_target_arch=="mipsel")', { # Check whether the host compiler and target compiler support the # '-m32' option and set it if so. 'target_conditions': [ @@ -445,138 +496,154 @@ }], ], # conditions 'configurations': { - 'Debug': { - 'defines': [ - 'ENABLE_DISASSEMBLER', - 'V8_ENABLE_CHECKS', - 'OBJECT_PRINT', - 'VERIFY_HEAP', - 'DEBUG' - ], + # Abstract configuration for v8_optimized_debug == 0. + 'DebugBase0': { + 'abstract': 1, 'msvs_settings': { 'VCCLCompilerTool': { + 'Optimization': '0', 'conditions': [ - ['v8_optimized_debug==0', { - 'Optimization': '0', - 'conditions': [ - ['component=="shared_library"', { - 'RuntimeLibrary': '3', # /MDd - }, { - 'RuntimeLibrary': '1', # /MTd - }], - ], - }], - ['v8_optimized_debug==1', { - 'Optimization': '1', - 'InlineFunctionExpansion': '2', - 'EnableIntrinsicFunctions': 'true', - 'FavorSizeOrSpeed': '0', - 'StringPooling': 'true', - 'BasicRuntimeChecks': '0', - 'conditions': [ - ['component=="shared_library"', { - 'RuntimeLibrary': '3', # /MDd - }, { - 'RuntimeLibrary': '1', # /MTd - }], - ], - }], - ['v8_optimized_debug==2', { - 'Optimization': '2', - 'InlineFunctionExpansion': '2', - 'EnableIntrinsicFunctions': 'true', - 'FavorSizeOrSpeed': '0', - 'StringPooling': 'true', - 'BasicRuntimeChecks': '0', - 'conditions': [ - ['component=="shared_library"', { - 'RuntimeLibrary': '3', #/MDd - }, { - 'RuntimeLibrary': '1', #/MTd - }], - ['v8_target_arch=="x64"', { - # TODO(2207): remove this option once the bug is fixed. - 'WholeProgramOptimization': 'true', - }], - ], + ['component=="shared_library"', { + 'RuntimeLibrary': '3', # /MDd + }, { + 'RuntimeLibrary': '1', # /MTd }], ], }, 'VCLinkerTool': { + 'LinkIncremental': '2', + }, + }, + 'conditions': [ + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ + OS=="qnx"', { + 'cflags!': [ + '-O0', + '-O3', + '-O2', + '-O1', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + ], + }], + ['OS=="mac"', { + 'xcode_settings': { + 'GCC_OPTIMIZATION_LEVEL': '0', # -O0 + }, + }], + ], + }, # DebugBase0 + # Abstract configuration for v8_optimized_debug == 1. + 'DebugBase1': { + 'abstract': 1, + 'msvs_settings': { + 'VCCLCompilerTool': { + 'Optimization': '1', + 'InlineFunctionExpansion': '2', + 'EnableIntrinsicFunctions': 'true', + 'FavorSizeOrSpeed': '0', + 'StringPooling': 'true', + 'BasicRuntimeChecks': '0', 'conditions': [ - ['v8_optimized_debug==0', { - 'LinkIncremental': '2', - }], - ['v8_optimized_debug==1', { - 'LinkIncremental': '2', - }], - ['v8_optimized_debug==2', { - 'LinkIncremental': '1', - 'OptimizeReferences': '2', - 'EnableCOMDATFolding': '2', + ['component=="shared_library"', { + 'RuntimeLibrary': '3', # /MDd + }, { + 'RuntimeLibrary': '1', # /MTd }], ], }, + 'VCLinkerTool': { + 'LinkIncremental': '2', + }, }, 'conditions': [ ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ OS=="qnx"', { - 'cflags': [ '-Wall', '<(werror)', '-W', '-Wno-unused-parameter', - '-Wnon-virtual-dtor', '-Woverloaded-virtual', - '<(wno_array_bounds)', - ], + 'cflags!': [ + '-O0', + '-O3', # TODO(2807) should be -O1. + '-O2', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + '-O1', # TODO(2807) should be -O3. + ], 'conditions': [ - ['v8_optimized_debug==0', { - 'cflags!': [ - '-O0', - '-O3', - '-O2', - '-O1', - '-Os', - ], + ['gcc_version==44 and clang==0', { 'cflags': [ - '-fdata-sections', - '-ffunction-sections', + # Avoid crashes with gcc 4.4 in the v8 test suite. + '-fno-tree-vrp', ], }], - ['v8_optimized_debug==1', { - 'cflags!': [ - '-O0', - '-O3', # TODO(2807) should be -O1. - '-O2', - '-Os', - ], - 'cflags': [ - '-fdata-sections', - '-ffunction-sections', - '-O1', # TODO(2807) should be -O3. - ], + ], + }], + ['OS=="mac"', { + 'xcode_settings': { + 'GCC_OPTIMIZATION_LEVEL': '3', # -O3 + 'GCC_STRICT_ALIASING': 'YES', + }, + }], + ], + }, # DebugBase1 + # Abstract configuration for v8_optimized_debug == 2. + 'DebugBase2': { + 'abstract': 1, + 'msvs_settings': { + 'VCCLCompilerTool': { + 'Optimization': '2', + 'InlineFunctionExpansion': '2', + 'EnableIntrinsicFunctions': 'true', + 'FavorSizeOrSpeed': '0', + 'StringPooling': 'true', + 'BasicRuntimeChecks': '0', + 'conditions': [ + ['component=="shared_library"', { + 'RuntimeLibrary': '3', #/MDd + }, { + 'RuntimeLibrary': '1', #/MTd }], - ['v8_optimized_debug==2', { - 'cflags!': [ - '-O0', - '-O1', - '-Os', - ], - 'cflags': [ - '-fdata-sections', - '-ffunction-sections', - ], - 'defines': [ - 'OPTIMIZED_DEBUG' - ], - 'conditions': [ - # TODO(crbug.com/272548): Avoid -O3 in NaCl - ['nacl_target_arch=="none"', { - 'cflags': ['-O3'], - 'cflags!': ['-O2'], - }, { - 'cflags': ['-O2'], - 'cflags!': ['-O3'], - }], - ], + ['v8_target_arch=="x64"', { + # TODO(2207): remove this option once the bug is fixed. + 'WholeProgramOptimization': 'true', + }], + ], + }, + 'VCLinkerTool': { + 'LinkIncremental': '1', + 'OptimizeReferences': '2', + 'EnableCOMDATFolding': '2', + }, + }, + 'conditions': [ + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ + OS=="qnx"', { + 'cflags!': [ + '-O0', + '-O1', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + ], + 'defines': [ + 'OPTIMIZED_DEBUG' + ], + 'conditions': [ + # TODO(crbug.com/272548): Avoid -O3 in NaCl + ['nacl_target_arch=="none"', { + 'cflags': ['-O3'], + 'cflags!': ['-O2'], + }, { + 'cflags': ['-O2'], + 'cflags!': ['-O3'], }], - ['v8_optimized_debug!=0 and gcc_version==44 and clang==0', { + ['gcc_version==44 and clang==0', { 'cflags': [ # Avoid crashes with gcc 4.4 in the v8 test suite. '-fno-tree-vrp', @@ -584,6 +651,29 @@ }], ], }], + ['OS=="mac"', { + 'xcode_settings': { + 'GCC_OPTIMIZATION_LEVEL': '3', # -O3 + 'GCC_STRICT_ALIASING': 'YES', + }, + }], + ], + }, # DebugBase2 + # Common settings for the Debug configuration. + 'DebugBaseCommon': { + 'abstract': 1, + 'defines': [ + 'ENABLE_DISASSEMBLER', + 'V8_ENABLE_CHECKS', + 'OBJECT_PRINT', + 'VERIFY_HEAP', + 'DEBUG' + ], + 'conditions': [ + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ + OS=="qnx"', { + 'cflags': [ '-Woverloaded-virtual', '<(wno_array_bounds)', ], + }], ['OS=="linux" and v8_enable_backtrace==1', { # Support for backtrace_symbols. 'ldflags': [ '-rdynamic' ], @@ -602,17 +692,19 @@ }], ], }], - ['OS=="mac"', { - 'xcode_settings': { - 'conditions': [ - ['v8_optimized_debug==0', { - 'GCC_OPTIMIZATION_LEVEL': '0', # -O0 - }, { - 'GCC_OPTIMIZATION_LEVEL': '3', # -O3 - 'GCC_STRICT_ALIASING': 'YES', - }], - ], - }, + ], + }, # DebugBaseCommon + 'Debug': { + 'inherit_from': ['DebugBaseCommon'], + 'conditions': [ + ['v8_optimized_debug==0', { + 'inherit_from': ['DebugBase0'], + }], + ['v8_optimized_debug==1', { + 'inherit_from': ['DebugBase1'], + }], + ['v8_optimized_debug==2', { + 'inherit_from': ['DebugBase2'], }], ], }, # Debug diff --git a/deps/v8/include/v8-debug.h b/deps/v8/include/v8-debug.h index 1a86a06..bd3eb77 100644 --- a/deps/v8/include/v8-debug.h +++ b/deps/v8/include/v8-debug.h @@ -1,29 +1,6 @@ // Copyright 2008 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. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef V8_V8_DEBUG_H_ #define V8_V8_DEBUG_H_ @@ -190,32 +167,28 @@ class V8_EXPORT Debug { Handle data = Handle()); // Schedule a debugger break to happen when JavaScript code is run - // in the given isolate. If no isolate is provided the default - // isolate is used. - static void DebugBreak(Isolate* isolate = NULL); + // in the given isolate. + static void DebugBreak(Isolate* isolate); // Remove scheduled debugger break in given isolate if it has not - // happened yet. If no isolate is provided the default isolate is - // used. - static void CancelDebugBreak(Isolate* isolate = NULL); + // happened yet. + static void CancelDebugBreak(Isolate* isolate); // Break execution of JavaScript in the given isolate (this method // can be invoked from a non-VM thread) for further client command // execution on a VM thread. Client data is then passed in // EventDetails to EventCallback2 at the moment when the VM actually - // stops. If no isolate is provided the default isolate is used. - static void DebugBreakForCommand(ClientData* data = NULL, - Isolate* isolate = NULL); + // stops. + static void DebugBreakForCommand(Isolate* isolate, ClientData* data); + + // TODO(svenpanne) Remove this when Chrome is updated. + static void DebugBreakForCommand(ClientData* data, Isolate* isolate) { + DebugBreakForCommand(isolate, data); + } // Message based interface. The message protocol is JSON. static void SetMessageHandler2(MessageHandler2 handler); - // If no isolate is provided the default isolate is - // used. - // TODO(dcarney): remove - static void SendCommand(const uint16_t* command, int length, - ClientData* client_data = NULL, - Isolate* isolate = NULL); static void SendCommand(Isolate* isolate, const uint16_t* command, int length, ClientData* client_data = NULL); @@ -290,7 +263,7 @@ class V8_EXPORT Debug { * * Generally when message arrives V8 may be in one of 3 states: * 1. V8 is running script; V8 will automatically interrupt and process all - * pending messages (however auto_break flag should be enabled); + * pending messages; * 2. V8 is suspended on debug breakpoint; in this state V8 is dedicated * to reading and processing debug messages; * 3. V8 is not running at all or has called some long-working C++ function; @@ -331,7 +304,12 @@ class V8_EXPORT Debug { * (default Isolate if not provided). V8 will abort if LiveEdit is * unexpectedly used. LiveEdit is enabled by default. */ - static void SetLiveEditEnabled(bool enable, Isolate* isolate = NULL); + static void SetLiveEditEnabled(Isolate* isolate, bool enable); + + // TODO(svenpanne) Remove this when Chrome is updated. + static void SetLiveEditEnabled(bool enable, Isolate* isolate) { + SetLiveEditEnabled(isolate, enable); + } }; diff --git a/deps/v8/include/v8-platform.h b/deps/v8/include/v8-platform.h index 75fddd5..5667211 100644 --- a/deps/v8/include/v8-platform.h +++ b/deps/v8/include/v8-platform.h @@ -1,29 +1,6 @@ // 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. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef V8_V8_PLATFORM_H_ #define V8_V8_PLATFORM_H_ diff --git a/deps/v8/include/v8-profiler.h b/deps/v8/include/v8-profiler.h index 1691f29..19d143e 100644 --- a/deps/v8/include/v8-profiler.h +++ b/deps/v8/include/v8-profiler.h @@ -1,29 +1,6 @@ // Copyright 2010 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. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef V8_V8_PROFILER_H_ #define V8_V8_PROFILER_H_ @@ -106,27 +83,35 @@ class V8_EXPORT CpuProfile { const CpuProfileNode* GetTopDownRoot() const; /** - * Returns number of samples recorded. The samples are not recorded unless - * |record_samples| parameter of CpuProfiler::StartCpuProfiling is true. - */ + * Returns number of samples recorded. The samples are not recorded unless + * |record_samples| parameter of CpuProfiler::StartCpuProfiling is true. + */ int GetSamplesCount() const; /** - * Returns profile node corresponding to the top frame the sample at - * the given index. - */ + * Returns profile node corresponding to the top frame the sample at + * the given index. + */ const CpuProfileNode* GetSample(int index) const; /** - * Returns time when the profile recording started (in microseconds - * since the Epoch). - */ + * Returns the timestamp of the sample. The timestamp is the number of + * microseconds since some unspecified starting point. + * The point is equal to the starting point used by GetStartTime. + */ + int64_t GetSampleTimestamp(int index) const; + + /** + * Returns time when the profile recording was started (in microseconds) + * since some unspecified starting point. + */ int64_t GetStartTime() const; /** - * Returns time when the profile recording was stopped (in microseconds - * since the Epoch). - */ + * Returns time when the profile recording was stopped (in microseconds) + * since some unspecified starting point. + * The point is equal to the starting point used by GetStartTime. + */ int64_t GetEndTime() const; /** @@ -164,7 +149,9 @@ class V8_EXPORT CpuProfiler { void StartProfiling(Handle title, bool record_samples = false); /** Deprecated. Use StartProfiling instead. */ - void StartCpuProfiling(Handle title, bool record_samples = false); + V8_DEPRECATED("Use StartProfiling", + void StartCpuProfiling(Handle title, + bool record_samples = false)); /** * Stops collecting CPU profile with a given title and returns it. @@ -173,7 +160,8 @@ class V8_EXPORT CpuProfiler { CpuProfile* StopProfiling(Handle title); /** Deprecated. Use StopProfiling instead. */ - const CpuProfile* StopCpuProfiling(Handle title); + V8_DEPRECATED("Use StopProfiling", + const CpuProfile* StopCpuProfiling(Handle title)); /** * Tells the profiler whether the embedder is idle. diff --git a/deps/v8/include/v8-testing.h b/deps/v8/include/v8-testing.h index ba4fcc4..c827b69 100644 --- a/deps/v8/include/v8-testing.h +++ b/deps/v8/include/v8-testing.h @@ -1,29 +1,6 @@ // Copyright 2010 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. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef V8_V8_TEST_H_ #define V8_V8_TEST_H_ diff --git a/deps/v8/include/v8-util.h b/deps/v8/include/v8-util.h index 3f8cc6d..60feff5 100644 --- a/deps/v8/include/v8-util.h +++ b/deps/v8/include/v8-util.h @@ -1,35 +1,13 @@ // Copyright 2014 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. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. #ifndef V8_UTIL_H_ #define V8_UTIL_H_ #include "v8.h" #include +#include /** * Support for Persistent containers. @@ -42,6 +20,10 @@ namespace v8 { typedef uintptr_t PersistentContainerValue; static const uintptr_t kPersistentContainerNotFound = 0; +enum PersistentContainerCallbackType { + kNotWeak, + kWeak +}; /** @@ -92,38 +74,34 @@ class StdMapTraits { /** * A default trait implementation for PersistentValueMap, which inherits * a std:map backing map from StdMapTraits and holds non-weak persistent - * objects. + * objects and has no special Dispose handling. * - * Users have to implement their own dispose trait. + * You should not derive from this class, since MapType depends on the + * surrounding class, and hence a subclass cannot simply inherit the methods. */ template -class StrongMapTraits : public StdMapTraits { +class DefaultPersistentValueMapTraits : public StdMapTraits { public: // Weak callback & friends: - static const bool kIsWeak = false; - typedef typename StdMapTraits::Impl Impl; + static const PersistentContainerCallbackType kCallbackType = kNotWeak; + typedef PersistentValueMap > + MapType; typedef void WeakCallbackDataType; + static WeakCallbackDataType* WeakCallbackParameter( - Impl* impl, const K& key, Local value); - static Impl* ImplFromWeakCallbackData( - const WeakCallbackData& data); + MapType* map, const K& key, Local value) { + return NULL; + } + static MapType* MapFromWeakCallbackData( + const WeakCallbackData& data) { + return NULL; + } static K KeyFromWeakCallbackData( - const WeakCallbackData& data); - static void DisposeCallbackData(WeakCallbackDataType* data); -}; - - -/** - * A default trait implementation for PersistentValueMap, with a std::map - * backing map, non-weak persistents as values, and no special dispose - * handling. Can be used as-is. - */ -template -class DefaultPersistentValueMapTraits : public StrongMapTraits { - public: - typedef typename StrongMapTraits::Impl Impl; - static void Dispose(Isolate* isolate, UniquePersistent value, - Impl* impl, K key) { } + const WeakCallbackData& data) { + return K(); + } + static void DisposeCallbackData(WeakCallbackDataType* data) { } + static void Dispose(Isolate* isolate, UniquePersistent value, K key) { } }; @@ -140,55 +118,49 @@ class DefaultPersistentValueMapTraits : public StrongMapTraits { template class PersistentValueMap { public: - V8_INLINE explicit PersistentValueMap(Isolate* isolate) : isolate_(isolate) {} + explicit PersistentValueMap(Isolate* isolate) : isolate_(isolate) {} - V8_INLINE ~PersistentValueMap() { Clear(); } + ~PersistentValueMap() { Clear(); } - V8_INLINE Isolate* GetIsolate() { return isolate_; } + Isolate* GetIsolate() { return isolate_; } /** * Return size of the map. */ - V8_INLINE size_t Size() { return Traits::Size(&impl_); } + size_t Size() { return Traits::Size(&impl_); } /** * Return whether the map holds weak persistents. */ - V8_INLINE bool IsWeak() { return Traits::kIsWeak; } + bool IsWeak() { return Traits::kCallbackType != kNotWeak; } /** * Get value stored in map. */ - V8_INLINE Local Get(const K& key) { + Local Get(const K& key) { return Local::New(isolate_, FromVal(Traits::Get(&impl_, key))); } /** * Check whether a value is contained in the map. */ - V8_INLINE bool Contains(const K& key) { - return Traits::Get(&impl_, key) != 0; + bool Contains(const K& key) { + return Traits::Get(&impl_, key) != kPersistentContainerNotFound; } /** * Get value stored in map and set it in returnValue. * Return true if a value was found. */ - V8_INLINE bool SetReturnValue(const K& key, - ReturnValue& returnValue) { - PersistentContainerValue value = Traits::Get(&impl_, key); - bool hasValue = value != 0; - if (hasValue) { - returnValue.SetInternal( - *reinterpret_cast(FromVal(value))); - } - return hasValue; + bool SetReturnValue(const K& key, + ReturnValue returnValue) { + return SetReturnValueFromVal(returnValue, Traits::Get(&impl_, key)); } /** * Call Isolate::SetReference with the given parent and the map value. */ - V8_INLINE void SetReference(const K& key, + void SetReference(const K& key, const Persistent& parent) { GetIsolate()->SetReference( reinterpret_cast(parent.val_), @@ -215,7 +187,7 @@ class PersistentValueMap { /** * Return value for key and remove it from the map. */ - V8_INLINE UniquePersistent Remove(const K& key) { + UniquePersistent Remove(const K& key) { return Release(Traits::Remove(&impl_, key)).Pass(); } @@ -231,12 +203,76 @@ class PersistentValueMap { typename Traits::Impl impl; Traits::Swap(impl_, impl); for (It i = Traits::Begin(&impl); i != Traits::End(&impl); ++i) { - Traits::Dispose(isolate_, Release(Traits::Value(i)).Pass(), &impl, - Traits::Key(i)); + Traits::Dispose(isolate_, Release(Traits::Value(i)).Pass(), + Traits::Key(i)); } } } + /** + * Helper class for GetReference/SetWithReference. Do not use outside + * that context. + */ + class PersistentValueReference { + public: + PersistentValueReference() : value_(kPersistentContainerNotFound) { } + PersistentValueReference(const PersistentValueReference& other) + : value_(other.value_) { } + + Local NewLocal(Isolate* isolate) const { + return Local::New(isolate, FromVal(value_)); + } + bool IsEmpty() const { + return value_ == kPersistentContainerNotFound; + } + template + bool SetReturnValue(ReturnValue returnValue) { + return SetReturnValueFromVal(returnValue, value_); + } + void Reset() { + value_ = kPersistentContainerNotFound; + } + void operator=(const PersistentValueReference& other) { + value_ = other.value_; + } + + private: + friend class PersistentValueMap; + + explicit PersistentValueReference(PersistentContainerValue value) + : value_(value) { } + + void operator=(PersistentContainerValue value) { + value_ = value; + } + + PersistentContainerValue value_; + }; + + /** + * Get a reference to a map value. This enables fast, repeated access + * to a value stored in the map while the map remains unchanged. + * + * Careful: This is potentially unsafe, so please use with care. + * The value will become invalid if the value for this key changes + * in the underlying map, as a result of Set or Remove for the same + * key; as a result of the weak callback for the same key; or as a + * result of calling Clear() or destruction of the map. + */ + PersistentValueReference GetReference(const K& key) { + return PersistentValueReference(Traits::Get(&impl_, key)); + } + + /** + * Put a value into the map and update the reference. + * Restrictions of GetReference apply here as well. + */ + UniquePersistent Set(const K& key, UniquePersistent value, + PersistentValueReference* reference) { + *reference = Leak(&value); + return SetUnique(key, &value); + } + private: PersistentValueMap(PersistentValueMap&); void operator=(PersistentValueMap&); @@ -246,10 +282,10 @@ class PersistentValueMap { * by the Traits class. */ UniquePersistent SetUnique(const K& key, UniquePersistent* persistent) { - if (Traits::kIsWeak) { + if (Traits::kCallbackType != kNotWeak) { Local value(Local::New(isolate_, *persistent)); persistent->template SetWeak( - Traits::WeakCallbackParameter(&impl_, key, value), WeakCallback); + Traits::WeakCallbackParameter(this, key, value), WeakCallback); } PersistentContainerValue old_value = Traits::Set(&impl_, key, ClearAndLeak(persistent)); @@ -258,34 +294,50 @@ class PersistentValueMap { static void WeakCallback( const WeakCallbackData& data) { - if (Traits::kIsWeak) { - typename Traits::Impl* impl = Traits::ImplFromWeakCallbackData(data); + if (Traits::kCallbackType != kNotWeak) { + PersistentValueMap* persistentValueMap = + Traits::MapFromWeakCallbackData(data); K key = Traits::KeyFromWeakCallbackData(data); - PersistentContainerValue value = Traits::Remove(impl, key); - Traits::Dispose(data.GetIsolate(), Release(value).Pass(), impl, key); + Traits::Dispose(data.GetIsolate(), + persistentValueMap->Remove(key).Pass(), key); } } - V8_INLINE static V* FromVal(PersistentContainerValue v) { + static V* FromVal(PersistentContainerValue v) { return reinterpret_cast(v); } - V8_INLINE static PersistentContainerValue ClearAndLeak( + static bool SetReturnValueFromVal( + ReturnValue& returnValue, PersistentContainerValue value) { + bool hasValue = value != kPersistentContainerNotFound; + if (hasValue) { + returnValue.SetInternal( + *reinterpret_cast(FromVal(value))); + } + return hasValue; + } + + static PersistentContainerValue ClearAndLeak( UniquePersistent* persistent) { V* v = persistent->val_; persistent->val_ = 0; return reinterpret_cast(v); } + static PersistentContainerValue Leak( + UniquePersistent* persistent) { + return reinterpret_cast(persistent->val_); + } + /** * Return a container value as UniquePersistent and make sure the weak * callback is properly disposed of. All remove functionality should go * through this. */ - V8_INLINE static UniquePersistent Release(PersistentContainerValue v) { + static UniquePersistent Release(PersistentContainerValue v) { UniquePersistent p; p.val_ = FromVal(v); - if (Traits::kIsWeak && !p.IsEmpty()) { + if (Traits::kCallbackType != kNotWeak && !p.IsEmpty()) { Traits::DisposeCallbackData( p.template ClearWeak()); } @@ -313,42 +365,121 @@ class StdPersistentValueMap : public PersistentValueMap { }; +class DefaultPersistentValueVectorTraits { + public: + typedef std::vector Impl; + + static void Append(Impl* impl, PersistentContainerValue value) { + impl->push_back(value); + } + static bool IsEmpty(const Impl* impl) { + return impl->empty(); + } + static size_t Size(const Impl* impl) { + return impl->size(); + } + static PersistentContainerValue Get(const Impl* impl, size_t i) { + return (i < impl->size()) ? impl->at(i) : kPersistentContainerNotFound; + } + static void ReserveCapacity(Impl* impl, size_t capacity) { + impl->reserve(capacity); + } + static void Clear(Impl* impl) { + impl->clear(); + } +}; + + /** - * Empty default implementations for StrongTraits methods. - * - * These should not be necessary, since they're only used in code that - * is surrounded by if(Traits::kIsWeak), which for StrongMapTraits is - * compile-time false. Most compilers can live without them; however - * the compiler we use from 64-bit Win differs. + * A vector wrapper that safely stores UniquePersistent values. + * C++11 embedders don't need this class, as they can use UniquePersistent + * directly in std containers. * - * TODO(vogelheim): Remove these once they're no longer necessary. + * This class relies on a backing vector implementation, whose type and methods + * are described by the Traits class. The backing map will handle values of type + * PersistentContainerValue, with all conversion into and out of V8 + * handles being transparently handled by this class. */ -template -typename StrongMapTraits::WeakCallbackDataType* - StrongMapTraits::WeakCallbackParameter( - Impl* impl, const K& key, Local value) { - return NULL; -} +template +class PersistentValueVector { + public: + explicit PersistentValueVector(Isolate* isolate) : isolate_(isolate) { } + ~PersistentValueVector() { + Clear(); + } -template -typename StrongMapTraits::Impl* - StrongMapTraits::ImplFromWeakCallbackData( - const WeakCallbackData& data) { - return NULL; -} + /** + * Append a value to the vector. + */ + void Append(Local value) { + UniquePersistent persistent(isolate_, value); + Traits::Append(&impl_, ClearAndLeak(&persistent)); + } + /** + * Append a persistent's value to the vector. + */ + void Append(UniquePersistent persistent) { + Traits::Append(&impl_, ClearAndLeak(&persistent)); + }; -template -K StrongMapTraits::KeyFromWeakCallbackData( - const WeakCallbackData& data) { - return K(); -} + /** + * Are there any values in the vector? + */ + bool IsEmpty() const { + return Traits::IsEmpty(&impl_); + } + /** + * How many elements are in the vector? + */ + size_t Size() const { + return Traits::Size(&impl_); + } -template -void StrongMapTraits::DisposeCallbackData(WeakCallbackDataType* data) { -} + /** + * Retrieve the i-th value in the vector. + */ + Local Get(size_t index) const { + return Local::New(isolate_, FromVal(Traits::Get(&impl_, index))); + } + + /** + * Remove all elements from the vector. + */ + void Clear() { + size_t length = Traits::Size(&impl_); + for (size_t i = 0; i < length; i++) { + UniquePersistent p; + p.val_ = FromVal(Traits::Get(&impl_, i)); + } + Traits::Clear(&impl_); + } + + /** + * Reserve capacity in the vector. + * (Efficiency gains depend on the backing implementation.) + */ + void ReserveCapacity(size_t capacity) { + Traits::ReserveCapacity(&impl_, capacity); + } + + private: + static PersistentContainerValue ClearAndLeak( + UniquePersistent* persistent) { + V* v = persistent->val_; + persistent->val_ = 0; + return reinterpret_cast(v); + } + + static V* FromVal(PersistentContainerValue v) { + return reinterpret_cast(v); + } + + Isolate* isolate_; + typename Traits::Impl impl_; +}; } // namespace v8 diff --git a/deps/v8/include/v8.h b/deps/v8/include/v8.h index 608e3c5..d39dca9 100644 --- a/deps/v8/include/v8.h +++ b/deps/v8/include/v8.h @@ -1,29 +1,6 @@ // Copyright 2012 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. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. /** \mainpage V8 API Reference Guide * @@ -129,6 +106,7 @@ template > class Persistent; template class UniquePersistent; template class PersistentValueMap; +template class PersistentValueVector; template class WeakCallbackObject; class FunctionTemplate; class ObjectTemplate; @@ -315,15 +293,6 @@ template class Handle { return New(isolate, that.val_); } -#ifndef V8_ALLOW_ACCESS_TO_RAW_HANDLE_CONSTRUCTOR - - private: -#endif - /** - * Creates a new handle for the specified value. - */ - V8_INLINE explicit Handle(T* val) : val_(val) {} - private: friend class Utils; template friend class Persistent; @@ -342,6 +311,11 @@ template class Handle { friend class Object; friend class Private; + /** + * Creates a new handle for the specified value. + */ + V8_INLINE explicit Handle(T* val) : val_(val) {} + V8_INLINE static Handle New(Isolate* isolate, T* that); T* val_; @@ -395,12 +369,6 @@ template class Local : public Handle { V8_INLINE static Local New(Isolate* isolate, const PersistentBase& that); -#ifndef V8_ALLOW_ACCESS_TO_RAW_HANDLE_CONSTRUCTOR - - private: -#endif - template V8_INLINE Local(S* that) : Handle(that) { } - private: friend class Utils; template friend class Eternal; @@ -417,7 +385,9 @@ template class Local : public Handle { friend class HandleScope; friend class EscapableHandleScope; template friend class PersistentValueMap; + template friend class PersistentValueVector; + template V8_INLINE Local(S* that) : Handle(that) { } V8_INLINE static Local New(Isolate* isolate, T* that); }; @@ -522,6 +492,13 @@ template class PersistentBase { return !operator==(that); } + /** + * Install a finalization callback on this object. + * NOTE: There is no guarantee as to *when* or even *if* the callback is + * invoked. The invocation is performed solely on a best effort basis. + * As always, GC-based finalization should *not* be relied upon for any + * critical form of resource management! + */ template V8_INLINE void SetWeak( P* parameter, @@ -586,6 +563,7 @@ template class PersistentBase { template friend class PersistentBase; template friend class ReturnValue; template friend class PersistentValueMap; + template friend class PersistentValueVector; friend class Object; explicit V8_INLINE PersistentBase(T* val) : val_(val) {} @@ -719,15 +697,6 @@ template class Persistent : public PersistentBase { // This will be removed. V8_INLINE T* ClearAndLeak(); - // TODO(dcarney): remove -#ifndef V8_ALLOW_ACCESS_TO_RAW_HANDLE_CONSTRUCTOR - - private: -#endif - template V8_INLINE Persistent(S* that) : PersistentBase(that) { } - - V8_INLINE T* operator*() const { return this->val_; } - private: friend class Isolate; friend class Utils; @@ -736,6 +705,8 @@ template class Persistent : public PersistentBase { template friend class Persistent; template friend class ReturnValue; + template V8_INLINE Persistent(S* that) : PersistentBase(that) { } + V8_INLINE T* operator*() const { return this->val_; } template V8_INLINE void Copy(const Persistent& that); }; @@ -804,7 +775,7 @@ class UniquePersistent : public PersistentBase { /** * Pass allows returning uniques from functions, etc. */ - V8_INLINE UniquePersistent Pass() { return UniquePersistent(RValue(this)); } + UniquePersistent Pass() { return UniquePersistent(RValue(this)); } private: UniquePersistent(UniquePersistent&); @@ -937,53 +908,6 @@ class V8_EXPORT Data { /** - * Pre-compilation data that can be associated with a script. This - * data can be calculated for a script in advance of actually - * compiling it, and can be stored between compilations. When script - * data is given to the compile method compilation will be faster. - */ -class V8_EXPORT ScriptData { // NOLINT - public: - virtual ~ScriptData() { } - - /** - * Pre-compiles the specified script (context-independent). - * - * NOTE: Pre-compilation using this method cannot happen on another thread - * without using Lockers. - * - * \param source Script source code. - */ - static ScriptData* PreCompile(Handle source); - - /** - * Load previous pre-compilation data. - * - * \param data Pointer to data returned by a call to Data() of a previous - * ScriptData. Ownership is not transferred. - * \param length Length of data. - */ - static ScriptData* New(const char* data, int length); - - /** - * Returns the length of Data(). - */ - virtual int Length() = 0; - - /** - * Returns a serialized representation of this ScriptData that can later be - * passed to New(). NOTE: Serialized data is platform-dependent. - */ - virtual const char* Data() = 0; - - /** - * Returns true if the source code could not be parsed. - */ - virtual bool HasError() = 0; -}; - - -/** * The origin, within a file, of a script. */ class ScriptOrigin { @@ -1040,12 +964,9 @@ class V8_EXPORT Script { public: /** * A shorthand for ScriptCompiler::Compile(). - * The ScriptData parameter will be deprecated; use ScriptCompiler::Compile if - * you want to pass it. */ static Local