summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* iojs: introduce internal modulesVladimir Kurchatkin2015-03-2512-35/+91
| | | | | | | | | | Internal modules can be used to share private code between public modules without risk to expose private APIs to the user. PR-URL: https://github.com/iojs/io.js/pull/848 Reviewed-By: Trevor Norris <trev.norris@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
* doc: fix format docs discrepancyBrendan Ashworth2015-03-251-2/+2
| | | | | | | | | Only objects and symbols use `util.inspect`, others are simply concatenated. Fixes: https://github.com/iojs/io.js/issues/935 PR-URL: https://github.com/iojs/io.js/pull/1255 Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
* string_decoder: optimize write()Brian White2015-03-252-37/+128
| | | | | | | | | | | By limiting property getting/setting to only where they are absolutely necessary, we can achieve greater performance especially with small utf8 inputs and any size base64 inputs. PR-URL: https://github.com/iojs/io.js/pull/1209 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Nicu Micleușanu <micnic90@gmail.com> Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
* win,node-gyp: allow node.exe/iojs.exe to be renamedBert Belder2015-03-242-0/+44
| | | | | | | | | | | | | | | | | | | | | On Windows, when node or io.js attempts to dynamically load a compiled addon, the compiled addon tries to load node.exe or iojs.exe again - depending on which import library the module used when it was linked. This makes it impossible to rename node.exe or iojs.exe, because when that happens the module can't find its dependencies. With this patch, a delay-load hook is added to all modules that are compiled with node-gyp. The delay-load hook ensures that whenever a module tries to load imports from node.exe/iojs.exe, it'll just refer back to the process image, thus making it possible to rename the iojs/node binary. Bug: https://github.com/iojs/io.js/issues/751 Bug: https://github.com/iojs/io.js/issues/965 Upstream PR: https://github.com/TooTallNate/node-gyp/pull/599 PR-URL: https://github.com/iojs/io.js/pull/1251 Reviewed-By: Rod Vagg <rod@vagg.org>
* fs: fix corruption in writeFile and writeFileSyncOlov Lassus2015-03-241-5/+11
| | | | | | | | | | | | | | | | | | 1. writeFileSync bumps position incorrectly, causing it to drift in iteration three and onwards. 2. Append mode files will get corrupted in the middle if writeFile or writeFileSync iterates multiple times, unless running on Linux. position starts out as null so first write is OK, but then position will refer to a location inside an existing file, corrupting that data. Linux ignores position for append mode files so it doesn't happen there. This commit fixes these two related issues by bumping position correctly and by always using null as the position argument to write/writeSync for append mode files. PR-URL: https://github.com/iojs/io.js/pull/1063 Reviewed-By: Bert Belder <bertbelder@gmail.com>
* doc: clarify real name requirementRoman Reiss2015-03-241-3/+3
| | | | | | | | CONTRIBUTING.md didn't make our rule for requiring real names from contributors clear enough. This commit shall clarify that part. Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> PR-URL: https://github.com/iojs/io.js/pull/1250
* doc: document repl on-demand module loadingRoman Reiss2015-03-241-0/+3
| | | | | | | Fixes: https://github.com/iojs/io.js/issues/992 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com> PR-URL: https://github.com/iojs/io.js/pull/1249
* lib: add missing `new` for errors lib/*.jsMayhem2015-03-246-10/+11
| | | | | | | | | | Not including `new` adds a useless frame and removes a potentially useful frame. PR-URL: https://github.com/iojs/io.js/pull/1246 Reviewed-By: Petka Antonov <petka_antonov@hotmail.com> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com>
* assert: simplify logic of testing buffer equalityAlex Yursha2015-03-231-7/+2
| | | | | | | | Delegate buffer equality check to `buffer.equals()` PR-URL: https://github.com/iojs/io.js/pull/1171 Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com> Reviewed-By: Christian Vaagland Tellnes <christian@tellnes.com>
* deps: make node-gyp work with io.jscjihrig2015-03-233-25/+25
| | | | | | | | | | | | Every npm version bump requires a few patches to be floated on node-gyp for io.js compatibility. These patches are found in 03d199276e21c1fa08d8df14eeb654c90cc5aa20, 5de334c23096492014a097ff487f07ad8eaee6d2, and da730c76e98fb9fd18dac445dafbbec74d79f802. 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>
* deps: upgrade npm to 2.7.3Forrest L Norvell2015-03-23163-1698/+964
| | | | | | PR-URL: https://github.com/iojs/io.js/pull/1219 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com> Reviewed-By: Rod Vagg <rod@vagg.org>
* src: remove unnecessary environment lookupsBen Noordhuis2015-03-231-32/+15
| | | | | | | | Remove some unnecessary environment lookups and delete a few superfluous HandleScope variables. PR-URL: https://github.com/iojs/io.js/pull/1238 Reviewed-By: Fedor Indutny <fedor@indutny.com>
* src: make accessors immune to context confusionBen Noordhuis2015-03-238-60/+78
| | | | | | | | | | | | | It's possible for an accessor or named interceptor to get called with a different execution context than the one it lives in, see the test case for an example using the debug API. This commit fortifies against that by passing the environment as a data property instead of looking it up through the current context. Fixes: https://github.com/iojs/io.js/issues/1190 (again) PR-URL: https://github.com/iojs/io.js/pull/1238 Reviewed-By: Fedor Indutny <fedor@indutny.com>
* Working on v1.6.3Rod Vagg2015-03-231-2/+2
|
* 2015-03-23 io.js v1.6.2 Releasev1.6.2Rod Vagg2015-03-232-1/+40
| | | | | | | | | | | | | | | | | | | Notable Changes: * Windows: The ongoing work in improving the state of Windows support has resulted in full test suite passes once again. As noted in the release notes for v1.4.2, CI system and configuration problems prevented it from properly reporting problems with the Windows tests, the problems with the CI and the codebase appear to have been fully resolved. * FreeBSD: A kernel bug impacting io.js/Node.js was discovered and a patch has been introduced to prevent it causing problems for io.js (Fedor Indutny) #1218. * module: you can now require('.') instead of having to require('./'), this is considered a bugfix (Michaël Zasso) #1185. * v8: updated to 4.1.0.25 including patches for --max_old_space_size values above 4096 and Solaris support, both of which are already included in io.js.
* util: Check input to util.inheritsConnor Peet2015-03-222-0/+22
| | | | | | PR-URL: https://github.com/iojs/io.js/pull/1240 Reviewed-By: Brendan Ashworth <brendan.ashworth@me.com> Reviewed-By: Petka Antonov <petka_antonov@hotmail.com>
* deps: upgrade v8 to 4.1.0.25Johan Bergström2015-03-2310-66/+126
| | | | | | | PR-URL: https://github.com/iojs/io.js/pull/1224 Reviewed-By: Fedor Indutny <fedor@indutny.com> Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
* test: move sequential/test-signal-unregisterBen Noordhuis2015-03-231-0/+0
| | | | | | | | Move sequential/test-signal-unregister to test/parallel, it doesn't need to run in sequential mode. PR-URL: https://github.com/iojs/io.js/pull/1227 Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
* test: fix timing issue in signal testBen Noordhuis2015-03-232-27/+8
| | | | | | | | | Change sequential/test-signal-unregister so it doesn't use fixed timeouts for sending the signal and expecting the child to quit. Fixes: https://github.com/iojs/io.js/issues/1223 PR-URL: https://github.com/iojs/io.js/pull/1227 Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
* vm: fix crash on fatal error in debug contextBen Noordhuis2015-03-224-5/+52
| | | | | | | | | | | | | | Ensure that the debug context has an Environment assigned in case a fatal error is raised. The fatal exception handler in node.cc is not equipped to deal with contexts that don't have one and can't easily be taught that due to a deficiency in the V8 API: there is no way for the embedder to tell if the data index is in use. Fixes: https://github.com/iojs/io.js/issues/1190 PR-URL: https://github.com/iojs/io.js/pull/1229 Reviewed-By: Fedor Indutny <fedor@indutny.com>
* doc: update AUTHORS listRod Vagg2015-03-231-0/+7
| | | | | | | | Update AUTHORS file using tools/update-authors.sh PR-URL: https://github.com/iojs/io.js/pull/1234 Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
* doc: fix typo in CHANGELOGMathieu Darse2015-03-221-2/+2
| | | | | PR-URL: https://github.com/iojs/io.js/pull/1230 Reviewed-By: Rod Vagg <rod@vagg.org>
* node: ensure that streams2 won't `.end()` stdinFedor Indutny2015-03-211-0/+2
| | | | | | | | | | Stdin is purely read-only stream. Although, `net.Socket` might be used to create it if stdin is in fact a Pipe or TCP socket, the `stream.Duplex` should not try to call `.end()` on it. Fix: https://github.com/iojs/io.js/issues/1068 PR-URL: https://github.com/iojs/io.js/pull/1233 Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com>
* test: fix crypto-binary-default bad crypto checkBrendan Ashworth2015-03-211-12/+1
| | | | | | | | | | | | | This commit fixes a small bug introduced in 671fbd5 that caused the test to not be run. crypto was properly checked, but since tls was not imported, a TypeError would be thrown in the `try {} catch {}` block and falsely reported as no crypto. This is now fixed. PR-URL: https://github.com/iojs/io.js/pull/1141 Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
* doc: call js function in null contextBen Noordhuis2015-03-211-1/+2
| | | | | | | | | | It's good practice now to call JS functions that don't execute in a specific scope with v8::Null() as the receiver. Update the addons documentation. PR-URL: https://github.com/iojs/io.js/pull/1125 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
* doc: don't use `using namespace v8`Ben Noordhuis2015-03-211-11/+145
| | | | | | | | | | Wholesale importing an entire namespace with `using namespace` is a bad practice. Remove it from the addons documentation and replace it with proper `using` directives. Wrap code in a namespace while we are here. PR-URL: https://github.com/iojs/io.js/pull/1125 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
* doc: replace v8::Handle<T> with v8::Local<T>Ben Noordhuis2015-03-211-13/+13
| | | | | | | | | v8::Handle is on its way out, to be replaced with v8::Local. Update the addons documentation accordingly. PR-URL: https://github.com/iojs/io.js/pull/1125 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
* doc: remove unnecessary v8::HandleScopesBen Noordhuis2015-03-211-19/+0
| | | | | | | | | | | Remove unnecessary v8::HandleScope uses from the addons documentation. C++ API callbacks run in an implicit v8::HandleScope, there is no need to declare one in the callback function. PR-URL: https://github.com/iojs/io.js/pull/1125 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
* doc: remove uses of v8::Isolate::GetCurrent()Ben Noordhuis2015-03-211-26/+23
| | | | | | | | | v8::Isolate::GetCurrent() is slated for deprecation. Replace its uses in the addons documentation with v8::Object::GetIsolate(), etc. PR-URL: https://github.com/iojs/io.js/pull/1125 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Trevor Norris <trev.norris@gmail.com>
* test: add setTimeout/setInterval multi-arg testsBen Noordhuis2015-03-201-0/+30
| | | | | | | | It turns out we have little to no test coverage for setTimeout() and setInterval() calls with optional arguments. Now we do. PR-URL: https://github.com/iojs/io.js/pull/1221 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
* lib: don't penalize setInterval() common caseBen Noordhuis2015-03-201-30/+28
| | | | | | | | | | The common case is where setInterval() is called with two arguments, the callback and the timeout. Specifying optional arguments in the parameter list forces common case calls to go through an arguments adaptor stack frame. PR-URL: https://github.com/iojs/io.js/pull/1221 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
* lib: don't penalize setTimeout() common caseBen Noordhuis2015-03-201-23/+13
| | | | | | | | | | The common case is where setTimeout() is called with two arguments, the callback and the timeout. Specifying optional arguments in the parameter list forces common case calls to go through an arguments adaptor stack frame. PR-URL: https://github.com/iojs/io.js/pull/1221 Reviewed-By: Trevor Norris <trev.norris@gmail.com>
* src: reset signal handler to SIG_DFL on FreeBSDFedor Indutny2015-03-202-0/+24
| | | | | | | | | | | | FreeBSD has a nasty bug with SA_RESETHAND reseting the SA_SIGINFO, that is in turn set for a libthr wrapper. This leads to a crash. Work around the issue by manually setting SIG_DFL in the signal handler. Fix: https://github.com/joyent/node/issues/9326 PR-URL: https://github.com/iojs/io.js/pull/1218 Reviewed-By: Johan Bergström <bugs@bergstroem.nu> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
* module: allow require('.')Michaël Zasso2015-03-205-1/+10
| | | | | | | | | | | Previously, the minimal argument to require the current directory was require('./'). This commits allows to skip the trailing slash. Fixes: https://github.com/iojs/io.js/issues/1178 PR-URL: https://github.com/iojs/io.js/pull/1185 Reviewed-By: Chris Dickinson <christopher.s.dickinson@gmail.com> Reviewed-By: Christian Tellnes <christian@tellnes.no> Reviewed-By: Roman Reiss <me@silverwind.io>
* Working on v1.6.2Rod Vagg2015-03-201-2/+2
|
* 2015-03-20 io.js v1.6.1 Releasev1.6.1Rod Vagg2015-03-202-2/+25
| | | | | | | | | | | | | | | | | | Notable Changes: * path: New type-checking on path.resolve() <https://github.com/iojs/io.js/pull/1153> uncovered some edge-cases being relied upon in the wild, most notably path.dirname(undefined). Type-checking has been loosened for path.dirname(), path.basename(), and path.extname(), (Colin Ihrig) <https://github.com/iojs/io.js/pull/1216>. * querystring: Internal optimizations in querystring.parse() and querystring.stringify() <https://github.com/iojs/io.js/pull/847> prevented Number literals from being properly converted via querystring.escape() <https://github.com/iojs/io.js/pull/1208>, exposing a blind-spot in the test suite. The bug and the tests have now been fixed (Jeremiah Senkpiel) <https://github.com/iojs/io.js/pull/1213>.
* querystring: fix broken stringifyPrimitiveJeremiah Senkpiel2015-03-191-1/+3
| | | | | | | | | | | 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>
* querystring: parse numbers correctlyJeremiah Senkpiel2015-03-192-0/+11
| | | | | | | | | 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>
* path: reduce type checking on some methodscjihrig2015-03-192-13/+6
| | | | | | | | | | | | a465840313f548b913eb2bd8ea3d26c2ab5dcebb 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>
* build: make check aliases testJohan Bergström2015-03-201-0/+2
| | | | | | | | 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>
* configure: use cc and c++ as defaults on os xBen Noordhuis2015-03-191-3/+4
| | | | | | | | | | | | | | 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>
* smalloc: don't mix malloc() and new char[]Ben Noordhuis2015-03-191-3/+12
| | | | | | | | | 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>
* Working on v1.6.1Chris Dickinson2015-03-191-2/+2
|
* 2015-03-19 io.js v1.6.0 Releasev1.6.0Chris Dickinson2015-03-192-3/+89
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* deps: upgrade to openssl-1.0.1mShigeki Ohtsu2015-03-191143-295820/+285007
| | | | | | | | | | | | | | | | | | | | | | 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>
* doc: fix a broken collaborator github linkAleksanteri Negru-Vode2015-03-191-1/+1
| | | | | PR-URL: https://github.com/iojs/io.js/pull/1204 Reviewed-By: Jeremiah Senkpiel <fishrock123@rocketmail.com>
* buffer: removing duplicate codeThorsten Lorenz2015-03-191-12/+1
| | | | | | | | | | | | | | | | | | | | | | | - 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>
* src: add -r/--require flags for preloading modulesAli Ijaz Sheikh2015-03-197-66/+194
| | | | | | | | | | | | | 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>
* test: cache lazy properties, fix style nitsRod Vagg2015-03-196-22/+31
| | | | | | | | | | | 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>
* test: double timeout in tls-wrap-timeout.jsFedor Indutny2015-03-181-3/+3
| | | | | | | | | 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>