Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade vee-eight-4.7 to V8 4.7.80.24 #4085

Closed
wants to merge 148 commits into from

Conversation

ofrobots
Copy link
Contributor

@ofrobots ofrobots commented Dec 1, 2015

This is for the vee-eight-4.7 branch.

Preparing for the upcoming V8 stable, this PR rebases resets the vee-eight-4.7 branch onto master, updates V8 to the latest branch head for 4.7, and then cherry picks the back the commits from vee-eight-4.7. Additionally 70405d4 was cherry-picked back from master.

Full change history for the 4.7 branch:
https://chromium.googlesource.com/v8/v8.git/+log/branch-heads/4.7

V8 blog post about what is new on V8 4.7:
http://v8project.blogspot.de/2015/10/v8-release-47.html

R=@bnoordhuis, @targos
/cc @misterdjules, @nodejs/v8

jbergstroem and others added 30 commits November 12, 2015 12:13
Implement a crude TAP13 writer for cpplint. Does its job and
not much else. Only supports writing TAP output to file,
not vs7 or emacs formats.

PR-URL: nodejs#3448
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Sakthipriyan Vairamani <[email protected]>
Original commit message:

    This commit adds some postmortem data that is otherwise unavailable.

    I have discovered need in those values when writing:

    https://github.com/indutny/llnode

    BUG=

    Review URL: https://codereview.chromium.org/1436473002

    Cr-Commit-Position: refs/heads/master@{nodejs#31947}

This postmortem information is useful for both object inspection, and
function's context variables inspection.

PR-URL: nodejs#3779
Reviewed-By: Ben Noordhuis <[email protected]>
As per the OpenSSL User Guide, it is possible to use the FIPSDIR
environment variable to specify a custom install path for the
validated cryptographic module.

PR-URL: nodejs#3752
Reviewed-By: Michael Dawsson <[email protected]>
Reviewed-By: Shigeki Ohtsu <[email protected]>
Reviewed-By: Fedor Indutny <[email protected]>
Since util.isBuffer is deprecated, we should be explicit that
Buffer.isBuffer should be used instead.

PR-URL: nodejs#3790
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: James M Snell <[email protected]>
- move CoC from CONTRIBUTING to top-level, separate COC file
- add note/link in CONTRIBUTING
- add note/link in README (both at top, and newcomer resources)
- move CoC section in CONTRIBUTING to top of file

PR-URL: nodejs#3774
Reviewed-By: Rich Trott <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Added checks where necessary to prevent hard crashes and gave
precedence to returning the OpenSSL error strings instead of generic
error strings.

PR-URL: nodejs#3753
Reviewed-By: Fedor Indutny <[email protected]>
Reviewed-By: Shigeki Ohtsu <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reorders, with no contextual changes, the assert documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with minimal contextual duplication, the buffer documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the child_process documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the cluster documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the console documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the dns documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the crypto documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the dgram documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the errors documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with minimal contextual duplication, the events documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the fs documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the globals documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the os documentation alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the path documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the punycode documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the querystring documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the vm documentation alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the url documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the tty documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the timers documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the string_decode documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the repl documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the readline documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
Reorders, with no contextual changes, the modules documentation
alphabetically.

PR-URL: nodejs#3662
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jeremiah Senkpiel <[email protected]>
cdai2 and others added 24 commits November 25, 2015 13:57
This feature supports the Intel Vtune profiling support for JITted
JavaScript on IA32 / X64 / X32 platform. The advantage of this profiling
is that the user / developer of NodeJS application can get the detailed
profiling information for every line of the JavaScript source code.
This information will be very useful for the owner to optimize their
applications.

This feature is a compile-time option. For windows platform, the user
needs to pass the following parameter to vcbuild.bat: "enable-vtune"

For other OS, the user needs to pass the following parameter to
./configure command: "--enable-vtune-profiling"

PR-URL: nodejs#3785
Reviewed-By: Ben Noordhuis <[email protected]>
If an undefined encoding is passed to byteLength(),
assume that it is UTF8 immediately. This yields a
small speedup, as it prevents string operations on
the encoding argument.

PR-URL: nodejs#4010
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Trevor Norris <[email protected]>
See nodejs#3635 for details and failure
examples.

Ref: nodejs#3635
PR-URL: nodejs#4005
Reviewed-By: Colin Ihrig <[email protected]>
See nodejs#3957 for details and examples
failures.

Ref: nodejs#3957
Reviewed-By: Ben Noordhuis <[email protected]>
PR-URL: nodejs#4006
This commit adds the decorateErrorStack() method. This function
uses the internal util's getHiddenValue() method to extract
arrow messages from error objects and attach them to the
error's stack trace.

PR-URL: nodejs#4013
Reviewed-By: Ben Noordhuis <[email protected]>
Currently, when a file with a syntax error is imported in the
REPL, no information is provided on the error's location. This
commit adds the error's location to the stack trace.

Refs: nodejs#2762
Refs: nodejs#3411
Refs: nodejs#3784
PR-URL: nodejs#4013
Reviewed-By: Ben Noordhuis <[email protected]>
test-http-client-timeout-with-data fails on Raspberry Pi in CI from time
to time.

Use a platform-based timeout to improve reliability.

PR-URL: nodejs#4015
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Roman Reiss <[email protected]>
By using the same unit for the offset of the main column as used for the
left column width, we ensure that browsers render the columns
conistently.

Ref: nodejs/help#32

PR-URL: nodejs#3948
Reviewed-By: Jeremiah Senkpiel <[email protected]>
test-domain-exit-dispose-again had been written for node v0.10.x, and
was using the fact that callbacks scheduled with `process.nextTick`
wouldn't run if the domain attached to it was disposed.

This is not longer the case, and as a result the test would not catch
any regression: it would always pass.

This change rewrites that test to check that the current domain is
cleared properly when processing the rest of the timers list if a
timer's callback throws an error. This makes the test fail without the
original fix, and pass with the original fix, as expected.

PR: nodejs#3990
PR-URL: nodejs#3990
Reviewed-By: Trevor Norris <[email protected]>
A number of REPL tests define the same ArrayStream object. This
commit moves the repeated code into common.js.

PR-URL: nodejs#4027
Reviewed-By: Ben Noordhuis <[email protected]>
Mark test-net-socket-local-address flaky on FreeBSD. It times out with
some frequency on CI.

Ref: nodejs#2475
PR-URL: nodejs#4016
Reviewed-By: Johan Bergström <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Make the win32 and posix versions of path.format() consistent in when
they add a directory separator between the dir and base parts of the
path (always add it unless the dir part is the same as the root).

Also, path.format() is now more functional in that it uses the name
and ext parts of the path if the base part is left out and it uses
the root part if the dir part is left out.

Reviewed-By: João Reis <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: nodejs#2408
PR-URL: nodejs#4011
Reviewed-By: Johan Bergström <[email protected]>
Reviewed-By: Alexis Campailla <[email protected]>
Links nested in backticks were not visually distinguishable before, this
fixes them.

PR-URL: nodejs#4068
Reviewed-By: Roman Reiss <[email protected]>
Remove a hack that was introduced in commit bb6d468 from November 2010.
This is groundwork for a follow-up commit that makes it possible to use
internal modules in lib/repl.js.

PR-URL: nodejs#4026
Reviewed-By: Colin Ihrig <[email protected]>
Move the method that was added in commit 8ca412b from earlier this month
from lib/util.js to lib/internal/util.js.

Avoids exposing a method that we may not wish to expose just yet, seeing
how it relies on implementation details.

PR-URL: nodejs#4026
Reviewed-By: Colin Ihrig <[email protected]>
A value shouldn't be described as doing inherit from some class, more
strictly, the value is an instance of the class `Error`.

PR-URL: nodejs#3658
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: Stephan Belanger <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Rich Trott <[email protected]>
These new checks are similar to the one introduced in 089d688,
but for other types of objects. Specifically, if an object was
created in a different context, the constructor object will not be
the same as the constructor object in the current context, so we
have to compare constructor names instead.

PR-URL: nodejs#3385
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
test-dgram-multicast-multi-process was flaky on FreeBSD and Raspeberry
Pi. This refactoring fixes the issue by eliminating a race condition.

Fixes: nodejs#2474
PR-URL: nodejs#4042
Reviewed-By: Ben Noordhuis <[email protected]>
Pick up the latest branch head for V8 4.7:
v8/v8@be169f8

Full change history for the 4.7 branch:
https://chromium.googlesource.com/v8/v8.git/+log/branch-heads/4.7

V8 blog post about what is new on V8 4.7:
http://v8project.blogspot.de/2015/10/v8-release-47.html
Array#includes is now available.

PR-URL: nodejs#3481
Reviewed-By: targos - Michaël Zasso <[email protected]>
Backport 1ee712ab8687e5f4dec93d45da068d37d28feb8b from V8 upstream.

Original commit message:

  Add SetAbortOnUncaughtExceptionCallback API

  The --abort-on-uncaught-exception command line switch makes
  Isolate::Throw abort if the error being thrown cannot be caught by a
  try/catch block.

  Embedders may want to use other mechanisms than try/catch blocks to
  handle uncaught exceptions. For instance, Node.js has "domain" objects
  that have error handlers that can handle uncaught exception like
  following:

  var d = domain.create();

  d.on('error', function onError(err) {
    console.log('Handling error');
  });

  d.run(function() {
    throw new Error("boom");
  });

  These error handlers are called by isolates' message listeners.

  If --abort-on-uncaught-exception is *not* used, the isolate's
  message listener will be called, which will in turn call the domain's
  error handler. The process will output 'Handling error' and will exit
  successfully (not due to an uncaught exception). This is the behavior
  that Node.js users expect.

  However, if --abort-on-uncaught-exception is used and when throwing an
  error within a domain that has an error handler, the process will abort
  and the domain's error handler will not be called. This is not the
  behavior that Node.js users expect.

  Having a SetAbortOnUncaughtExceptionCallback API allows embedders to
  determine when it's not appropriate to abort and instead handle the
  exception via the isolate's message listener.

  In the example above, Node.js would set a custom callback with
  SetAbortOnUncaughtExceptionCallback that would be implemented as
  following (the sample code has been simplified to remove what's not
  relevant to this change):

  bool ShouldAbortOnUncaughtException(Isolate* isolate) {
    return !IsDomainActive();
  }

  Now when --abort-on-uncaught-exception is used, Isolate::Throw would
  call that callback and determine that it should not abort if a domain
  with an error handler is active. Instead, the isolate's message listener
  would be called and the error would be handled by the domain's error
  handler.

  I believe this can also be useful for other embedders.

  BUG=

  [email protected]

  Review URL: https://codereview.chromium.org/1375933003

  Cr-Commit-Position: refs/heads/master@{nodejs#31111}

Ref: nodejs#3036
PR-URL: nodejs#3481
Reviewed-By: targos - Michaël Zasso <[email protected]>
Original commit message:

    This commit adds some postmortem data that is otherwise unavailable.

    I have discovered need in those values when writing:

    https://github.com/indutny/llnode

    BUG=

    Review URL: https://codereview.chromium.org/1436473002

    Cr-Commit-Position: refs/heads/master@{nodejs#31947}

This postmortem information is useful for both object inspection, and
function's context variables inspection.

PR-URL: nodejs#3779
Reviewed-By: Ben Noordhuis <[email protected]>
Original commit message:

  [tools] Make gen-postmortem-metadata.py more reliable

  Instead of basing matches off of whitespace, walk the
  inheritance chain and include any classes that inherit
  from Object.

  [email protected],[email protected]
  NOTRY=true

  Review URL: https://codereview.chromium.org/1435643002

  Cr-Commit-Position: refs/heads/master@{nodejs#31964}

This adds some missing classes to postmortem info like
JSMap and JSSet.

PR-URL: nodejs#3792
Reviewed-By: Trevor Norris <[email protected]>
Reviewed-By: Fedor Indutny <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
@ofrobots ofrobots added the v8 engine Issues and PRs related to the V8 dependency. label Dec 1, 2015
@Fishrock123
Copy link
Contributor

@ofrobots could you update the branch to master separately before this PR?

@ofrobots
Copy link
Contributor Author

ofrobots commented Dec 1, 2015

@Fishrock123 Doing it in two steps would imply a regression on vee-eight-4.7 from 4.7 to 4.6 until this PR could be reviewed and merged. We (okay, mostly me) follow this on every update of the beta branch. I would be happy to switch to a different process if there is general agreement to do so.

@ofrobots
Copy link
Contributor Author

ofrobots commented Dec 1, 2015

Abandoning in favour of #4106

@ofrobots ofrobots closed this Dec 1, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

Successfully merging this pull request may close these issues.