Browse Source

Merge remote-tracking branch 'upstream/v0.10' into v0.12

Conflicts:
	AUTHORS
	ChangeLog
	deps/uv/ChangeLog
	deps/uv/build.mk
	deps/uv/config-unix.mk
	deps/uv/include/uv-private/uv-win.h
	deps/uv/src/unix/async.c
	deps/uv/src/unix/process.c
	deps/uv/src/version.c
	deps/uv/src/win/poll.c
	deps/uv/test/test-list.h
	deps/uv/uv.gyp
	lib/http.js
	src/node.js
	src/node_version.h
v0.12.2-release
Julien Gilli 10 years ago
parent
commit
eb2764a945
  1. 3
      AUTHORS
  2. 17
      ChangeLog
  3. 53
      doc/api/fs.markdown
  4. 4
      lib/url.js
  5. 41
      test/simple/test-domain-top-level-error-handler-clears-stack.js
  6. 8
      test/simple/test-url.js

3
AUTHORS

@ -89,6 +89,7 @@ Brian Hammond
Brian McKenna
Brian Schroeder
Brian White
Bruno Jouhier
Bryan Cantrill
C. Scott Ananian
CGavrila
@ -401,6 +402,7 @@ Maxwell Krohn
Michael Axiak
Michael Bernstein
Michael Carter
Michael Dawson
Michael Hart
Michael Jackson
Michael Kebe
@ -652,6 +654,7 @@ Zarko Stankovic
Zoran Tomicic
ayanamist
fengmk2
h7lin
haoxin
pflannery
pkcs

17
ChangeLog

@ -1,4 +1,4 @@
2015.02.06, Version 0.12.0 (Stable)
2015.02.06, Version 0.12.0 (Stable), 2b18916ff054309a07408719b62e2b6a4f1e056a
* npm: Upgrade to 2.5.1
@ -948,6 +948,21 @@
* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)
2015.03.11, Version 0.10.37 (Maintenance)
* uv: update to 0.10.36 (CVE-2015-0278)
* domains: fix stack clearing after error handled (Jonas Dohse)
* buffer: reword Buffer.concat error message (Chris Dickinson)
* console: allow Object.prototype fields as labels (Julien Gilli)
* V8: log version in profiler log file (Ben Noordhuis)
* http: fix performance regression for GET requests (Florin-Cristian Gavrila)
2015.01.26, Version 0.10.36 (Stable), 09b482886bdd3d863c3d4e7d71264eac0daaf9e1
* openssl: update to 1.0.1l

53
doc/api/fs.markdown

@ -92,7 +92,7 @@ to the completion callback.
## fs.renameSync(oldPath, newPath)
Synchronous rename(2).
Synchronous rename(2). Returns `undefined`.
## fs.ftruncate(fd, len, callback)
@ -101,7 +101,7 @@ given to the completion callback.
## fs.ftruncateSync(fd, len)
Synchronous ftruncate(2).
Synchronous ftruncate(2). Returns `undefined`.
## fs.truncate(path, len, callback)
@ -111,7 +111,7 @@ first argument. In this case, `fs.ftruncate()` is called.
## fs.truncateSync(path, len)
Synchronous truncate(2).
Synchronous truncate(2). Returns `undefined`.
## fs.chown(path, uid, gid, callback)
@ -120,7 +120,7 @@ to the completion callback.
## fs.chownSync(path, uid, gid)
Synchronous chown(2).
Synchronous chown(2). Returns `undefined`.
## fs.fchown(fd, uid, gid, callback)
@ -129,7 +129,7 @@ to the completion callback.
## fs.fchownSync(fd, uid, gid)
Synchronous fchown(2).
Synchronous fchown(2). Returns `undefined`.
## fs.lchown(path, uid, gid, callback)
@ -138,7 +138,7 @@ to the completion callback.
## fs.lchownSync(path, uid, gid)
Synchronous lchown(2).
Synchronous lchown(2). Returns `undefined`.
## fs.chmod(path, mode, callback)
@ -147,7 +147,7 @@ to the completion callback.
## fs.chmodSync(path, mode)
Synchronous chmod(2).
Synchronous chmod(2). Returns `undefined`.
## fs.fchmod(fd, mode, callback)
@ -156,7 +156,7 @@ are given to the completion callback.
## fs.fchmodSync(fd, mode)
Synchronous fchmod(2).
Synchronous fchmod(2). Returns `undefined`.
## fs.lchmod(path, mode, callback)
@ -167,7 +167,7 @@ Only available on Mac OS X.
## fs.lchmodSync(path, mode)
Synchronous lchmod(2).
Synchronous lchmod(2). Returns `undefined`.
## fs.stat(path, callback)
@ -207,7 +207,7 @@ the completion callback.
## fs.linkSync(srcpath, dstpath)
Synchronous link(2).
Synchronous link(2). Returns `undefined`.
## fs.symlink(srcpath, dstpath[, type], callback)
@ -220,7 +220,7 @@ Note that Windows junction points require the destination path to be absolute.
## fs.symlinkSync(srcpath, dstpath[, type])
Synchronous symlink(2).
Synchronous symlink(2). Returns `undefined`.
## fs.readlink(path, callback)
@ -257,7 +257,7 @@ to the completion callback.
## fs.unlinkSync(path)
Synchronous unlink(2).
Synchronous unlink(2). Returns `undefined`.
## fs.rmdir(path, callback)
@ -266,7 +266,7 @@ to the completion callback.
## fs.rmdirSync(path)
Synchronous rmdir(2).
Synchronous rmdir(2). Returns `undefined`.
## fs.mkdir(path[, mode], callback)
@ -275,7 +275,7 @@ to the completion callback. `mode` defaults to `0777`.
## fs.mkdirSync(path[, mode])
Synchronous mkdir(2).
Synchronous mkdir(2). Returns `undefined`.
## fs.readdir(path, callback)
@ -295,7 +295,7 @@ to the completion callback.
## fs.closeSync(fd)
Synchronous close(2).
Synchronous close(2). Returns `undefined`.
## fs.open(path, flags[, mode], callback)
@ -356,19 +356,27 @@ the end of the file.
## fs.openSync(path, flags[, mode])
Synchronous version of `fs.open()`.
Synchronous version of `fs.open()`. Returns an integer representing the file
descriptor.
## fs.utimes(path, atime, mtime, callback)
## fs.utimesSync(path, atime, mtime)
Change file timestamps of the file referenced by the supplied path.
## fs.utimesSync(path, atime, mtime)
Synchronous version of `fs.utimes()`. Returns `undefined`.
## fs.futimes(fd, atime, mtime, callback)
## fs.futimesSync(fd, atime, mtime)
Change the file timestamps of a file referenced by the supplied file
descriptor.
## fs.futimesSync(fd, atime, mtime)
Synchronous version of `fs.futimes()`. Returns `undefined`.
## fs.fsync(fd, callback)
Asynchronous fsync(2). No arguments other than a possible exception are given
@ -376,7 +384,7 @@ to the completion callback.
## fs.fsyncSync(fd)
Synchronous fsync(2).
Synchronous fsync(2). Returns `undefined`.
## fs.write(fd, buffer, offset, length[, position], callback)
@ -506,7 +514,7 @@ Example:
## fs.writeFileSync(filename, data[, options])
The synchronous version of `fs.writeFile`.
The synchronous version of `fs.writeFile`. Returns `undefined`.
## fs.appendFile(filename, data[, options], callback)
@ -530,7 +538,7 @@ Example:
## fs.appendFileSync(filename, data[, options])
The synchronous version of `fs.appendFile`.
The synchronous version of `fs.appendFile`. Returns `undefined`.
## fs.watchFile(filename[, options], listener)
@ -661,7 +669,8 @@ and handle the error when it's not there.
## fs.existsSync(path)
Synchronous version of `fs.exists`.
Synchronous version of `fs.exists()`. Returns `true` if the file exists,
`false` otherwise.
`fs.existsSync()` will be deprecated.

4
lib/url.js

@ -639,8 +639,8 @@ Url.prototype.resolveObject = function(relative) {
// then it must NOT get a trailing slash.
var last = srcPath.slice(-1)[0];
var hasTrailingSlash = (
(result.host || relative.host || srcPath.length > 1) &&
(last === '.' || last === '..') || last === '');
(result.host || relative.host) && (last === '.' || last === '..') ||
last === '');
// strip single dots, resolve double dots to parent dir
// if the path tries to go above the root, `up` ends up > 0

41
test/simple/test-domain-top-level-error-handler-clears-stack.js

@ -0,0 +1,41 @@
// Copyright Joyent, Inc. and other Node contributors.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the
// "Software"), to deal in the Software without restriction, including
// without limitation the rights to use, copy, modify, merge, publish,
// distribute, sublicense, and/or sell copies of the Software, and to permit
// persons to whom the Software is furnished to do so, subject to the
// following conditions:
//
// The above copyright notice and this permission notice shall be included
// in all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
var assert = require('assert');
var domain = require('domain');
/*
* Make sure that the domains stack is cleared after a top-level domain
* error handler exited gracefully.
*/
var d = domain.create();
d.on('error', function() {
process.nextTick(function() {
if (domain._stack.length !== 1) {
process.exit(1);
}
});
});
d.run(function() {
throw new Error('Error from domain');
});

8
test/simple/test-url.js

@ -1178,14 +1178,6 @@ var relativeTests = [
['/foo/bar/baz/', 'quux/baz', '/foo/bar/baz/quux/baz'],
['/foo/bar/baz', '../../../../../../../../quux/baz', '/quux/baz'],
['/foo/bar/baz', '../../../../../../../quux/baz', '/quux/baz'],
['/foo', '.', '/'],
['/foo', '..', '/'],
['/foo/', '.', '/foo/'],
['/foo/', '..', '/'],
['/foo/bar', '.', '/foo/'],
['/foo/bar', '..', '/'],
['/foo/bar/', '.', '/foo/bar/'],
['/foo/bar/', '..', '/foo/'],
['foo/bar', '../../../baz', '../../baz'],
['foo/bar/', '../../../baz', '../baz'],
['http://example.com/b//c//d;p?q#blarg', 'https:#hash2', 'https:///#hash2'],

Loading…
Cancel
Save