Skip to content
This repository has been archived by the owner on Oct 15, 2020. It is now read-only.

Update node-chakracore with nodejs/master changes #35

Merged
merged 94 commits into from
Mar 8, 2016
Merged

Update node-chakracore with nodejs/master changes #35

merged 94 commits into from
Mar 8, 2016

Conversation

agarwal-sandeep
Copy link
Contributor

This PR updates node-chakracore with 9091ccd of nodejs/node "master" branch. All the commits, except last commit are from nodejs/node repo and are present to retain the history.

Merge conflict were manually resolved in 3 files tools/test.py, vcbuild.bat and Readme.md

Last commit - Fixed test because of test message difference between v8 and ChakraCore

orangemocha and others added 30 commits February 22, 2016 15:09
PR-URL: nodejs/node#5304
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This commit adds an options object to process.send(). The same
object is propagated to process._send(), the _handleQueue, and the
send() and postSend() functions of the handle converter.

Fixes: nodejs/node#4271
PR-URL: nodejs/node#5283
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This option allows an instance of net.Socket to be kept open in
the sending process.

Fixes: nodejs/node#4271
PR-URL: nodejs/node#5283
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Fix: nodejs/node#5351
Refs: nodejs/node#4561
PR-URL: nodejs/node#5352

Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Apply strict mode to benchmark code.

PR-URL: nodejs/node#5336
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reduce number of clients from 100 to 16 as Raspberry Pi in CI starts to
exhibit flakiness around 22 or so clients.

Fixes: nodejs/node#5184
PR-URL: nodejs/node#5346
Reviewed-By: James M Snell <jasnell@gmail.com>
Fix: #5246
PR-URL: nodejs/node#5291
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Steven R. Loomis <srloomis@us.ibm.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Brian White <mscdex@mscdex.net>
The docs for assert.deepStrictEqual() do not currently mention
that prototypes are compared for objects. This commit adds that
information to the documentation.

Fixes: nodejs/node#5365
PR-URL: nodejs/node#5367
Reviewed-By: Robert Lindstädt <robert.lindstaedt@gmail.com>
Reviewed-By: Benjamin Gruenbaum <inglor@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
PR-URL: nodejs/node#4767
Refs: nodejs/docs#38
Reviewed-By: Bryan English <bryan@bryanenglish.com>
Reviewed-By: Stephan Belanger <admin@stephenbelanger.com>
It looks like github appends commit log right after the template
contents. Seeing this it does not look logical to ask for details first.

This commit puts `Description of change` part to the end of the
template.

PR-URL: nodejs/node#5378
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
* buffer:
  - You can now supply an encoding argument when filling a
    Buffer Buffer#fill(string[, start[, end]][, encoding]), supplying
    an existing Buffer will also work with
    Buffer#fill(buffer[, start[, end]]). See the API documentation for
    details on how this works. (Trevor Norris) #4935
  - Buffer#indexOf() no longer requires a byteOffset argument if you
    also wish to specify an encoding:
    Buffer#indexOf(val[, byteOffset][, encoding]).
    (Trevor Norris) #4803
* child_process: spawn() and spawnSync() now support a 'shell' option
  to allow for optional execution of the given command inside a shell.
  If set to true, cmd.exe will be used on Windows and /bin/sh
  elsewhere. A path to a custom shell can also be passed to override
  these defaults. On Windows, this option allows .bat. and .cmd files
  to be executed with spawn() and spawnSync(). (Colin Ihrig) #4598
* http_parser: Update to http-parser 2.6.2 to fix an unintentionally
  strict limitation of allowable header characters.
  (James M Snell) #5237
* dgram: socket.send() now supports accepts an array of Buffers or
  Strings as the first argument. See the API docs for details on how
  this works. (Matteo Collina) #4374
* http: Fix a bug where handling headers will mistakenly trigger an
  'upgrade' event where the server is just advertising its protocols.
  This bug can prevent HTTP clients from communicating with HTTP/2
  enabled servers. (Fedor Indutny) #4337
* net: Added a listening Boolean property to net and http servers to
  indicate whether the server is listening for connections.
  (José Moreira) #4743
* node: The C++ node::MakeCallback() API is now reentrant and calling
  it from inside another MakeCallback() call no longer causes the
  nextTick queue or Promises microtask queue to be processed out of
  order. (Trevor Norris) #4507
* tls: Add a new tlsSocket.getProtocol() method to get the negotiated
  TLS protocol version of the current connection. (Brian White) #4995
* vm: Introduce new 'produceCachedData' and 'cachedData' options to
  new vm.Script() to interact with V8's code cache. When a new
  vm.Script object is created with the 'produceCachedData' set to true
  a Buffer with V8's code cache data will be produced and stored in
  cachedData property of the returned object. This data in turn may be
  supplied back to another vm.Script() object with a 'cachedData'
  option if the supplied source is the same. Successfully executing a
  script from cached data can speed up instantiation time. See the API
  docs for details. (Fedor Indutny) #4777
* performance: Improvements in:
  - process.nextTick() (Ruben Bridgewater) #5092
  - path module (Brian White) #5123
  - querystring module (Brian White) #5012
  - streams module when processing small chunks (Matteo Collina) #4354

PR-URL: nodejs/node#5295
Enable additional likely-uncontroversial lint rules:

* `comma-dangle` set to prohibit dangling commas on objects and arrays
that are defined on a single line. Multi-line definitions can use or
omit a trailing comma.

* `no-unused-labels` Prohibits defining a label that is not used.

* `no-path-concat` Prohibits string-concatenation using i`__dirname` and
`__filename`. Use `path.join()`, `path.resolve()`, or template strings
instead.

* `no-new-symbol` disallow use of `new` operator with `Symbol` object.
Violating this rule would result in a `TypeError` at runtime.`

PR-URL: nodejs/node#5357
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
The lint rule is there to avoid a circular-dependency issue that only
applies to `/lib`. In preparation for linting `/benchmark`, apply that
rule to `/lib` only to avoid churn in `/benchmark`.

Refs: nodejs/node#3983 (comment)
PR-URL: nodejs/node#5371
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Fixes: nodejs/node#4404
PR-URL: nodejs/node#5379
Reviewed-By: Julien Gilli <jgilli@fastmail.fm>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Approved at CTC meeting
nodejs/node#5409
Reviewers are CTC members who voted for this.

PR-URL: nodejs/node#5278
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
Reviewed-By: Chris Dickinson <chris@neversaw.us>
Approved at CTC meeting
nodejs/node#5409
Reviewers are CTC members who voted for this.

PR-URL: nodejs/node#5277
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
Reviewed-By: Chris Dickinson <chris@neversaw.us>
Approved at CTC meeting
nodejs/node#5409
Reviewers are CTC members who voted for this.

PR-URL: nodejs/node#5276
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
Reviewed-By: Chris Dickinson <chris@neversaw.us>
Approved at CTC meeting
nodejs/node#5409
Reviewers are CTC members who voted for this.

PR-URL: nodejs/node#5275
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Alexis Campailla <alexis@janeasystems.com>
Reviewed-By: Chris Dickinson <chris@neversaw.us>
It's documented as such but didn't actually behave that way.

Bug introduced in commit 66fc8ca ("cluster: emit 'message' event on
cluster master"), which is the commit that introduced the event.

Fixes: nodejs/node#5126
PR-URL: nodejs/node#5361
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
The APIs are implemented but currently not documented.

PR-URL: nodejs/node#5402
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
Remove indications that an error argument is sent to the `listen()` callback.

Fixes: nodejs/node#5345
PR-URL: nodejs/node#5353
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
PR-URL: nodejs/node#5418
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
PR-URL: nodejs/node#5418
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
PR-URL: nodejs/node#5418
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
util.isError() is the only remaining util.is*() method that
depends on Object.prototype.toString() behavior. This commit
notes the limitations of isError() related to @@toStringTag.

Refs: nodejs/node#2201
PR-URL: nodejs/node#5414
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Currently, there is a check to ensure that the user either
provides an object or a string to repl.start(). The string case
is used to set a REPL prompt. However, a default of '> ' already
exists, so forcing the user to specify a prompt is a bit
redundant. This commit removes this restriction.

Fixes: nodejs/node#5385
PR-URL: nodejs/node#5388
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Julian Duque <julianduquej@gmail.com>
Previous example didn't account for the 1 byte offset

PR-URL: nodejs/node#5282
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Function name in code sample had the wrong capitalization.

PR-URL: nodejs/node#5306
Reviewed-By: Roman Reiss <me@silverwind.io>
Add --node-args option that will pass arguments.

PR-URL: nodejs/node#5376
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Default to FIPS off even in FIPS builds.
Add JS API to check and control FIPS mode.
Add command line arguments to force FIPS on/off.
Respect OPENSSL_CONF variable and read the config.
Add testing for new features.

Fixes: nodejs/node#3819
PR-URL: nodejs/node#5181
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-by: Michael Dawson <michael_dawson@ca.ibm.com>
bnoordhuis and others added 10 commits March 2, 2016 17:15
* Restrict the receiver to instances of the FunctionTemplate.
* Use `args.This()` instead of `args.Holder()`.

Fixes: nodejs/node#3682
PR-URL: nodejs/node#5521
Reviewed-By: Fedor Indutny <fedor@indutny.com>
PR-URL: nodejs/node#5410
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Array#pop() is known to be faster than Array#shift().
To be exact, it's O(1) vs. O(n). In this case there's no difference
from which side of the "pool" array the object is retrieved,
so .pop() should be preferred.

PR-URL: nodejs/node#2174
Reviewed-By: mscdex - Brian White <mscdex@mscdex.net>
Reviewed-By: jasnell - James M Snell <jasnell@gmail.com>
Reviewed-By: ofrobots - Ali Ijaz Sheikh <ofrobots@google.com>
All eslint rules are configured to report as errors. Remove useless
--quiet flag from eslint invocation in Makefile and vcbuild.bat.

PR-URL: nodejs/node#5519
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michaël Zasso <mic.besace@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
PR-URL: nodejs/node#5472
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Do not treat crypto inputs as `binary` strings, convert them to Buffers
using `new Buffer(..., 'utf8')`, or using newly updated StringBytes
APIs.

PR-URL: nodejs/node#5522
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
This is a security release with only a single commit, an update to openssl due to a recent security advisory. You can read more about the security advisory on the Node.js website https://nodejs.org/en/blog/vulnerability/openssl-march-2016/

* openssl: Upgrade from 1.0.2f to 1.0.2g (Ben Noordhuis) nodejs/node#5507
  - Fix a double-free defect in parsing malformed DSA keys that may potentially be used for DoS or memory corruption attacks. It is likely to be very difficult to use this defect for a practical attack and is therefore considered low severity for Node.js users. More info is available at CVE-2016-0705 https://www.openssl.org/news/vulnerabilities.html#2016-0705.
  - Fix a defect that can cause memory corruption in certain very rare cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()` functions. It is believed that Node.js is not invoking the code paths that use these functions so practical attacks via Node.js using this defect are _unlikely_ to be possible. More info is available at CVE-2016-0797 https://www.openssl.org/news/vulnerabilities.html#2016-0797.
  - Fix a defect that makes the _CacheBleed Atta https://ssrg.nicta.com.au/projects/TS/cachebleed/ _ possible. This defect enables attackers to execute side-channel attacks leading to the potential recovery of entire RSA private keys. It only affects the Intel Sandy Bridge (and possibly older) microarchitecture when using hyper-threading. Newer microarchitectures, including Haswell, are unaffected. More info is available at CVE-2016-0702 https://www.openssl.org/news/vulnerabilities.html#2016-0702.

PR-URL: nodejs/node#5526
https://code.google.com/p/v8/ redirects to the V8 issue tracker

PR-URL: nodejs/node#5530
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Notable changes:

* governance: The Core Technical Committee (CTC) added four new members
to help guide Node.js core development: Evan Lucas, Rich Trott, Ali
Ijaz Sheikh and Сковорода Никита Андреевич (Nikita Skovoroda).

* openssl: Upgrade from 1.0.2f to 1.0.2g (Ben Noordhuis)
nodejs/node#5507
  - Fix a double-free defect in parsing malformed DSA keys that may
potentially be used for DoS or memory corruption attacks. It is likely
to be very difficult to use this defect for a practical attack and is
therefore considered low severity for Node.js users. More info is
available at https://www.openssl.org/news/vulnerabilities.html#2016-0705
  - Fix a defect that can cause memory corruption in certain very rare
cases relating to the internal `BN_hex2bn()` and `BN_dec2bn()`
functions. It is believed that Node.js is not invoking the code paths
that use these functions so practical attacks via Node.js using this
defect are _unlikely_ to be possible. More info is available at
https://www.openssl.org/news/vulnerabilities.html#2016-0797
  - Fix a defect that makes the CacheBleed Attack
(https://ssrg.nicta.com.au/projects/TS/cachebleed/) possible. This
defect enables attackers to execute side-channel attacks leading to the
potential recovery of entire RSA private keys. It only affects the
Intel Sandy Bridge (and possibly older) microarchitecture when using
hyper-threading. Newer microarchitectures, including Haswell, are
unaffected. More info is available at
https://www.openssl.org/news/vulnerabilities.html#2016-0702

* Fixed several regressions that appeared in v5.7.0:
  - path.relative():
    - Output is no longer unnecessarily verbose (Brian White)
nodejs/node#5389
    - Resolving UNC paths on Windows now works correctly (Owen Smith)
nodejs/node#5456
    - Resolving paths with prefixes now works correctly from the root
directory (Owen Smith) nodejs/node#5490
  - url: Fixed an off-by-one error with `parse()` (Brian White)
nodejs/node#5394
  - dgram: Now correctly handles a default address case when offset and
length are specified (Matteo Collina)
nodejs/node#5407

PR-URL: nodejs/node#5464
@agarwal-sandeep agarwal-sandeep changed the title Fibranch Update node-chakracore with nodejs/master changes Mar 3, 2016
@agarwal-sandeep
Copy link
Contributor Author

@jianchun please take a look

@jianchun
Copy link

jianchun commented Mar 3, 2016

The last commit title is too long. Please shorten it (forgot how many chars, in some guideline). Also consider chagne "test: Fixed ..." to "test: fix ..." as most existing commits use lower case tiltle.

I'll look at the commit details in a few minutes.

@jianchun
Copy link

jianchun commented Mar 3, 2016

LGTM other than the commit description nits.

@agarwal-sandeep agarwal-sandeep merged commit 5c0b84a into nodejs:chakracore-master Mar 8, 2016
@agarwal-sandeep
Copy link
Contributor Author

The buffer is not null terminated, we need to make sure it is null terminated before calling to JsParseScript

agarwal-sandeep added a commit that referenced this pull request Mar 9, 2016
Merge 9091ccd of nodejs/node `master` branch into nodejs/node-chakracore

PR-URL: #35
Reviewed-By: Jianchun Xu <Jianchun.Xu@microsoft.com>
agarwal-sandeep added a commit that referenced this pull request Mar 9, 2016
PR-URL: #35
Reviewed-By: Jianchun Xu <Jianchun.Xu@microsoft.com>
agarwal-sandeep added a commit that referenced this pull request Mar 9, 2016
PR-URL: #35
Reviewed-By: Jianchun Xu <Jianchun.Xu@microsoft.com>
@jbergstroem
Copy link
Member

@agarwal-sandeep please have a closer look at the commit guidelines with regards to how to format commits. Also not sure why you decided to merge when @kunalspathak had open questions?

@agarwal-sandeep
Copy link
Contributor Author

That was my oversight, I have fixed the commits message and followed guidelines.

@kunalspathak
Copy link
Member

@agarwal-sandeep , 75ace7d title is more than 50 characters. Can you please fix that as well?

@orangemocha
Copy link
Contributor

@kunalspathak @agarwal-sandeep , force pushing branches is allowed in nodejs/node only if within 10 minutes of the original push. See https://github.com/nodejs/node-chakracore/blob/chakracore-master/COLLABORATOR_GUIDE.md#i-just-made-a-mistake

@kunalspathak
Copy link
Member

@orangemocha , is there any other way to fix this?

@orangemocha
Copy link
Contributor

Not without force pushing. In nodejs/node, we would live with the mistake and move on.

@kunalspathak
Copy link
Member

sounds good to me.

@jianchun
Copy link

@orangemocha Is there a CI system preventing these? Otherwise this could happen, e.g. this page contains a 72-char title "dgram: handle default address case when offset and length are specified".

@orangemocha
Copy link
Contributor

@jianchun : not at the moment. Reviewers usually catch these. I opened nodejs/testing#24 to track the idea of checking it in CI.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.