[v8.x] deps: update V8 to 6.2 by targos · Pull Request #16413 · nodejs/node

@MylesBorins MylesBorins added the wip

Issues and PRs that are still a work in progress.

label

Oct 30, 2017
With V8 6.2 there is one line less in the promise trace.

PR-URL: nodejs#15362
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: nodejs#15362
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
PR-URL: nodejs#15362
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Original commit message:

    [api] Add optional data pointer to GC callbacks

    This can be useful when there may be multiple callbacks attached by
    code that's not directly tied to a single isolate, e.g. working
    on a per-context basis.

    This also allows rephrasing the global non-isolate APIs in terms
    of this new API, rather than working around it inside `src/heap`.

    TBR=hpayer@chromium.org

    Bug:
    Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
    Change-Id: I2e490ec40d1a34ea812f25f41ef9741d2116d965
    Reviewed-on: https://chromium-review.googlesource.com/647548
    Reviewed-by: Yang Guo <yangguo@chromium.org>
    Reviewed-by: Adam Klein <adamk@chromium.org>
    Commit-Queue: Yang Guo <yangguo@chromium.org>
    Cr-Commit-Position: refs/heads/master@{nodejs#47923}

PR-URL: nodejs#15391
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
This change fixes a potential segfault in the sampling heap profiler.
This landed as part of a larger change upstream [1]. This is the minimal
backport that avoids the segfault.

[1]: https://git.io/vdTYL

PR-URL: nodejs#15498
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Original commit message:

    avoid constructor inheritance due to compilation issues

    Constructor inheritance of a templated constructor is causing compilation issues for node.js:

    https: //github.com/nodejs/pull/15362#issue-257007421
    Change-Id: I7d099ff5a1a2fd5b19c11112ddef8fe824e509f7
    Reviewed-on: https://chromium-review.googlesource.com/707008
    Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48445}

Refs: v8/v8@0f1dfae
PR-URL: nodejs#15362
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Original commit message:
  [api] Intercept DefineProperty after Descriptor query

  Analog to other interceptors, intercept the DefineProperty
  call only after obtaining the property descriptor.

  This behavior allows us to mirror calls on a sandboxed object
  as it is needed in Node. See for example
  nodejs#13265

  Bug:
  Change-Id: I73b8f8908d13473939b37fb6727858d0bee6bda3
  Reviewed-on: https://chromium-review.googlesource.com/725295
  Reviewed-by: Andreas Haas <ahaas@chromium.org>
  Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
  Cr-Commit-Position: refs/heads/master@{#48683}

PR-URL: nodejs#16294
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Original commit message:

    [heap] Ensure progress in unmapping memory chunks.

    If sweeping is not making progress and there are many young generation
    GCs happening, then this can lead to accumulation of memory chunks in
    the unmapper queue.

    Bug: chromium:771966
    Change-Id: Ief73ada0d17198a80b668850c6d2e7ea413113e7
    Reviewed-on: https://chromium-review.googlesource.com/702479
    Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
    Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
    Cr-Commit-Position: refs/heads/master@{nodejs#48312}

Refs: v8/v8@2c75616
Refs: nodejs/help#917 (comment)
Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=771966

PR-URL: nodejs#16490
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>

@targos @MylesBorins

@targos @MylesBorins

Original commit message:
  [inspector] added V8InspectorClient::maxAsyncCallStackDepthChanged

  R=dgozman@chromium.org

  Bug: none
  Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng
  Change-Id: I0fa10978266feb3c3907ce1f3386ae7a34a33582
  Reviewed-on: https://chromium-review.googlesource.com/726490
  Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
  Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
  Cr-Commit-Position: refs/heads/master@{nodejs#48705}

PR-URL: nodejs#16308
Refs: v8/v8@b1cd96e
Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Original commit message:

    I believe the paths to the V8 include headers are incorrect. The
    paths to other sources seem to be relative to the parent directory.

    When building Node.js I get the following warning on Windows:
    Warning: Missing input files:
    deps\v8\src\..\..\include\v8-inspector-protocol.h
    deps\v8\src\..\..\include\v8-inspector.h

    This commit updates the two include paths.

    Bug:
    Change-Id: I51a057abba61e294e7811ba69db03e283b0bdc3f
    Reviewed-on: https://chromium-review.googlesource.com/743981
    Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
    Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
    Cr-Commit-Position: refs/heads/master@{nodejs#49121}

This commit also increments the v8_embedder_string version.

PR-URL: nodejs#16900
Fixes: nodejs#16614
Refs: v8/v8@b8331cc
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>

@fhinkel @MylesBorins

Original commit message:

    [coverage] Correctly free DebugInfo in the absence of breakpoints

    It's quite possible for DebugInfos to exist without the presence of a
    bytecode array, since DebugInfos are created for all functions for which
    we have a CoverageInfo. Free such objects properly.

    Also move the corresponding deletion of CoverageInfos on unload up
    before the early exit.

    Bug: v8:6000
    Change-Id: Idde45b222290aa8b6828b61ff2251918b8ed2aed
    Reviewed-on: https://chromium-review.googlesource.com/664811
    Reviewed-by: Yang Guo <yangguo@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{nodejs#48024}

Fixes crash when passing Profiler.startPreciseCoverage before
Debug.paused is received.

PR-URL: nodejs#17344
Refs: v8/v8@1420e44
Refs: bcoe/c8#6 (comment)
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Original commit message:
    Fix map constructor to correctly throw.

    We need to throw before rethrowing, otherwise the exception does
    not trigger a debugger event and is not reported if uncaught.

    R=gsathya@chromium.org, jgruber@chromium.org

    Bug: v8:7047
    Change-Id: I7ce0253883a21d6059e4e0ed0fc56dc55a0dcba6
    Reviewed-on: https://chromium-review.googlesource.com/758372
    Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
    Commit-Queue: Yang Guo <yangguo@chromium.org>
    Cr-Commit-Position: refs/heads/master@{nodejs#49237}

Fixes: nodejs#17270
PR-URL: nodejs#17383
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Yang Guo <yangguo@chromium.org>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Original commit message:
  [cpu-profiler] Clear code entries when no observers are present.

  Performed manual testing as well by making 20 CPU profile recordings of
  loading http://meduza.io page. Without the patch the page renderer memory size
  grows beyond 300MB. With the patch it remains below 200MB.

  BUG=v8:6623

  Change-Id: Ifce541b84bb2aaaa5175520f8dd49dbc0cb5dd20
  Reviewed-on: https://chromium-review.googlesource.com/798020
  Commit-Queue: Alexei Filippov <alph@chromium.org>
  Reviewed-by: Yang Guo <yangguo@chromium.org>
  Cr-Commit-Position: refs/heads/master@{nodejs#49914}

Ref: v8/v8@14ac02c
PR-URL: nodejs#17512
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Original commit message:
  [interpreter] Remove TryInstallOptimizedCode

  Removes the interrupt check and runtime call to TryInstallOptimizedCode
  from the optimization marker checks (i.e. CompileLazy and
  InterpreterEntryTrampoline). Instead, we rely on the other interrupt
  sources (in particular stack checks at function entries and loop
  headers) to install optimized code for us.

  This will hopefully not cause regressions, as we have plenty of other
  interrupt checks, but it may delay optimized code execution for
  some function by one function call.

  Bug:  v8:6933
  Change-Id: Ieadfff7ae2078d2a84085294158ad9a706eb9c64
  Reviewed-on: https://chromium-review.googlesource.com/723475
  Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
  Commit-Queue: Leszek Swirski <leszeks@chromium.org>
  Cr-Commit-Position: refs/heads/master@{nodejs#48667}

Ref: https://bugs.chromium.org/p/v8/issues/detail?id=6933
Ref: v8/v8@ac0fe8e
PR-URL: nodejs#17695
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Original commit message:

    [parser] Add new FunctionNameInferrer state before parsing param

    Create new state before parsing FormalParameter because we don't
    want to use any of the parameters as an inferred function name.

    Previously the stacktrace was:
      test.js:3: Error: boom
          throw new Error('boom');
          ^
      Error: boom
          at param (test.js:3:11)
          at test.js:4:5
          at test.js:6:3

    The stacktrace with this patch:
      test.js:3: Error: boom
          throw new Error('boom');
          ^
      Error: boom
          at test.js:3:11
          at test.js:4:5
          at test.js:6:3

    Bug: v8:6822, v8:6513
    Change-Id: Ifbadc660fc4e85248af405acd67c025f11662bd4
    Reviewed-on: https://chromium-review.googlesource.com/742657
    Reviewed-by: Adam Klein <adamk@chromium.org>
    Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
    Cr-Commit-Position: refs/heads/master@{nodejs#49042}

PR-URL: nodejs#18060
Fixes: nodejs#15386
Refs: v8/v8@c3458a8
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Below is the list of changes:

    [ABI] deps: move new PARSER value to end of enum

    [ABI] deps: revert 749b9c062ea from upstream V8

    Original commit message:

        Remove deprecated allow code-gen callback

        BUG=chromium:732736
        R=marja@chromium.org

        Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
        Change-Id: I2c0a96b76ae977e53a418d22175bcc487f548786
        Reviewed-on: https://chromium-review.googlesource.com/543238
        Reviewed-by: Marja Hölttä <marja@chromium.org>
        Commit-Queue: Jochen Eisinger <jochen@chromium.org>
        Cr-Commit-Position: refs/heads/master@{nodejs#47509}

    [ABI] deps: reorder InstanceType enum for ABI compat

    [ABI] deps: restore HeapProfiler::GetProfilerMemorySize()

    Reimplemented as a method returning 0.

    [ABI] deps: partially revert a5f321cd9bf

    Remove default arguments from `Context::SetDefaultContext()`
    and `Context::New()`.

    Refs: v8/v8@a5f321cd9bf

    [ABI] deps: revert change to ComputeMaxSemiSpaceSize

    Refs: v8/v8@2178bba
Below is the list of changes:

    deps: revert 70de12b73c150 from upstream V8

    Original commit message:

        Remove deprecated ForceSet

        Also move the soon-to-be-deprecated version to deprecated

        BUG=none
        R=ulan@chromium.org

        Change-Id: I2252404f63e25ac35c7798daf66b36144bef6a7e
        Reviewed-on: https://chromium-review.googlesource.com/518162
        Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
        Commit-Queue: Jochen Eisinger <jochen@chromium.org>
        Cr-Commit-Position: refs/heads/master@{nodejs#45554}

    [squash] use renamed internal utilities

    v8: reorder V8_INTRINSICS_LIST for ABI compat

    Make `kErrorPrototype` added at the end of the `Intrinsic` for
    ABI compatibility.

    deps: revert 0089c786ed882 from V8 upstream

    Original commit message:

        Merged: Squashed multiple commits.

        Merged: [heap] Add API to set heap semi-space limits in KB.
        Revision: bb29f9a4d6fb5e32

        Merged: [heap] Partially reland "Allow a minimum semi-space size of 512K."
        Revision: 7486dc3331

        Merged: [heap] Set initial semi-space size to 512K.
        Revision: a5230d81d1f73c

        BUG=chromium:716032,chromium:735649
        LOG=N
        NOTRY=true
        NOPRESUBMIT=true
        NOTREECHECKS=true
        R=hablich@chromium.org

        Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
        Change-Id: Ia9946e28ce41dee6199fac571274aa196576385b
        Reviewed-on: https://chromium-review.googlesource.com/616283
        Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
        Cr-Commit-Position: refs/branch-heads/6.1@{nodejs#47}
        Cr-Branched-From: 1bf2e10ddb194d4c2871a87a4732613419de892d-refs/heads/6.1.534@{#1}
        Cr-Branched-From: e825c4318eb2065ffdf9044aa6a5278635c36427-refs/heads/master@{nodejs#46746}

    v8: work around callback typedef renaming

    Do some clever tricks to have an easy way around
    V8 renaming one of its typedef to a deprecated version and then
    introducing a new typedef with the same name.

    deps: revert 5ebd6fcd269de from V8 upstream

    Original commit message:

        [heap] Lower external allocation limit when external memory shrinks.

        BUG=chromium:728228
        CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

        Review-Url: https://codereview.chromium.org/2921883002
        Cr-Commit-Position: refs/heads/master@{nodejs#45726}

    deps: revert cf8f7bdc9d5ee from V8 upstream

    Original commit message:

        [heap] Increase memory reducer activation limit for external memory changes.

        BUG=chromium:729521
        CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

        Review-Url: https://codereview.chromium.org/2923563006
        Cr-Commit-Position: refs/heads/master@{nodejs#45763}

    deps: revert 11fc9fab94d48 from V8 upstream

    Original commit message:

        [heap] Guard against re-entering GC on external memory change.

        TBR=hpayer@chromium.org
        BUG=chromium:729868,chromium:729521
        CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

        Review-Url: https://codereview.chromium.org/2929463002
        Cr-Commit-Position: refs/heads/master@{nodejs#45745}

    deps: revert 502c6ae6a0397 from V8 upstream

    Original commit message:

        [heap] Activate memory reducer on external memory activity.

        BUG=chromium:728228,chromium:626082
        CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng

        Review-Url: https://codereview.chromium.org/2917853004
        Cr-Commit-Position: refs/heads/master@{nodejs#45671}

    v8: revert changes to Contents structs

    The feature is disabled by default anyway,but we disable it completely.

Backport-PR-URL: nodejs#15393
PR-URL: nodejs#15393
Author: Anna Henningsen <anna@addaleax.net>
Author: Peter Marshall <p.s.marshall0@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
This reverts commit 3ea6dbd8ad9669195849fd0c65e370eebc7a4786.
NODE_MODULE_VERSION is set back to 57

MylesBorins

@bnoordhuis @MylesBorins

Work around some C++11 shortcomings in Visual Studio 2013:

1. Replace `constexpr` with `const`, and
2. Remove default move constructors and assignment operators.

mcollina