0
0
mirror of https://github.com/nodejs/node.git synced 2024-12-01 16:10:02 +01:00
Commit Graph

11189 Commits

Author SHA1 Message Date
Jeremiah Senkpiel
c9aec2b716 querystring: fix broken stringifyPrimitive
stringifyPrimitive has always failed to stringify numbers since its
introduction in 422d3c9. This went uncaught due to encodeURIComponent's
string coercion.

Fixes: https://github.com/iojs/io.js/issues/1208
PR-URL: https://github.com/iojs/io.js/pull/1213
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Brian White <mscdex@mscdex.net>
2015-03-19 21:47:41 -04:00
Jeremiah Senkpiel
a89f5c2156 querystring: parse numbers correctly
Fixes a number parsing regression introduced in 85a92a3

Fixes: https://github.com/iojs/io.js/issues/1208
PR-URL: https://github.com/iojs/io.js/pull/1213
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Brian White <mscdex@mscdex.net>
2015-03-19 21:45:38 -04:00
cjihrig
8de78e470d path: reduce type checking on some methods
a465840313 added strict type
checking for the methods in the path module. However, dirname(),
basename(), and extname() actually had some undocumented uses
in the wild. This commit loosens the type checking on those
methods.

Fixes: https://github.com/iojs/io.js/issues/1215
PR-URL: https://github.com/iojs/io.js/pull/1216
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-19 21:11:12 -04:00
Johan Bergström
3b9eab9779 build: make check aliases test
A common convention in auto* is to call make check rather than
make test. Let one alias the other

PR-URL: https://github.com/iojs/io.js/pull/1211
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-20 10:43:09 +11:00
Ben Noordhuis
4c731042d4 configure: use cc and c++ as defaults on os x
Commit 8b2363d ("configure: use gcc and g++ as CC and CXX defaults")
switches the CC and CXX defaults but it turns out that GYP uses cc
and c++ as defaults on OS X.

It also made the configure script complain about old compilers because
the xcode gcc identifies as v4.2.1, whereas cc is less ambiguous about
it being a clang hybrid.

PR-URL: https://github.com/iojs/io.js/pull/1210
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-03-19 23:48:39 +01:00
Ben Noordhuis
2034137385 smalloc: don't mix malloc() and new char[]
It's technically undefined behavior to mix malloc with delete[] and
new char[] with free().  smalloc was using new char[] in one place and
malloc() in another but in both cases the memory was freed with free().

PR-URL: https://github.com/iojs/io.js/pull/1205
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-19 22:34:17 +01:00
Chris Dickinson
465552142f Working on v1.6.1 2015-03-19 11:28:03 -07:00
Chris Dickinson
8e3a9d8de0 2015-03-19 io.js v1.6.0 Release
Notable Changes:

* node: a new -r or --require command-line option can be used to
  pre-load modules at start-up (Ali Ijaz Sheikh)
* querystring: parse() and stringify() are now faster (Brian White)
* http: the http.ClientRequest#flush() method has been deprecated and
  replaced with http.ClientRequest#flushHeaders() to match the same
  change now in Node.js v0.12 as per
  https://github.com/joyent/node/pull/9048 (Yosuke Furukawa)
* net: allow server.listen() to accept a String option for port, e.g.
  { port: "1234" }, to match the same option being accepted in
  net.connect() as of https://github.com/joyent/node/pull/9268 (Ben
  Noordhuis)
* tls: further work on the reported memory leak although there appears
  to be a minor leak remaining for the use-case in question, track
  progress at https://github.com/iojs/io.js/issues/1075.
* v8: backport a fix for an integer overflow when --max_old_space_size
  values above 4096 are used (Ben Noordhuis)
* platforms: the io.js CI system now reports passes on FreeBSD and
  SmartOS (_Solaris_).
* npm: upgrade npm to 2.7.1. See the npm CHANGELOG.md for details.
  https://github.com/npm/npm/blob/master/CHANGELOG.md#v271-2015-03-05
2015-03-19 11:12:05 -07:00
Shigeki Ohtsu
a84ea66b35 deps: upgrade to openssl-1.0.1m
All sources are just extracted from tarball into deps/openssl/openssl.

change all openssl/include/openssl/*.h to include resolved symbolic
links and openssl/crypto/opensslconf.h to refer config/opensslconf.h

sha256-x86_64.pl does not exist in the origin openssl distribution. It
was copied from sha512-x86_64.pl and both sha256/sha512 scripts were
modified so as to generates only one asm file specified as its key
hash length.

`x86masm.pl` was mistakenly using .486 instruction set, why `cpuid`
(and perhaps others) are requiring .686.

removed vpaesni-x86_64.asm in x64-win32-masm - it is no longer used.

Fixes: https://github.com/iojs/io.js/issues/1186
PR-URL: https://github.com/iojs/io.js/pull/1206
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-19 10:08:13 -07:00
Aleksanteri Negru-Vode
3bc445f6c2 doc: fix a broken collaborator github link
PR-URL: https://github.com/iojs/io.js/pull/1204
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-03-19 13:02:57 -04:00
Thorsten Lorenz
813a536126 buffer: removing duplicate code
- using an overload of Alloc that does the same that was being done
  inside `Buffer::New`

The overload we now call inside `smalloc.cc` takes care of the same as
the code that was removed:

    if (length == 0)
      return Alloc(env, obj, nullptr, length, type);

    char* data = static_cast<char*>(malloc(length));
    if (data == nullptr) {
      FatalError("node::smalloc::Alloc(v8::Handle<v8::Object>, size_t,"
                  " v8::ExternalArrayType)", "Out Of Memory");
    }

    Alloc(env, obj, data, length, type);

PR-URL: https://github.com/iojs/io.js/pull/1144
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-19 13:27:35 +01:00
Ali Ijaz Sheikh
1514b82355 src: add -r/--require flags for preloading modules
This patch adds a command line option (-r/--require) that allows one
to provide modules on the command line that will be 'required' during
node startup. This can be useful for debugging, tracing, memory leak
analysis etc. to be preloaded without explicit changes to the user
script. The option can be repeated to preload multiple modules.

PR-URL: https://github.com/iojs/io.js/pull/881
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-19 21:42:16 +11:00
Rod Vagg
f600111d82 test: cache lazy properties, fix style nits
inFreeBSDJail involves an execSync() and is used by localhost_ipv4 so
will be unnecessarily expensive, so cache both values and reuse
rather than re-evaluate each time.

Renamed localhost_ipv4 to localhostIPv4 for style consistency.

PR-URL: https://github.com/iojs/io.js/pull/1196
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-03-19 16:27:45 +11:00
Fedor Indutny
3038b8ee6a test: double timeout in tls-wrap-timeout.js
The test is timing dependent, ensure that it won't fail on the busy CI
boxes.

Fix: https://github.com/iojs/io.js/issues/1200
PR-URL: https://github.com/iojs/io.js/pull/1201
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-03-18 21:47:03 -07:00
Jeremiah Senkpiel
dd37fb4c48 build: remove incorrect argument in vcbuild.bat
This change had been incorrectly committed in f19e9b6

PR-URL: https://github.com/iojs/io.js/pull/1198
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-18 21:30:15 -04:00
Ben Noordhuis
2b2e48a4b9 lib: don't error in repl when cwd doesn't exist
The current working directory may not exist when the REPL starts up.
Don't treat that as an error because it's still possible to do many
useful things.  This is like the previous commit but for the REPL.

Fixes: https://github.com/iojs/io.js/issues/1184
PR-URL: https://github.com/iojs/io.js/pull/1194
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-19 02:11:38 +01:00
Ben Noordhuis
2c6f79c08c src: don't error at startup when cwd doesn't exist
The current working directory may not exist when iojs starts up.  Don't
treat that as an error because it's still possible to do many useful
things, like evaluating a command line script or starting a REPL.

This commit also fixes an age-old Windows bug where process.argv[0] was
not properly expanded, that's why the parallel/test-process-argv-0 test
gets an update as well.

Fixes: https://github.com/iojs/io.js/issues/1184
PR-URL: https://github.com/iojs/io.js/pull/1194
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-19 02:10:36 +01:00
Johan Bergström
c15e81afdd test: Introduce knowledge of FreeBSD jails
FreeBSD jails act differently than your average vm or similar
application container. All routing passes through one ip address,
which makes things like localhost or 0.0.0.0 resolve differently.

Introduce a helper that allows us to verify if we're in a jail
and another one for returning an ip address for localhost.

Also, skip one test instead of trading additional complexity
in common.js for one specific user scenario.

PR-URL: https://github.com/iojs/io.js/pull/1167
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-19 09:11:50 +11:00
Ben Noordhuis
fe0f015c51 src: fix crypto bio integer wraparound on 32 bits
Fix a bug where a size_t was negated and passed to a function that takes
an int64_t.  It works by accident when sizeof(size_t) == sizeof(int64_t)
but it causes the value to underflow when size_t is a 32 bits type.

v8::Isolate::AdjustAmountOfExternalAllocatedMemory() is the function I'm
talking about.  The goal of that call is to tell V8 that some memory has
been freed but due to that underflow, we were actually reporting that we
had just allocated gigabytes of memory.  It set off a garbage collector
frenzy and essentially brought the VM to a standstill.

Fixes: https://github.com/iojs/io.js/issues/1188
PR-URL: https://github.com/iojs/io.js/pull/1192
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-03-18 20:06:20 +01:00
Yosuke Furukawa
2b63bcd247 doc: add yosuke-furukawa as collaborator
PR-URL: https://github.com/iojs/io.js/pull/1183
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Rod Vagg <rod@vagg.org>
Reviewed-By: Shigeki Ohtsu <ohtsu@iij.ad.jp>
2015-03-18 10:07:59 +09:00
Ben Noordhuis
69350baaef doc: update test section in CONTRIBUTING.md
test/simple no longer exists, tell contributors to add their tests to
test/parallel.

PR-URL: https://github.com/iojs/io.js/pull/1181
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-03-17 21:31:53 +01:00
Petka Antonov
3c8ae2d934 doc: add petkaantonov as collaborator
PR-URL: https://github.com/iojs/io.js/pull/1179
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: cjihrig <cjihrig@gmail.com>
2015-03-17 21:53:57 +02:00
Roman Reiss
92c1ad97c0 doc: add silverwind as collaborator
PR-URL: https://github.com/iojs/io.js/pull/1176
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-03-17 19:53:17 +01:00
Johan Bergström
14c74d5326 doc: add jbergstroem as collaborator
PR-URL: https://github.com/iojs/io.js/pull/1175
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-03-18 05:05:52 +11:00
Ben Noordhuis
8b2363d2fd configure: use gcc and g++ as CC and CXX defaults
It matches what GYP's Makefile generator does and it should improve
compiler detection because cc and c++ are not always gcc and g++.

Fixes: https://github.com/iojs/io.js/issues/1173
PR-URL: https://github.com/iojs/io.js/pull/1174
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
2015-03-17 17:03:24 +01:00
Alex Yursha
08ec897f82 doc: fix typo in buffer module documentation
PR-URL: https://github.com/iojs/io.js/pull/1169
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-17 12:25:31 +01:00
Brendan Ashworth
c638dad567 benchmark: add output format option [csv]
This commit adds an `OUTPUT_FORMAT` environment variable option for
all benchmark tests that allow either 'csv' or 'default' output. Default
output has been left unchanged, and csv output prints out the csv
headers along with the csv formatted per-test output, each test also
seperated by a newline.

It can be used like the following:
$ OUTPUT_FORMAT=csv iojs benchmark/common.js http

Not specifying the OUTPUT_FORMAT env var will default to 'default'.
Specifying a bad value will throw an error.

PR-URL: https://github.com/iojs/io.js/pull/777
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-16 21:27:17 -07:00
Brendan Ashworth
97d8d4928d benchmark: add plot_csv R graphing script
This commit adds a graphing script (in R) for graphing the CSV output
of a benchmark. It can be run like this:

```
$ OUTPUT_FORMAT=csv iojs benchmark/http/client-request-body.js >
data.csv
$ ./benchmark/plot_csv.R data.csv graph.png bytes type
```

This will graph the output to `graph.png`, using the output's `bytes`
value as X and the result value for each as Y. Output will be grouped
by `type`.

Running as the example yields a beautiful graph like this:
http://pbrd.co/1vBhUfy.

PR-URL: https://github.com/iojs/io.js/pull/777
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-16 21:26:05 -07:00
Ben Noordhuis
22793da485 v8: fix --max_old_space_size=4096 integer overflow
See https://code.google.com/p/v8/issues/detail?id=3857 for the bug
report and https://codereview.chromium.org/897543002 for the CL.

PR-URL: https://github.com/iojs/io.js/pull/1166
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-03-17 01:55:50 +01:00
Yosuke Furukawa
b2e00e38dc http: add flushHeaders and deprecate flush
PR-URL: https://github.com/iojs/io.js/pull/1156
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Christian Tellnes <christian@tellnes.no>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-03-17 00:54:11 +01:00
Julien Gilli
68d4bed2fd make: remove node_dtrace from cpplint excludes
PR-URL: https://github.com/joyent/node/pull/8741
Reviewed-By: Fedor Indutny <fedor@indutny.com>
2015-03-16 16:20:16 -04:00
James Hartig
30666f22ca net: use cached peername to resolve remote fields
Allows socket.remote* properties to still be accessed even after the
socket is closed.

Fixes: https://github.com/joyent/node/issues/9287
PR-URL: https://github.com/joyent/node/pull/9366
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-16 16:20:16 -04:00
Steven Vercruysse
e6e616fdcb doc: fix '\\' typos on Windows
This commit changes the Windows examples in path.markdown to
correctly display '\\'.

PR-URL: https://github.com/joyent/node/pull/9412
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-16 16:20:16 -04:00
Julien Gilli
89bf6c05e9 build: allow custom PackageMaker path
Make PACKAGEMAKER customizable because PackageMaker is not necessarily
installed in /Developer on OSX anymore.

PR-URL: https://github.com/joyent/node/pull/9377
Reviewed-By: Timothy J Fontaine <tjfontaine@gmail.com>
2015-03-16 16:20:16 -04:00
Ben Noordhuis
f58e59649d lib: remove broken NODE_MODULE_CONTEXTS feature
This feature has no tests and has been broken for ages, see for example
https://github.com/iojs/io.js/pull/1160.  Don't bother fixing it, it's
pretty much broken by design and there can't be too many users because
it's almost undocumented.  A quick Google search suggests that it causes
more grief than joy to the few that do use it.  Remove it.

PR-URL: https://github.com/iojs/io.js/pull/1162
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2015-03-16 20:56:13 +01:00
Ben Noordhuis
2551c1d2ca src: use Number::New() for heapTotal/heapUsed
With --max_old_space_size=12345 it's possible to create a JS heap that
is larger than what fits in an unsigned int so use Number::New() rather
than Integer::NewFromUnsigned().

Performance-wise, it doesn't matter much.  If V8 can fit the double in
a SMI, it will.

PR-URL: https://github.com/iojs/io.js/pull/1148
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-16 18:02:24 +01:00
Ben Noordhuis
4f394998ba src: don't create js string twice on error
Rewrite ErrnoException() so that it doesn't turn the file path into a
string twice.

PR-URL: https://github.com/iojs/io.js/pull/1148
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-16 18:02:01 +01:00
cjihrig
eb995d6822 path: add type checking for path inputs
This commit adds type checking of path inputs to exported methods
in the path module. The exception is _makeLong(), which seems to
explicitly support any data type.

Fixes: https://github.com/iojs/io.js/issues/1139
PR-URL: https://github.com/iojs/io.js/pull/1153
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
2015-03-16 12:49:21 -04:00
Alex Yursha
a28945b128 doc: reflect new require('events') behaviour
We don't need to do `require('events').EventEmitter` any longer.

PR-URL: https://github.com/iojs/io.js/pull/975
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
2015-03-16 11:30:07 +01:00
Brian White
85a92a37ef querystring: optimize parse and stringify
parse optimizations:

* Move try-catch to separate function to keep entire function from
being deoptimized.
* Use key array lookup instead of using hasOwnProperty.
* Avoid decoding known empty strings.
* Avoid possibly unnecessary switch to slower decoder for values if
key decoding throws.

stringify optimizations:

* Use manual loop for default encoder instead of encodeURIComponent.
* Use string concatenation instead of joining an array of strings.
* Avoid caching result of typeof.

PR-URL: https://github.com/iojs/io.js/pull/847
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
2015-03-15 23:11:38 -04:00
cjihrig
65d0a8eca8 deps: make node-gyp work with io.js
Every npm version bump requires a few patches to be floated on
node-gyp for io.js compatibility. These patches are found in
03d199276e,
5de334c230, and
da730c76e9. This commit squashes
them into a single commit.

PR-URL: https://github.com/iojs/io.js/pull/990
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-15 21:44:01 -04:00
Forrest L Norvell
7d0baf1741 deps: upgrade npm to 2.7.1
PR-URL: https://github.com/iojs/io.js/pull/1142
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
Reviewed-By: Rod Vagg <rod@vagg.org>
2015-03-15 21:41:52 -04:00
Fedor Indutny
4eb8810a27 tls: re-enable .writev() on TLSWrap
Fix the `parallel/test-tls-over-http-tunnel.js` on Windows by
re-enabling the accidentally disabled `.writev()` method on TLSWrap.

It appears that there is some subtle issue with shutdown timing and it
manifests itself when the chunks are written in separate packets. This
leads to concurrent `shutdown`/`destroy`, which breaks the test.

PR-URL: https://github.com/iojs/io.js/pull/1155
Reviewed-By: Bert Belder <bertbelder@gmail.com>
2015-03-14 21:08:38 -07:00
Fedor Indutny
e90ed790c3 tls: fix leak on DoWrite() errors
It is very unlikely to happen, but still the write request should be
disposed in case of immediate failure.

PR-URL: https://github.com/iojs/io.js/pull/1154
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-14 09:27:52 -07:00
Chris Dickinson
056ed4b0c9 src: revert -r/--require flags
This reverts commit 7bde3f1a8f.

The added test (test/parallel/test-preload.js) fails on Windows.

PR-URL: https://github.com/iojs/io.js/pull/1150
Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
2015-03-13 15:16:00 -07:00
FangDun Cai
7a5b023bac doc: fix vm module examples
PR-URL: https://github.com/iojs/io.js/pull/1147
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-13 23:14:20 +01:00
Ali Ijaz Sheikh
7bde3f1a8f src: add -r/--require flags for preloading modules
-r/--require can be used to preload modules on node startup. The option
takes a single module name. The option can be repeated as necessary to
preload multiple modules.

This patch allows 'vendors' (such a cloud host) to inject functionality
that gets executed at application startup without requiring an explicit
require from the user's application. This can be useful to load vendor
specific application monitoring APIs transparently.

PR-URL: https://github.com/iojs/io.js/pull/881
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
2015-03-13 13:54:34 -07:00
Jeremiah Senkpiel
53e200acc2 test: fix test-http-content-length
Previously the test did not allow the last request to complete.

Fixes: https://github.com/iojs/io.js/pull/1137
PR-URL: https://github.com/iojs/io.js/pull/1145
Reviewed-By: Brian White <mscdex@mscdex.net>
Reviewed-By: Bert Belder <bertbelder@gmail.com>
2015-03-13 16:50:11 -04:00
Shigeki Ohtsu
d8c4a932c9 crypto: add deprecated ValiCert CA for cross cert
The host of melissadata.net has a cross root certification between
Starfield Class 2 and ValiCert Class 2. OpenSSL-1.0.1 only looks up
a cert chain to the deprecated ValiCert Class 2 CA and causes
untrusted error. We add it for a short-term remedy and it is to be
removed after upgrading OpenSSSL-1.0.2 and applying private patches
to support alternative cert chains.
See #402 and #589.

Fixes: https://github.com/iojs/io.js/issues/923
PR-URL: https://github.com/iojs/io.js/pull/1135
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2015-03-13 20:18:54 +09:00
Shigeki Ohtsu
82f067e60b test: fix ext commands to be double quoted
Paths used on the Windows command line need to be enclosed in double
quotes, or they'll be parsed incorrectly when there are spaces in the
path.

PR-URL: https://github.com/iojs/io.js/pull/1122
Reviewed-by: Bert Belder <bertbelder@gmail.com>
2015-03-12 17:35:20 -07:00