Commit Graph

169 Commits

Author SHA1 Message Date
Gus Caplan
6591d9f761
deps: cherry-pick 0c35b72 from upstream V8
Original commit message:

    [api,modules] Allow GetModuleNamespace on unevaluated modules.

    Bug: v8:7217
    Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
    Change-Id: I97b067254355eb91e12b92eba92631cbc3ce8000
    Reviewed-on: https://chromium-review.googlesource.com/839280
    Commit-Queue: Georg Neis <neis@chromium.org>
    Reviewed-by: Adam Klein <adamk@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#50395}

PR-URL: https://github.com/nodejs/node/pull/18038
Refs: 0c35b7252a
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
2018-03-24 20:59:32 +01:00
Flarna
5966b8cc06
deps: v8: cherry-pick fixes for v8:7535
These changes avoid a busy wait loop in V8 CPU Profiler thread for
windows (except for short intervals).

It would be good if this is also backported to Node.js v9 and LTS
releases as this busy loop effectively disallows the use of
cpu-profiler in windows production setups.

Original commit message 15c0c3a8ba:
```
[profiler] use Sleep() on windows for long profile intervals.

See nodejs/diagnostics#170

R=franzih@chromium.org

Change-Id: Iecc3bb27707b0d2afbb23fd9823d5cd4d725be6e
Reviewed-on: https://chromium-review.googlesource.com/931102
Reviewed-by: Franziska Hinkelmann <franzih@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51466}
```

Original commit message 43e2fb1c3d:
```
[profiler] fix sleeping on windows for long intervals.
R=franzih@chromium.org

Change-Id: I5717db794fc797e7c3b0b8f122ddb6dc0702a99e
Reviewed-on: https://chromium-review.googlesource.com/941126
Reviewed-by: Franziska Hinkelmann <franzih@chromium.org>
Commit-Queue: Yang Guo <yangguo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#51755}

```

PR-URL: https://github.com/nodejs/node/pull/19333
Refs: https://github.com/nodejs/diagnostics/issues/170
Refs: https://github.com/nodejs/node/pull/19200
Refs: 15c0c3a8ba
Refs: 43e2fb1c3d
Reviewed-By: Myles Borins <myles.borins@gmail.com>
2018-03-20 11:57:01 +00:00
Jakob Kummerow
056001dc8f
deps: cherry-pick 0bcb1d6f from upstream V8
Original commit message:

    Introduce --disallow-code-generation-from-strings

    Exposing the existing Context::AllowCodeGenerationFromStrings(false) API
    to the command line.

    Bug: v8:7134
    Change-Id: I062ccff0b03c5bcf6878c41c455c0ded37a1d743
    Reviewed-on: https://chromium-review.googlesource.com/809631
    Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#49911}

PR-URL: https://github.com/nodejs/node/pull/18212
Refs: 0bcb1d6f2d
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gus Caplan <me@gus.host>
2018-03-07 09:30:14 -08:00
Daniel Bevenius
237a363dc7
build: make gyp user defined variables lowercase
I mistakenly introduced user defined variables using uppercase
characters, reading the gyp documentation they state:
"Predefined variables. By convention, these are named with
CAPITAL_LETTERS. Predefined variables are set automatically by GYP"
and also "By convention, user-defined variables are named with
lowercase_letters."

This commit renames the user defined variables to lowercase to follow
the above mentioned convention.

Backport-PR-URL: https://github.com/nodejs/node/pull/18899
PR-URL: https://github.com/nodejs/node/pull/16238
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-02-26 23:42:51 +01:00
Ali Ijaz Sheikh
2d98b58c08
deps: V8: backport 76c3ac5 from upstream
This fixes a bug in the CPU profiler where some ticks were attributed
to the wrong file.

Original commit message:
  [cpu-profiler] Fix script name when recording inlining info

  Use the script name from the shared function info to create an
  inline entry. Otherwise functions are attributed to the wrong file
  in the CpuProfileNode.

  See https://github.com/GoogleCloudPlatform/cloud-profiler-nodejs/issues/89

  Bug: v8:7203, v8:7241
  Change-Id: I8ea31943741770e6611275a9c93375922b934547
  Reviewed-on: https://chromium-review.googlesource.com/848093
  Reviewed-by: Jaroslav Sevcik <jarin@chromium.org>
  Commit-Queue: Franziska Hinkelmann <franzih@chromium.org>
  Cr-Commit-Position: refs/heads/master@{#50339}

Refs: 76c3ac58b0
PR-URL: https://github.com/nodejs/node/pull/18298
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-02-21 18:12:39 -05:00
Aaron Bieber
9c6bb5f386
build: add cflags for OpenBSD, remove stray comma.
PR-URL: https://github.com/nodejs/node/pull/18448
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-02-21 10:19:07 -05:00
Jan Krems
11566fe532
deps: cherry-pick dbfe4a49d8 from upstream V8
Original commit message:

    Introduce ScriptOrModule and HostDefinedOptions

    This patch introduces a new container type ScriptOrModule which
    provides the name and the host defined options of the script/module.

    This patch also introduces a new PrimitivesArray that can hold
    Primitive values, which the embedder can use to store metadata.

    The HostDefinedOptions is passed to V8 through the ScriptOrigin, and
    passed back to the embedder through HostImportModuleDynamically for
    module loading.

    Bug: v8:5785, v8:6658, v8:6683
    Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
    Change-Id: I56c26fc9a680b273ac0a6691e5ad75f15b8dc80a
    Reviewed-on: https://chromium-review.googlesource.com/622158
    Reviewed-by: Adam Klein <adamk@chromium.org>
    Reviewed-by: Georg Neis <neis@chromium.org>
    Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47724}

Backport-PR-URL: https://github.com/nodejs/node/pull/17823
PR-URL: https://github.com/nodejs/node/pull/16889
Refs: dbfe4a49d8
Refs: https://github.com/nodejs/node/pull/15713
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2018-02-20 16:15:43 -05:00
Michaël Zasso
506d85bfba deps: cherry-pick c3458a8 from upstream V8
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@{#49042}

PR-URL: https://github.com/nodejs/node/pull/18060
Fixes: https://github.com/nodejs/node/issues/15386
Refs: c3458a8672
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2018-01-11 10:00:33 +01:00
Michaël Zasso
43fbc393e3
deps: cherry-pick 50f7455 from upstream V8
Original commit message:

    [inspector] added Runtime.globalLexicalScopeNames method

    The method returns names for all available top-level scope variables
    in giving context.

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

    Bug: chromium:681333
    Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
    Change-Id: I2d0b600e1afbfef9087f53ea9c26abe1e112047c
    Reviewed-on: https://chromium-review.googlesource.com/719409
    Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org>
    Reviewed-by: Yang Guo <yangguo@chromium.org>
    Reviewed-by: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: Dmitry Gozman <dgozman@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#48618}

Refs: 50f7455cd9

PR-URL: https://github.com/nodejs/node/pull/16591
Reviewed-By: Timothy Gu <timothygu99@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
2018-01-10 03:09:34 -05:00
Ali Ijaz Sheikh
8f3b2d7e8a
deps: V8: cherry-pick ac0fe8ec from upstream
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@{#48667}

Ref: https://bugs.chromium.org/p/v8/issues/detail?id=6933
Ref: ac0fe8ec8a
PR-URL: https://github.com/nodejs/node/pull/17695
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2018-01-09 04:32:31 -05:00
Bartosz Sosnowski
5fc1e27e98
build, win: faster Release rebuilds
Sets Link Time Code Generation to INCREMENTAL improving Release
rebuilds speed.

Adds no-cctest option to vcbuild.bat, which will skip building
cctest.exe

PR-URL: https://github.com/nodejs/node/pull/17393
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-12-12 03:28:20 -05:00
Rich Trott
6c97f7fed5
doc: use American spellings per style guide
PR-URL: https://github.com/nodejs/node/pull/17471
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jon Moss <me@jonathanmoss.me>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2017-12-12 03:28:19 -05:00
Timothy Gu
9f282ddaf7
deps: cherry-pick 1420e44db0 from upstream V8
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@{#48024}

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

PR-URL: https://github.com/nodejs/node/pull/17344
Refs: 1420e44db0
Refs: https://github.com/bcoe/c8/pull/6#discussion_r153121287
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-12-12 03:27:54 -05:00
Myles Borins
47cd49a8cb
deps: backport 3c8195d from V8 upstream
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@{#49237}

Fixes: https://github.com/nodejs/node/issues/17270
PR-URL: https://github.com/nodejs/node/pull/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>
2017-12-12 03:27:52 -05:00
Myles Borins
465a32a087
Revert "deps: cherry-pick 3c8195d from V8 upstream"
This reverts commit e7f30db1a6.

The original commit included tests for AsyncIterator that broke on 6.2

PR-URL: https://github.com/nodejs/node/pull/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>
2017-12-12 03:27:51 -05:00
Ali Ijaz Sheikh
49d23a3021
deps: V8: backport 14ac02c from upstream
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@{#49914}

Ref: 14ac02c49c
PR-URL: https://github.com/nodejs/node/pull/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>
2017-12-12 03:27:51 -05:00
Matheus Marchini
0a40a1133d
build: fix bsd build with gcc
BSD build with GCC was broken because it was checking for the
llvm_version variable on common.gypi, even though llvm wasn't
installed (or needed).

PR-URL: https://github.com/nodejs/node/pull/16737
Fixes: https://github.com/nodejs/node/issues/16257
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jon Moss <me@jonathanmoss.me>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-12-12 03:27:39 -05:00
Daniel Bevenius
0f727c07b9
build: remove empty VCLibrarianTool entry
PR-URL: https://github.com/nodejs/node/pull/17191
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Bartosz Sosnowski <bartosz@janeasystems.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2017-12-12 03:27:38 -05:00
Daniel Bevenius
70060eef65
test: --enable-static linked executable
The motivation for this commit is to enable projects embedding Node.js
and building with --enable-static to be able to run the test suite and
linter.

Currently when building with --enable-static no node executable
will be created which means that the tests (apart from the cctest) and
linter cannot be run.

This is currently a work in progress and works on MacOS but I need to
run the CI, and manually on different environments to verify that it
works as expected.

PR-URL: https://github.com/nodejs/node/pull/14986
Refs: https://github.com/nodejs/node/issues/14158
Refs: https://github.com/nodejs/node/pull/14892
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
2017-12-11 15:52:38 -05:00
Franziska Hinkelmann
4e9bfdf9a7 deps: cherry-pick 3c8195d from V8 upstream
Original commit message:

  [map] 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@{#49237}

PR-URL: https://github.com/nodejs/node/pull/16897
Fixes: https://github.com/nodejs/node/issues/16856
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2017-11-14 14:21:27 -06:00
Franziska Hinkelmann
38ac50a084 deps: cherry-pick cc55747 from V8 upstream
This fixes the flaky message/console test on our CI.

Original commit message:
  [test/message] Allow numbers to have more than one leading digit.

  The {NUMBER} regexp only allowed one, leading to occasional test
  failures such as:
  https://build.chromium.org/p/client.v8/builders/V8%20Mac%20-%20debug/builds/17156

  Bug:
  Change-Id: I25a08b80640d9af19ba70c61c846163685f1cb82
  Reviewed-on: https://chromium-review.googlesource.com/753322
  Reviewed-by: Franziska Hinkelmann <franzih@chromium.org>
  Commit-Queue: Georg Neis <neis@chromium.org>
  Cr-Commit-Position: refs/heads/master@{#49109}

PR-URL: https://github.com/nodejs/node/pull/16890
Ref: https://github.com/nodejs/build/issues/936
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-11-13 07:59:40 -06:00
Daniel Bevenius
28b7bf062a deps: cherry-pick b8331cc030 from upstream V8
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@{#49121}

This commit also increments the v8_embedder_string version.

PR-URL: https://github.com/nodejs/node/pull/16900
Fixes: https://github.com/nodejs/node/issues/16614
Refs: b8331cc030
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-11-13 07:59:38 -06:00
Ed Schouten
f3e01618f1
build,src: Add CloudABI as a POSIX-like runtime environment.
CloudABI is a compact POSIX-like runtime that makes use of
capability-based security. More details:
https://github.com/NuxiNL/cloudlibc

* src: Disable use of pwd.h, grp.h and get*uid() on CloudABI.
As CloudABI is intended to run applications in cluster contexts (e.g.,
on Kubernetes), they are oblivious of UNIX credentials. Extend the
existing preprocessor checks to disable any use of these interfaces,
just like on Windows, Android, etc.

* src: Explicitly include <netdb.h>.
cares_wrap.cc calls into functions like getnameinfo() and getaddrinfo().
These functions tend to be available implicitly through <uv.h>, but we'd
better still include this header explicitly.

On CloudABI, we make use of a custom implementation of libuv that does
not implicitly include header files like <netdb.h>.

PR-URL: https://github.com/nodejs/node/pull/16612
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-11-06 17:39:15 -05:00
Ali Ijaz Sheikh
c087502758 deps: V8: backport b1cd96e from upstream
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@{#48705}

PR-URL: https://github.com/nodejs/node/pull/16308
Refs: b1cd96ec4b
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>
2017-10-29 09:38:30 -07:00
Michaël Zasso
edd78f86ac deps: cherry-pick e0d64dc from upstream V8
Original commit message:

    [heap] Print the number of chunks in unmapper queue in --trace-gc-nvp

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

Refs: e0d64dc67c
Refs: https://github.com/nodejs/help/issues/917#issuecomment-339292642
Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=771966

PR-URL: https://github.com/nodejs/node/pull/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>
2017-10-28 13:01:45 +02:00
Michaël Zasso
cf38d2f402 deps: cherry-pick 676c413 from upstream V8
Original commit message:

    [heap] Fix threshold for delayed chunks after 2c7561.

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

Refs: 676c41321a
Refs: https://github.com/nodejs/help/issues/917#issuecomment-339292642
Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=771966

PR-URL: https://github.com/nodejs/node/pull/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>
2017-10-28 13:01:37 +02:00
Michaël Zasso
55a4d66843 deps: cherry-pick 2c75616 from upstream V8
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@{#48312}

Refs: 2c75616028
Refs: https://github.com/nodejs/help/issues/917#issuecomment-339292642
Refs: https://bugs.chromium.org/p/chromium/issues/detail?id=771966

PR-URL: https://github.com/nodejs/node/pull/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>
2017-10-28 12:57:51 +02:00
Nikolai Vavilov
4108072457 build,win: set /MP separately in Debug and Release
Setting /MP globally causes it to appear twice in the command line due
to a GYP bug, which causes the project to be rebuilt unconditionally due
to an msbuild bug.

PR-URL: https://github.com/nodejs/node/pull/16415
Fixes: https://github.com/nodejs/node/issues/16367
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Minwoo Jung <minwoo@nodesource.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-10-24 21:34:33 +03:00
Franziska Hinkelmann
801e61ad5a deps: cherry-pick 37a3a15c3 from V8 upstream
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
  https://github.com/nodejs/node/pull/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: https://github.com/nodejs/node/pull/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>
2017-10-23 11:50:06 +02:00
Nikolai Vavilov
5018156628 build,win: use /MP for debug builds
PR-URL: https://github.com/nodejs/node/pull/16333
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-10-21 13:17:08 +03:00
Nikolai Vavilov
8f5fedb555 build, windows: use /bigobj for debug builds
PR-URL: https://github.com/nodejs/node/pull/16289
Fixes: https://github.com/nodejs/node/issues/16288
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2017-10-19 12:04:29 +03:00
Tobias Tebbi
c39caa997c deps: backport 0f1dfae from V8 upstream
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/node/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: 0f1dfae050
PR-URL: https://github.com/nodejs/node/pull/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>
2017-10-18 17:05:28 -07:00
Ali Ijaz Sheikh
33f5014b37 deps: v8: fix potential segfault in profiler
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: https://github.com/nodejs/node/pull/15498
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-10-18 17:05:11 -07:00
Anna Henningsen
d7456ab2eb deps: cherry-pick 9b21865822243 from V8 upstream
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@{#47923}

PR-URL: https://github.com/nodejs/node/pull/15391
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2017-10-18 17:04:41 -07:00
Michaël Zasso
70832bc353 build: add V8 embedder version string
After this commit, `process.versions.v8` will look like:
"6.0.287.53-node.0".
The goal is that everytime we apply a non-official patch to `deps/v8`,
we increment our own number instead of V8's patch level.
This number must be set back to 0 after major V8 updates.

Fixes: https://github.com/nodejs/node/issues/15698
PR-URL: https://github.com/nodejs/node/pull/15785
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Gibson Fahnestock <gibfahn@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>
2017-10-18 09:18:32 -07:00
Anna Henningsen
cc443cb447
build: set disable_glibcxx_debug flag
This breaks a few tests when Node is built in debug mode, because
V8 is built with `-D_GLIBCXX_DEBUG=1` and Node is built without,
which makes e.g. `std::vector` ABI-incompatible between the two.

PR-URL: https://github.com/nodejs/node/pull/16159
Reviewed-By: James Snell <jasnell@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-10-15 12:30:00 +02:00
nanaya
8979b4fc9f
tools: skip workaround for newer llvm
PR-URL: https://github.com/nodejs/node/pull/14077
Fixes: https://github.com/nodejs/node/issues/14076
Refs: https://svnweb.freebsd.org/ports/head/www/node/Makefile?revision=444555&view=markup
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Refael Ackermann <refack@gmail.com>
2017-07-22 10:44:10 -04:00
Daniel Bevenius
bb88caec06 build: fix ninja build failure
When working on commit 6a09a69ec9
("build: enable cctest to use generated objects") I did not take into
account building with ninja:

$ ./configure
$ tools/gyp_node.py -f ninja
$ ninja -C out/Release
$ ln -fs out/Release/node node

When ninja generated the ninja build files, src files that are
relative to the src directory will be named with a dot instead of a
path separator, for example:

out/Release/obj/src/node/node.o
would instead become:
out/Release/obj/src/node.node.o

This commit adds an additional variable for the type of object separator
used for this case.

Currently the check for if ninja is being used is a normal if statement
as are the following os checks (win and aix). But the win and aix ones
should only be evaluated if the build is not generated by ninja.
This commit turns this logic into an if ninja else statement.

PR-URL: https://github.com/nodejs/node/pull/12484
Fixes: https://github.com/nodejs/node/issues/12448
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
2017-05-11 08:10:16 -04:00
Michaël Zasso
bf5c309b5e build: fix V8 build on FreeBSD
Use the -D_LIBCPP_TRIVIAL_PAIR_COPY_CTOR=1 flag because on FreeBSD
std::pairs copy constructor is non-trivial.

Refs: https://lists.freebsd.org/pipermail/freebsd-toolchain/2016-March/002094.html
Refs: https://github.com/gliaskos/freebsd-chromium/blob/master/www/chromium/Makefile#L202-L205

PR-URL: https://github.com/nodejs/node/pull/12784
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2017-05-06 20:02:35 +02:00
Anna Henningsen
c68da89694
build: always use V8_ENABLE_CHECKS in debug mode
Define `V8_ENABLE_CHECKS` in `common.gypi` for the debug mode.
Without this, these checks would only be present in the object files
generated from the V8 build, and so for inline functions in v8.h
multiple different definitions could be generated, where one definition
includes the check and the other does not.

Refs: https://github.com/nodejs/node/pull/11975#discussion_r108005423
PR-URL: https://github.com/nodejs/node/pull/12029
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jason Ginchereau <jasongin@microsoft.com>
Reviewed-By: Hitesh Kanwathirtha <hiteshk@microsoft.com>
2017-03-31 22:12:57 +02:00
Daniel Bevenius
6a09a69ec9 build: enable cctest to use generated objects
This commit tries to make it simpler to add unit tests (cctest) for
code that needs to test node core funtionality but that might not be
appropriate as an addon or a JavaScript test. An example of this could
be adding functionality targeted for situations when Node itself is
embedded.

Currently it was not as easy, or efficient, as one would have hoped to
add such tests. The object output directories vary for different
operating systems which we need to link to so that we don't have an
additional compilation step.

PR-URL: https://github.com/nodejs/node/pull/11956
Ref: https://github.com/nodejs/node/pull/9163
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-03-24 08:28:43 -07:00
Daniel Bevenius
f0d4237ef5 build: mac OBJ_DIR should point to obj.target
I think there might be an issue with the value of OBJ_DIR when
using a "mac" os. The value is currently specified in common.gypi
which is included by node.gyp:
'OBJ_DIR': '<(PRODUCT_DIR)/obj',

In the generated Makefile (out/Makefile) the object output directory
is:
obj := $(builddir)/obj

And in the included node.target.mk we have the OBJS declared:
OBJS := \
         $(obj).target/$(TARGET)/src/async-wrap.o \
         $(obj).target/$(TARGET)/src/cares_wrap.o \

If OBJ_DIR is used in node.gyp to point to generated object files
on mac they will not be found.

PR-URL: https://github.com/nodejs/node/pull/11857
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-03-17 13:50:27 +01:00
Junliang Yan
b806e18dd7 s390: enable march=z196
PR-URL: https://github.com/nodejs/node/pull/11730
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2017-03-10 08:38:08 -05:00
Kenan Yildirim
70afe9d3ac build: fix building with ninja on linux
On Linux, `ninja` appears to place `libv8_base.a` inside `OBJ_DIR`, as opposed
to `ninja` on OS X which places it outside of that directory. Furthermore, the
expected `OBJ_DIR` value (`obj.target/`) is actually just `obj/` for `ninja`.
This patch solves both of these issues by setting `OBJ_DIR` and `V8_BASE` to the
correct values for `ninja` on Linux specifically.

PR-URL: https://github.com/nodejs/node/pull/11348
Fixes: https://github.com/nodejs/node/issues/9861
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
2017-02-16 17:16:26 -08:00
Ben Noordhuis
97ebdf3bed build: disable C4267 conversion compiler warning
Disable "warning C4267: conversion from 'size_t' to 'int', possible
loss of data".  Many originate from our dependencies and their sheer
number drowns out other, more legitimate warnings.

PR-URL: https://github.com/nodejs/node/pull/11205
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
2017-02-09 14:43:55 +01:00
Aaron Bieber
a0c6898c89 build: use wxneeded on openbsd
On OpenBSD 6.0 and greater W^X is enabled by default. All executables
that violate W^X need to be marked with PT_OPENBSD_WXNEEDED. In
addition to this, they must be executed from a filesystem mounted with
'wxallowed'.

More info on W^X: https://en.wikipedia.org/wiki/W%5EX

PR-URL: https://github.com/nodejs/node/pull/9232
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2016-10-28 09:14:20 -07:00
Ali Ijaz Sheikh
7292a1e954 build: use libc++ on OSX
V8 now depends on C++11 runtime features. On OSX this requires us to
link against the libc++ library rather than the deprecated default
that is provided with -mmacosx-version-min=10.7.

PR-URL: https://github.com/nodejs/node/pull/8317
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2016-09-22 09:55:30 +02:00
Ali Ijaz Sheikh
785506a1fc build: define icu_use_data_file_flag
v8.gyp expects this to be defined by the embedder

PR-URL: https://github.com/nodejs/node/pull/8317
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
2016-09-22 09:54:56 +02:00
Michaël Zasso
fbfc15c51b build: update V8 gypfile paths
The location of various gypfiles has changed in V8 5.2.

PR-URL: https://github.com/nodejs/node/pull/8317
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
2016-09-22 09:53:18 +02:00
Ben Noordhuis
e03a7b2a2b build: turn on thin static archives
Thin archives were disabled in 2012 as a workaround (IIRC) for obsolete
tooling on one of Joyent's platforms.  The last binutils versions that
didn't support them was released in 2007 so I think it's safe to assume
we can drop support for that now - except on SmartOS, where the tooling
still has a distinctive vintage feel to it.

Thin archives save space - it shrinks the size of PRODUCT_DIR by 30% -
and speed up the final linking step because it doesn't have to assemble
50 MB of static archives (twice! - first to create the archive, then to
copy it to PRODUCT_DIR).  The archives are just 3.5 MB now and no longer
copied around.

PR-URL: https://github.com/nodejs/node/pull/7957
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
2016-08-09 14:06:50 +02:00