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

v7.1.0 proposal - 2016-11-08 #9438

Merged
merged 119 commits into from
Nov 8, 2016
Merged

v7.1.0 proposal - 2016-11-08 #9438

merged 119 commits into from
Nov 8, 2016

Conversation

evanlucas
Copy link
Contributor

@evanlucas evanlucas commented Nov 3, 2016

2016-11-08, Version 7.1.0 (Current), @evanlucas

Notable changes

  • buffer: add buffer.transcode to transcode a buffer's content from one encoding to another primarily using ICU (James M Snell) #9038
  • child_process: add public API for IPC channel (cjihrig) #9322
  • icu:
    • Upgraded to ICU 58 - small icu (Steven R. Loomis) #9234
    • Add cldr, tz, and unicode to process.versions (Steven R. Loomis) #9266
  • lib: make String(global) === '\[object global\]' (Anna Henningsen) #9279
  • libuv: Upgraded to 1.10.0 (cjihrig) #9267
  • readline: use icu based string width calculation (James M Snell) #9040
  • src:
    • add NODE_PRESERVE_SYMLINKS environment variable that has the same effect as the --preserve-symlinks flag (Marc Udoff) #8749
    • Fix String#toLocaleUpperCase() and String#toLocaleLowerCase() (Steven R. Loomis)

Commits

  • [dafdb7b069] - benchmark: add trailing newline for consistency (Roman Reiss) #9410
  • [fab8eb660f] - benchmark: add microbenchmarks for ES Map (Rod Vagg) #7581
  • [44792f83bf] - benchmark,lib,test,tools: remove unneeded . escape (Rich Trott) #9449
  • [c70c96a3e2] - buffer: coerce offset using Math.trunc() (cjihrig) #9341
  • [212da12f45] - buffer: use correct name for custom inspect symbol (Charmander) #9289
  • [0939edd4ed] - (SEMVER-MINOR) buffer: add buffer.transcode (James M Snell) #9038
  • [ceec520aef] - build: add MAKEFLAGS="-j1" to node-gyp (Daniel Bevenius) #9450
  • [1109d0b244] - build: reduce noise from doc target (Daniel Bevenius) #9457
  • [90aac7ca28] - build: start comments at beginning of line (Sakthipriyan Vairamani (thefourtheye)) #9375
  • [b51db7120e] - build: make node-gyp output silent (Sakthipriyan Vairamani (thefourtheye)) #8990
  • [d8eaa14c2d] - build: prioritise --shared-X-Y over pkg-config (Rod Vagg) #9368
  • [f7d8481ee2] - build: use wxneeded on openbsd (Aaron Bieber) #9232
  • [7b0e93738b] - (SEMVER-MINOR) child_process: add public API for IPC channel (cjihrig) #9322
  • [4e3731c7e7] - child_process: remove unreachable code (cjihrig) #9307
  • [d573acf96f] - child_process: remove unreachable execSync() code (cjihrig) #9209
  • [f1f00df9bf] - deps: upgrade npm to 3.10.9 (Kat Marchán) #9286
  • [3d1766f492] - (SEMVER-MINOR) deps: Intl: ICU 58 bump - small icu (BIG COMMIT) (Steven R. Loomis) #9234
  • [827000ee62] - (SEMVER-MINOR) deps: Intl: ICU 58 bump: configure/LICENSE/docs (Steven R. Loomis) #9234
  • [0f871e1087] - deps: back port OpenBSD fix in c-ares/c-ares (Aaron Bieber) #9232
  • [106d71914c] - deps: upgrade libuv to 1.10.0 (cjihrig) #9267
  • [4c4132e5d3] - doc: update minute-taking procedure for CTC (Rich Trott) #9425
  • [ed8df17135] - doc: note that tests should include a description (Gibson Fahnestock) #9415
  • [bc2d1c9d91] - doc: do not link in the headings (Sakthipriyan Vairamani (thefourtheye)) #9416
  • [4bb9d21d01] - doc: update GOVERNANCE.md to use "meeting chair" (Rich Trott) #9432
  • [c2fab3c600] - doc: add Sakthipriyan to the CTC (Rod Vagg) #9427
  • [a8295d86d9] - doc: update Diagnostics WG info (Josh Gavant) #9329
  • [3af9453019] - doc: move stray sentences in zlib doc (Rich Trott) #9365
  • [d4b509584f] - doc: use 'an' over 'a', remove redundant sentence (Zeke Sikelianos) #9345
  • [ff69e38070] - doc: add more internal links to fs.Stats object (Zeke Sikelianos) #9345
  • [c554f090df] - doc: fix outdate ninja link (Yangyang Liu) #9278
  • [3d4a829d85] - doc: fix broken links to Buffer.from(string) (Jesse McCarthy) #9294
  • [225a9dfb00] - doc: fs: fix link to mkdtemp (coderaiser) #9379
  • [dbeadd363c] - doc: update OpenSSL links (kobelb) #9338
  • [eeabab3827] - doc: add 2016-10-26 CTC meeting minutes (Rich Trott) #9348
  • [31690a690c] - doc: add 2016-10-05 CTC meeting minutes (Josh Gavant) #9326
  • [7f1a40dbcf] - doc: add 2016-09-28 CTC meeting minutes (Josh Gavant) #9325
  • [edd89265ba] - doc: update CONTRIBUTING.md to address editing PRs (Gibson Fahnestock) #9259
  • [c7458909a7] - doc: reference signal(7) for the list of signals (Emanuele DelBono) #9323
  • [a3f6854724] - doc: more realistic custom inspect example (Ryan Scheel (Havvy)) #8875
  • [a0074e2232] - doc: clarify buffer toString docs. (Olan Byrne) #8984
  • [3f90481e20] - doc: clarify relation between a file and a module (marzelin) #9026
  • [82119049ef] - doc: fix typo in http.md (anu0012) #9144
  • [d2e7882723] - doc: add 2016-10-19 CTC meeting minutes (Josh Gavant) #9193
  • [ce00a9d2b6] - doc: add performance warning to require.extensions (Ben Noordhuis) #9196
  • [d1c32aa335] - doc: mention case-insensitive env on windows (Oliver Salzburg) #9166
  • [c6e429a6bc] - doc: add CTC meeting minutes for 2016-10-12 (Michael Dawson) #9070
  • [355041960d] - events: remove unnecessary checks (cjihrig) #9330
  • [0ce0abf6cb] - events,test: fix TypeError in EventEmitter warning (jseagull) #9021
  • [6f35e4421a] - http: add debug message for invalid header value (Evan Lucas) #9195
  • [173b088e1a] - inspector: do not prompt to use localhost (Eugene Ostroukhov) #9451
  • [939d1023c2] - inspector: switch to new inspector APIs (Eugene Ostroukhov) #9028
  • [2e7b078e7b] - inspector: fix request path nullptr dereference (Ben Noordhuis) #9184
  • [9940666c1b] - (SEMVER-MINOR) intl: Add more versions from ICU (Steven R. Loomis) #9266
  • [5bfefa6063] - lib: change == to === in linkedlist (jedireza) #9362
  • [d24bd20d2b] - lib: make String(global) === '\[object global\]' (Anna Henningsen) #9279
  • [9372aee4a3] - lib: fix beforeExit not working with -e (Ben Noordhuis) #8821
  • [c231130e06] - module: skip directories known not to exist (Ben Noordhuis) #9196
  • [d09eb9c6b2] - net: name anonymous functions (Pedro Victor) #9357
  • [a5c62cb4f2] - (SEMVER-MINOR) readline: use icu based string width calculation (James M Snell) #9040
  • [60461d2d90] - repl: refactor lib/repl.js (Rich Trott) #9374
  • [071836aa42] - repl: name anonymous functions (Pedro Victor) #9356
  • [0b9d80a037] - repl: don’t write to input stream in editor mode (Anna Henningsen) #9207
  • [1c59cefc44] - repl: make key of repl.write() optional always (Anna Henningsen) #9207
  • [b1ef638de3] - (SEMVER-MINOR) src: default --icu_case_mapping on as a v8 option (Steven R. Loomis) #9454
  • [0c236d1d36] - src: replace SetNamedPropertyHandler() (AnnaMag) #9062
  • [5ab172ee8f] - src: fix use of uninitialized variable (James M Snell) #9281
  • [57c0a9b5dc] - src: remove unused function (Brian White) #9243
  • [08e12c7809] - src: remove superfluous env_string string (Ben Noordhuis) #9213
  • [c342bda49e] - src: make cross-context MakeCallback() calls work (Ben Noordhuis) #9221
  • [60a5b515b8] - (SEMVER-MINOR) src: add NODE_PRESERVE_SYMLINKS environment variable (Marc Udoff) #8749
  • [f2a3b24611] - src: clean up program/isolate/env init logic (Ben Noordhuis) #9224
  • [9e753ba782] - src: simplify code, remove NodeInstanceData (Ben Noordhuis) #9224
  • [8b53f3c41c] - src: speed up module loading, don't resize buffer (Ben Noordhuis) #9132
  • [362c307f38] - src: speed up module loading, skip EOF read (Ben Noordhuis) #9132
  • [85a9295813] - src,tools: speed up startup by 2.5% (Ben Noordhuis) #5458
  • [6e1eb59fee] - test: improve test-debugger-util-regression (Santiago Gimeno) #9490
  • [6eb6816e22] - test: fix flaky test-net-src: remove BINARY encoding #5504 (Santiago Gimeno) #9461
  • [f640bafc58] - test: fix flaky test-force-repl-with-eval (Santiago Gimeno) #9460
  • [675a4b20b6] - test: update http-header-obstext (Gibson Fahnestock) #9415
  • [9d9ea8127e] - test: move timer-dependent test to sequential (Rich Trott) #9431
  • [1c3487b5c3] - test: remove timers from streams test (Anna Henningsen)
  • [e696bc33eb] - test: increase test coverage for lib/zlib.js (Rich Trott) #9366
  • [ed3f80a988] - test: add test for HTTP client "aborted" event (Kyle E. Mitchell) #7376
  • [d12ed29f6a] - test: remove timer in test-dgram-send-empty-array (Rich Trott) #9361
  • [e451022dd9] - test: refactor test-http-client-readable (Rich Trott) #9344
  • [01b626a45a] - test: clean up dgram-broadcast-multi-process test (Isobel Redelmeier) #9308
  • [411b1339bc] - test: fix freebsd10-64 CI failures (Rich Trott) #9317
  • [1037463604] - test: add child_process customFds test (cjihrig) #9307
  • [bd9cb40977] - test: run all of test-timers-blocking-callback (Rich Trott) #9305
  • [8b7ce8bd11] - test: fix flaky test-fs-watch-recursive on OS X (Rich Trott) #9303
  • [6c9e4fddf0] - test: refactor test-async-wrap-check-providers (Gerges Beshay) #9297
  • [0ab008e50d] - test: fix lint error regarding unused commons const (Daniel Bevenius) #9334
  • [c9b67c6a91] - test: writable stream needDrain state (Italo A. Casas) #8799
  • [248a3200b2] - test: writable stream ending state (Italo A. Casas) #8707
  • [d6f688ae0d] - test: writable stream finished state (Italo A. Casas) #8791
  • [d49d990c42] - test: prevent workers outliving parent (Sam Roberts) #9257
  • [2ad81ed0e6] - test: refactor /parallel/test-cluster-uncaught-exception.js to ES6 (Deverick) #9239
  • [f39eb05946] - test: use strict assertions in module loader test (Ben Noordhuis) #9263
  • [fc9e6a37fa] - test: remove err timer from test-http-set-timeout (BethGriggs) #9264
  • [53520f06f3] - test: clean up test-child-process-exec-cwd.js (Jeena Lee) #9231
  • [deef2f6079] - test: add child_process.exec() timeout coverage (cjihrig) #9208
  • [5e138fe768] - test: skip whatwg url parse and setter tests when icu is missing (James M Snell) #9246
  • [a39b98ef73] - test: add common.hasIntl (James M Snell) #9246
  • [efb62aa146] - test: fix flaky test by removing timer (Evan Lucas) #9199
  • [44427cc1f7] - test: case sensitivity of env variables (Oliver Salzburg) #9166
  • [63ef0990f3] - test: add coverage for execFileSync() errors (cjihrig) #9211
  • [06b414078e] - test: remove test-v8-inspector-json-protocol test (Ben Noordhuis) #9184
  • [21ba3e3b89] - test: add more module loader test coverage (Ben Noordhuis) #9196
  • [204461925b] - test: make flaky pummel test more reliable (Ben Noordhuis) #9241
  • [4be1ba582a] - test: move flaky test to test/pummel (Ben Noordhuis) #9241
  • [032533954b] - tools: use long format for gpg fingerprint (Myles Borins) #9258
  • [aac4af2b26] - tools: enable final newline in .editorconfig (Roman Reiss) #9410
  • [513da404cb] - tools: enforce function name matching in linter (Rich Trott) #9408
  • [c23ece7056] - tools: remove dangling eslint symlink (Sam Roberts) #9299
  • [bdad1e28fd] - tools: make --repeat work with -j in test.py (Rich Trott) #9249
  • [4f0596fb03] - util: use template strings (Alejandro Oviedo Garcia) #9120
  • [b083086ff2] - vm: name anonymous functions (solebox) #9388

mhdawson and others added 30 commits November 2, 2016 06:00
PR-URL: #9070
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Stop reading from disk when we read fewer bytes than requested because
the next read will be the zero-sized EOF.

PR-URL: #9132
Reviewed-By: James M Snell <jasnell@gmail.com>
Don't bother shrinking the read buffer on the final read because we
dispose it immediately afterwards.  Avoids some unnecessary memory
allocation and copying.

PR-URL: #9132
Reviewed-By: James M Snell <jasnell@gmail.com>
NodeInstanceData is not used meaningfully and makes the initialization
logic harder to follow.  Let's remove it and delete 100 lines of code
in one fell swoop.

PR-URL: #9224
Reviewed-By: James M Snell <jasnell@gmail.com>
Reorder the initialization logic so that program-wide, per-isolate and
per-environment initialization is more cleanly separated.

PR-URL: #9224
Reviewed-By: James M Snell <jasnell@gmail.com>
Move sequential/test-crypto-timing-safe-equal-benchmarks to test/pummel
because it fails for me locally quite frequently and because it takes
about five or six seconds to complete, which is too long for a test in
test/sequential.

Fixes: #8744
PR-URL: #9241
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: not-an-aardvark <not-an-aardvark@users.noreply.github.com>
Increase the number of iterations from 1e4 to 1e5.  Makes the test pass
for me locally when previously it would fail 9 out of 10 times because
the running time was not enough to smooth away the outliers.

Fixes: #8744
PR-URL: #9241
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: not-an-aardvark <not-an-aardvark@users.noreply.github.com>
Verify that a package.json without a .main property loads index.js.

PR-URL: #9196
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
There is no point in trying to search for files in a directory that
we know does not exist, so stop doing that.

Reduces the total number of stat(2) calls and the number of stat(2)
misses on a medium-sized application by about 21% and 29% respectively.

Reduces the total number of package.json open(2) calls and the number
of open(2) misses by about 21% and 93% (!) respectively.

Before:

    % time     seconds  usecs/call     calls    errors syscall
    ------ ----------- ----------- --------- --------- ----------------
     50.93    0.178419          38      4702           lstat
     29.08    0.101875          36      2800      2010 stat
     11.36    0.039796          43       932       215 open
      5.39    0.018897          34       550           fstat
      3.24    0.011337          34       336           pread
    ------ ----------- ----------- --------- --------- ----------------
    100.00    0.350324                  9320      2225 total

After:

    % time     seconds  usecs/call     calls    errors syscall
    ------ ----------- ----------- --------- --------- ----------------
     55.49    0.176638          38      4702           lstat
     24.76    0.078826          35      2225      1435 stat
     10.19    0.032434          44       733        16 open
      6.19    0.019719          36       550           fstat
      3.37    0.010723          32       336           pread
    ------ ----------- ----------- --------- --------- ----------------
    100.00    0.318340                  8546      1451 total

PR-URL: #9196
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Fix a nullptr dereference when an invalid path is requested.

Regression introduced in commit 69fc85d ("inspector: generate UUID for
debug targets"), caught by Coverity.

PR-URL: #9184
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Remove parallel/test-v8-inspector-json-protocol, it duplicates the test
found in inspector/test-inspector.

PR-URL: #9184
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Eugene Ostroukhov <eostroukhov@google.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Commit 93a44d5 ("src: fix deferred events not working with -e") defers
evaluation of the script to the next tick.

A side effect of that change is that 'beforeExit' listeners run before
the actual script.  'beforeExit' is emitted when the event loop is
empty but process.nextTick() does not ref the event loop.

Fix that by using setImmediate().  Because it is implemented in terms
of a uv_check_t handle, it interacts with the event loop properly.

Fixes: #8534
PR-URL: #8821
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This commit adds coverage for errors returned by execFileSync()
when the child process exits with a non-zero code.

PR-URL: #9211
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Code coverage showed that the execSync() variable inheritStderr
was never set to the default value of true. This is because
the default case is hit whenever normalizeExecArgs() returns an
object without an 'options' property. However, this can never
be the case because normalizeExecArgs() unconditionally creates
the options object. This commit removes the unreachable code.

PR-URL: #9209
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
On Windows OS, environment variables are case-insensitive and are
treated likewise in NodeJS. This can be confusing and can lead
to hard-to-debug problems when moving code from one environment
to another.

Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #9166
Fixes: #9157
Environment variables should be treated case-insensitive on Windows
platforms and case-sensitive on UNIX platforms.

This commit ensures this behavior persists.

Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #9166
Fixes: #9157
Add a way through environment variables to set the --preserve-symlinks
flag. Any non-null value of NODE_PRESERVE_SYMLINKS will enable symlinks.

PR-URL: #8749
Fixes: #8509
Reviewed-By: Ilkka Myller <ilkka.myller@nodefield.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Discourage using require.extensions because it slows down the module
loader.  The number of file system operations that the module system
has to perform in order to resolve a `require(...)` statement to a
filename is proportional to the number of registered extensions.

PR-URL: #9196
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
This fixes one of the tests that has been failing on CI on freebsd for
a bit by removing an unnecessary timer.

PR-URL: #9199
Fixes: #7929
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
PR-URL: #9246
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
the WHATWG url parser relies on ICU's punycode implementation.
A handful of the standard tests fail when ICU is not present
because of the additional checks that are not implemented. For
now, skip the parse and setter tests if ICU is not present.

PR-URL: #9246
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit adds coverage for the timeout option used by
child_process exec() and execFile().

PR-URL: #9208
Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
- Changed `assert.ok()` to `assert.strictEqual()`.
- Changed `var` to `const` where possible.

PR-URL: #9231
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ilkka Myller <ilkka.myller@nodefield.com>
This inadvertently changed to `[object Object]` with the V8 upgrade
in 8a24728...96933df. Use `Symbol.toStringTag` to undo this
particular change.

Fixes: #9274
PR-URL: #9279
Reviewed-By: Prince John Wesley <princejohnwesley@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Use zero-copy external string resources for storing the built-in JS
source code.  Saves a few hundred kilobyte of memory and consistently
speeds up `benchmark/misc/startup.js` by 2.5%.

Everything old is new again!  Commit 74954ce ("Add string class that
uses ExternalAsciiStringResource.") from 2011 did the same thing but
I removed that in 2013 in commit 34b0a36 ("src: don't use NewExternal()
with unaligned strings") because of a limitation in the V8 API.

V8 no longer requires that strings are aligned if they are one-byte
strings so it should be safe to re-enable external strings again.

PR-URL: #5458
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Robert Jefe Lindstaedt <robert.lindstaedt@gmail.com>
Check that invoking a callback on a receiver from a different context
works.

It ran afoul of an `env->context() == isolate->GetCurrentContext()`
assertion so retrieve the environment from the callback context and
the context to enter from the environment's context() method.

We could also have retrieved the environment from the receiver's context
and that would have made little practical difference.  It just seemed
more correct to get it from the callback context because that is the
actual execution context.

PR-URL: #9221
Reviewed-By: Anna Henningsen <anna@addaleax.net>
It's only used once at startup in a single place so create the string
in place instead of caching it for the lifetime of the isolate.

PR-URL: #9213
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Rather than the pseudo-wcwidth impl used currently, use the ICU
character properties database to calculate string width and
determine if a character is full width or not. This allows the
algorithm to correctly identify emoji's as full width, ensures
the algorithm will continue to fucntion properly as new unicode
codepoints are added, and it's faster.

This was originally part of a proposal to add a new unicode module,
but has been split out.

Refs: #8075
PR-URL: #9040
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Steven R Loomis <srloomis@us.ibm.com>
Add buffer.transcode(source, from, to) method. Primarily uses ICU
to transcode a buffer's content from one of Node.js' supported
encodings to another.

Originally part of a proposal to add a new unicode module. Decided
to refactor the approach towrds individual PRs without a new module.

Refs: #8075
PR-URL: #9038
Reviewed-By: Anna Henningsen <anna@addaleax.net>
PR-URL: #9243
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
thefourtheye and others added 14 commits November 7, 2016 15:14
As the comments are indented in Makefile, they are actually echoed
on the screen. This patch makes sure that the comments actually start
at the beginning of the line, and so not echoed and ignored.

PR-URL: #9375

Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Prince John Wesley <princejohnwesley@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
If there is a link in the headings, when the ToC is generated, that is
not properly linked and the square brackets are left as they are.

Even if we fix this, different parts of the heading will link to
different sections or even different pages. For example,

    ### What makes [`Buffer.allocUnsafe()`] and
          [`Buffer.allocUnsafeSlow()`] "unsafe"?

will point to three different sections. `allocUnsafe` and
`allocUnsafeSlow` will link to their corresponding sections and all
other words actually link to the heading in the document. This could be
visually confusing.

PR-URL: #9416
Fixes: #9331

Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Brian White <mscdex@mscdex.net>
Update the Writing Tests guide to specify that tests should include a
brief description of what they are designed to test.

PR-URL: #9415

Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>oc
PR-URL: #9415

Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
The doc says that the CTC moderator is responsible for taking minutes.

This change updates the doc to say that the moderator is responsible for
making sure that notes are taken, but not necessarily taking the notes
themselves.

PR-URL: #9425
Reviewed-By: Josh Gavant <josh.gavant@outlook.com>
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Remove the timer just in case the test takes longer to complete.

PR-URL: #9460
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
The test is failing on `SmartOS` quite often. Removing the timeout seems
to fix it.

Fixes: #8930
PR-URL: #9461
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Name anonymous arrow function in vm module to improve readability

PR-URL: #9388
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James Snell <jasnell@gmail.com>
Reviewed-By: Benjamin Gruenbaum <inglor@gmail.com>
Ref: #8913
The `.` character does not need to be escaped when it appears inside a
regular expression character class. This removes instances of
unnecessary escapes of the `.` character.

This also removes a few unnecessary escapes of the `(` and `)`
characters within character classes too.

PR-URL: #9449
Reviewed-By: Roman Reiss <me@silverwind.io>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
Reviewed-By: James Snell <jasnell@gmail.com>
The doc target currently echos the complete shell command, which might
produces a lot of output. Using this change the actual commands run
are still shown.

Before:
[ -e tools/doc/node_modules/js-yaml/package.json ] || \
        [ -e tools/eslint/node_modules/js-yaml/package.json ] || \
        if [ -x ./node ]; then \
            cd tools/doc && ../.././node ../.././deps/npm/bin/npm-cli.js
install; \
        else \
            cd tools/doc && node ../.././deps/npm/bin/npm-cli.js
install; \
        fi
[ -x ./node ] && ./node tools/doc/generate.js --node-version=v8.0.0
--format=html --template=doc/template.html doc/api/assert.md >
out/doc/api/assert.html || node tools/doc/generate.js
--node-version=v8.0.0 --format=html --template=doc/template.html
doc/api/assert.md > out/doc/api/assert.html
Input file = doc/api/assert.md

After:
[ -x ./node ] && ./node tools/doc/generate.js --node-version=v8.0.0
--format=html --template=doc/template.html doc/api/assert.md >
out/doc/api/assert.html || node tools/doc/generate.js
--node-version=v8.0.0 --format=html --template=doc/template.html
doc/api/assert.md > out/doc/api/assert.html
Input file = doc/api/assert.md

To verify run:
$ make docclean
$ make doc

PR-URL: #9457
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: James Snell <jasnell@gmail.com>
Avoid the `exit` command to be sent more than once. It prevents from
undesired errors emitted on `proc.stdin`.
Remove the watchdog timer so the test does not fail in case it takes
longer to complete.

PR-URL: #9490
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James Snell <jasnell@gmail.com>
Currently, when building the addons the following warning is displayed:
make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent
make rule.

Adding the MAKEFLAGS="-j1" to avoid the warning.

Also updated the log message to say that it is building the addon and
not running the test as I think that is more accurate.

PR-URL: #9450
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Git has been using my Long format fingerprint in the tagging messages,
this has been causing the release script to fail on my keys.

It would also be wise to be using the long format on keys based on some
attacks that hack been found in the wild around short keys.

PR-URL: #9258
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
There are multiple reports of Windows7 not being able to resolve
localhost on some setups (web search also confirms that). This change
will advertise "127.0.0.1" as inspector host name.

Fixes: #9382
Fixes: #9188
PR-URL: #9451
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Notable changes:

* buffer: add buffer.transcode to transcode a buffer's content from one
  encoding to another primarily using ICU (James M Snell)
* child_process: add public API for IPC channel (cjihrig)
* icu
  * Upgraded to ICU 58 - small icu (Steven R. Loomis)
  * Add `cldr`, `tz`, and `unicode` to `process.versions` (Steven R. Loomis)
* lib: make `String(global) === '[object global]'` (Anna Henningsen)
* libuv: Upgraded to 1.10.0 (cjihrig)
* readline: use icu based string width calculation (James M Snell)
* src:
  * add NODE_PRESERVE_SYMLINKS environment variable that has the same
    effect as the `--preserve-symlinks` flag (Marc Udoff)
  * Fix `String#toLocaleUpperCase()` and `String#toLocaleLowerCase()`
    (Steven R. Loomis)

PR-URL: #9438
@evanlucas evanlucas changed the title v7.1.0 proposal - 2016-11-07 v7.1.0 proposal - 2016-11-08 Nov 8, 2016
PR-URL: PR-URL: #9438
@evanlucas evanlucas merged commit 3daf116 into v7.x Nov 8, 2016
evanlucas added a commit that referenced this pull request Nov 8, 2016
Notable changes:

* buffer: add buffer.transcode to transcode a buffer's content from one
  encoding to another primarily using ICU (James M Snell)
* child_process: add public API for IPC channel (cjihrig)
* icu
  * Upgraded to ICU 58 - small icu (Steven R. Loomis)
  * Add `cldr`, `tz`, and `unicode` to `process.versions` (Steven R. Loomis)
* lib: make `String(global) === '[object global]'` (Anna Henningsen)
* libuv: Upgraded to 1.10.0 (cjihrig)
* readline: use icu based string width calculation (James M Snell)
* src:
  * add NODE_PRESERVE_SYMLINKS environment variable that has the same
    effect as the `--preserve-symlinks` flag (Marc Udoff)
  * Fix `String#toLocaleUpperCase()` and `String#toLocaleLowerCase()`
    (Steven R. Loomis)

PR-URL: #9438
evanlucas added a commit to evanlucas/nodejs.org that referenced this pull request Nov 8, 2016
evanlucas added a commit to nodejs/nodejs.org that referenced this pull request Nov 8, 2016
@brodycj
Copy link

brodycj commented Nov 10, 2016

You guys forgot to update CHANGELOG_V7.md#L9. Do you want a pull request?

@evanlucas
Copy link
Contributor Author

@brodybits #9540 yea, someone mentioned it this morning. Sorry about that!

@evanlucas evanlucas deleted the v7.1.0-proposal branch November 10, 2016 17:36
imyller added a commit to imyller/meta-nodejs that referenced this pull request Nov 11, 2016
    Notable changes:

    * buffer: add buffer.transcode to transcode a buffer's content from one
      encoding to another primarily using ICU (James M Snell)
    * child_process: add public API for IPC channel (cjihrig)
    * icu
      * Upgraded to ICU 58 - small icu (Steven R. Loomis)
      * Add `cldr`, `tz`, and `unicode` to `process.versions` (Steven R. Loomis)
    * lib: make `String(global) === '[object global]'` (Anna Henningsen)
    * libuv: Upgraded to 1.10.0 (cjihrig)
    * readline: use icu based string width calculation (James M Snell)
    * src:
      * add NODE_PRESERVE_SYMLINKS environment variable that has the same
        effect as the `--preserve-symlinks` flag (Marc Udoff)
      * Fix `String#toLocaleUpperCase()` and `String#toLocaleLowerCase()`
        (Steven R. Loomis)

    PR-URL: nodejs/node#9438

Signed-off-by: Ilkka Myller <ilkka.myller@nodefield.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
meta Issues and PRs related to the general management of the project.
Projects
None yet
Development

Successfully merging this pull request may close these issues.