diff -Nru nodejs-0.4.9~natty1~ppa201106291616/debian/changelog nodejs-0.4.10~natty1~ppa201107202043/debian/changelog --- nodejs-0.4.9~natty1~ppa201106291616/debian/changelog 2011-06-29 14:16:07.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/debian/changelog 2011-07-20 18:43:17.000000000 +0000 @@ -1,8 +1,8 @@ -nodejs (0.4.9~natty1~ppa201106291616) natty; urgency=low +nodejs (0.4.10~natty1~ppa201107202043) natty; urgency=low * Another build - -- Jerome Etienne Wed, 29 Jun 2011 16:16:07 +0200 + -- Jerome Etienne Wed, 20 Jul 2011 20:43:17 +0200 nodejs (0.2.4~natty1~ppa201010250818) natty; urgency=low diff -Nru nodejs-0.4.9~natty1~ppa201106291616/Makefile nodejs-0.4.10~natty1~ppa201107202043/Makefile --- nodejs-0.4.9~natty1~ppa201106291616/Makefile 2011-06-29 14:15:20.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/Makefile 2011-07-20 18:42:10.000000000 +0000 @@ -3,7 +3,7 @@ # define variables # - to get the codename => $ lsb_release -c -s PKGNAME="nodejs" -VERSION="0.4.9" +VERSION="0.4.10" CODENAME="natty" PWD := $(shell pwd) diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/AUTHORS nodejs-0.4.10~natty1~ppa201107202043/tmp/node/AUTHORS --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/AUTHORS 2011-06-29 14:16:03.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/AUTHORS 2011-07-20 18:43:15.000000000 +0000 @@ -172,4 +172,20 @@ Jakub Lekstan Tim Baumann Robert Mustacchi - +George Miroshnykov +Marcel Laverdet +Alexandre Marangone +Mark Cavage +Ryan Petrello +Siddharth Mahendraker +Mathias Buus +Yoshihiro KIKUCHI +Brett Kiefer +Mariano Iglesias +Jörn Horstmann +Joe Shaw +Alex Xu +Kip Gebhardt +Stefan Rusu +Wojciech Wnętrzak +Reid Burke diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/ChangeLog nodejs-0.4.10~natty1~ppa201107202043/tmp/node/ChangeLog --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/ChangeLog 2011-06-29 14:16:03.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/ChangeLog 2011-07-20 18:43:15.000000000 +0000 @@ -1,3 +1,30 @@ +2011.07.19, Version 0.4.10 (stable) + +* #394 Fix Buffer drops last null character in UTF-8 + +* #829 Backport r8577 from V8 (Ben Noordhuis) + +* #877 Don't wait for HTTP Agent socket pool to establish connections. + +* #915 Find kqueue on FreeBSD correctly (Brett Kiefer) + +* #1085 HTTP: Fix race in abort/dispatch code (Stefan Rusu) + +* #1274 debugger improvement (Yoshihiro Kikuchi) + +* #1291 Properly respond to HEAD during end(body) hot path (Reid Burke) + +* #1304 TLS: Fix race in abort/connection code (Stefan Rusu) + +* #1360 Allow _ in url hostnames. + +* Revert 37d529f8 - unbreaks debugger command parsing. + +* Bring back global execScript + +* Doc improvements + + 2011.06.29, Version 0.4.9 (stable) * Improve documentation diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/libev/wscript nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/libev/wscript --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/libev/wscript 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/libev/wscript 2011-07-20 18:43:15.000000000 +0000 @@ -28,12 +28,17 @@ if conf.check_cc(header_name="poll.h"): conf.check_cc(header_name="poll.h", function_name="poll") - conf.check_cc(header_name="sys/event.h") - conf.check_cc(header_name="sys/queue.h") - if PLATFORM_IS_DARWIN: - conf.check_cc(header_name="sys/event.h", function_name="kqueue") - else: - conf.check_cc(header_name="sys/queue.h", function_name="kqueue") + kqueue_headers = [] + # On FreeBSD event.h is not selfcontained and requires types.h + event_headers = ["sys/types.h", "sys/event.h"] + if conf.check_cc(header_name=event_headers, define_name="HAVE_SYS_EVENT_H"): + kqueue_headers += event_headers + + if conf.check_cc(header_name="sys/queue.h"): + kqueue_headers.append("sys/queue.h") + + if kqueue_headers: + conf.check_cc(header_name=kqueue_headers, function_name="kqueue") if PLATFORM_IS_WIN32: # Windows has sys/select.h and select but this config line doesn't detect it properly diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/src/ia32/full-codegen-ia32.cc nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/src/ia32/full-codegen-ia32.cc --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/src/ia32/full-codegen-ia32.cc 2011-06-29 14:16:03.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/src/ia32/full-codegen-ia32.cc 2011-07-20 18:43:15.000000000 +0000 @@ -2772,8 +2772,12 @@ VisitForStackValue(args->at(0)); VisitForStackValue(args->at(1)); - MathPowStub stub; - __ CallStub(&stub); + if (CpuFeatures::IsSupported(SSE2)) { + MathPowStub stub; + __ CallStub(&stub); + } else { + __ CallRuntime(Runtime::kMath_pow, 2); + } context()->Plug(eax); } diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/src/v8natives.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/src/v8natives.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/src/v8natives.js 2011-06-29 14:16:03.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/src/v8natives.js 2011-07-20 18:43:15.000000000 +0000 @@ -147,6 +147,17 @@ } +// execScript for IE compatibility. +function GlobalExecScript(expr, lang) { + // NOTE: We don't care about the character casing. + if (!lang || /javascript/i.test(lang)) { + var f = %CompileString(ToString(expr)); + f.call(%GlobalReceiver(global)); + } + return null; +} + + // ---------------------------------------------------------------------------- @@ -166,7 +177,8 @@ "isFinite", GlobalIsFinite, "parseInt", GlobalParseInt, "parseFloat", GlobalParseFloat, - "eval", GlobalEval + "eval", GlobalEval, + "execScript", GlobalExecScript )); } diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/src/version.cc nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/src/version.cc --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/src/version.cc 2011-06-29 14:16:03.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/src/version.cc 2011-07-20 18:43:15.000000000 +0000 @@ -35,7 +35,7 @@ #define MAJOR_VERSION 3 #define MINOR_VERSION 1 #define BUILD_NUMBER 8 -#define PATCH_LEVEL 25 +#define PATCH_LEVEL 26 #define CANDIDATE_VERSION false // Define SONAME to have the SCons build the put a specific SONAME into the diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/test/mjsunit/execScript-case-insensitive.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/test/mjsunit/execScript-case-insensitive.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/test/mjsunit/execScript-case-insensitive.js 1970-01-01 00:00:00.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/test/mjsunit/execScript-case-insensitive.js 2011-07-20 18:43:14.000000000 +0000 @@ -0,0 +1,34 @@ +// Copyright 2008 the V8 project authors. All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +var x = 0; +execScript('x = 1', 'javascript'); +assertEquals(1, x); + +execScript('x = 2', 'JavaScript'); +assertEquals(2, x); + diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/test/mjsunit/function-names.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/test/mjsunit/function-names.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/test/mjsunit/function-names.js 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/test/mjsunit/function-names.js 2011-07-20 18:43:14.000000000 +0000 @@ -128,6 +128,6 @@ "encodeURI", "encodeURIComponent", "Error", "TypeError", "RangeError", "SyntaxError", "ReferenceError", "EvalError", "URIError", "isNaN", "isFinite", "parseInt", "parseFloat", - "eval"]; + "eval", "execScript"]; TestFunctionNames(this, globalFunctions); diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/test/mjsunit/regress/regress-1341167.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/test/mjsunit/regress/regress-1341167.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/test/mjsunit/regress/regress-1341167.js 1970-01-01 00:00:00.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/test/mjsunit/regress/regress-1341167.js 2011-07-20 18:43:14.000000000 +0000 @@ -0,0 +1,33 @@ +// Copyright 2008 the V8 project authors. All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following +// disclaimer in the documentation and/or other materials provided +// with the distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// Make sure that 'this' is bound to the global object when using +// execScript. + +var result; +execScript("result = this"); +assertTrue(result === this); Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/deps/v8/tools/jsmin.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/deps/v8/tools/jsmin.pyc differ diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/buffers.markdown nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/buffers.markdown --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/buffers.markdown 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/buffers.markdown 2011-07-20 18:43:15.000000000 +0000 @@ -16,6 +16,9 @@ * `'ascii'` - for 7 bit ASCII data only. This encoding method is very fast, and will strip the high bit if set. +Note that this encoding converts a null character (`'\0'` or `'\u0000'`) into +`0x20` (character code of a space). If you want to convert a null character +into `0x00`, you should use `'utf8'`. * `'utf8'` - Multi byte encoded Unicode characters. Many web pages and other document formats use UTF-8. diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/child_processes.markdown nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/child_processes.markdown --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/child_processes.markdown 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/child_processes.markdown 2011-07-20 18:43:15.000000000 +0000 @@ -65,7 +65,7 @@ `cwd` allows you to specify the working directory from which the process is spawned. Use `env` to specify environment variables that will be visible to the new process. -With `customFds` it is possible to hook up the new process' [stdin, stout, stderr] to +With `customFds` it is possible to hook up the new process' [stdin, stdout, stderr] to existing streams; `-1` means that a new stream should be created. `setsid`, if set true, will cause the subprocess to be run in a new session. diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/dgram.markdown nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/dgram.markdown --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/dgram.markdown 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/dgram.markdown 2011-07-20 18:43:14.000000000 +0000 @@ -186,7 +186,7 @@ Tells the kernel to join a multicast group with `IP_ADD_MEMBERSHIP` socket option. -If `multicastAddress` is not specified, the OS will try to add membership to all valid +If `multicastInterface` is not specified, the OS will try to add membership to all valid interfaces. ### dgram.dropMembership(multicastAddress, [multicastInterface]) @@ -196,5 +196,5 @@ when the socket is closed or process terminates, so most apps will never need to call this. -If `multicastAddress` is not specified, the OS will try to drop membership to all valid +If `multicastInterface` is not specified, the OS will try to drop membership to all valid interfaces. diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/fs.markdown nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/fs.markdown --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/fs.markdown 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/fs.markdown 2011-07-20 18:43:15.000000000 +0000 @@ -52,6 +52,9 @@ asynchronous versions of these calls. The synchronous versions will block the entire process until they complete--halting all connections. +Relative path to filename can be used, remember however that this path will be relative +to `process.cwd()`. + ### fs.rename(path1, path2, [callback]) Asynchronous rename(2). No arguments other than a possible exception are given @@ -70,6 +73,33 @@ Synchronous ftruncate(2). +### fs.chown(path, mode, [callback]) + +Asycnronous chown(2). No arguments other than a possible exception are given +to the completion callback. + +### fs.chownSync(path, mode) + +Synchronous chown(2). + +### fs.fchown(path, mode, [callback]) + +Asycnronous fchown(2). No arguments other than a possible exception are given +to the completion callback. + +### fs.fchownSync(path, mode) + +Synchronous fchown(2). + +### fs.lchown(path, mode, [callback]) + +Asycnronous lchown(2). No arguments other than a possible exception are given +to the completion callback. + +### fs.lchownSync(path, mode) + +Synchronous lchown(2). + ### fs.chmod(path, mode, [callback]) Asynchronous chmod(2). No arguments other than a possible exception are given @@ -79,6 +109,24 @@ Synchronous chmod(2). +### fs.fchmod(fd, mode, [callback]) + +Asynchronous fchmod(2). No arguments other than a possible exception +are given to the completion callback. + +### fs.fchmodSync(path, mode) + +Synchronous fchmod(2). + +### fs.lchmod(fd, mode, [callback]) + +Asynchronous lchmod(2). No arguments other than a possible exception +are given to the completion callback. + +### fs.lchmodSync(path, mode) + +Synchronous lchmod(2). + ### fs.stat(path, [callback]) Asynchronous stat(2). The callback gets two arguments `(err, stats)` where @@ -210,8 +258,27 @@ ### fs.open(path, flags, [mode], [callback]) -Asynchronous file open. See open(2). Flags can be 'r', 'r+', 'w', 'w+', 'a', -or 'a+'. `mode` defaults to 0666. The callback gets two arguments `(err, fd)`. +Asynchronous file open. See open(2). `flags` can be: + +* `'r'` - Open file for reading. +An exception occurs if the file does not exist. + +* `'r+'` - Open file for reading and writing. +An exception occurs if the file does not exist. + +* `'w'` - Open file for writing. +The file is created (if it does not exist) or truncated (if it exists). + +* `'w+'` - Open file for reading and writing. +The file is created (if it does not exist) or truncated (if it exists). + +* `'a'` - Open file for appending. +The file is created if it does not exist. + +* `'a+'` - Open file for reading and appending. +The file is created if it does not exist. + +`mode` defaults to `0666`. The callback gets two arguments `(err, fd)`. ### fs.openSync(path, flags, [mode]) @@ -353,6 +420,12 @@ `ReadStream` is a `Readable Stream`. +### Event: 'open' + +`function (fd) { }` + + `fd` is the file descriptor used by the ReadStream. + ### fs.createReadStream(path, [options]) Returns a new ReadStream object (See `Readable Stream`). diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/globals.markdown nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/globals.markdown --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/globals.markdown 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/globals.markdown 2011-07-20 18:43:15.000000000 +0000 @@ -79,6 +79,15 @@ for more information. `module` isn't actually a global but rather local to each module. + +### exports + +An object which is shared between all instances of the current module and +made accessible through `require()`. +`exports` is the same as the `module.exports` object. See `src/node.js` +for more information. +`exports` isn't actually a global but rather local to each module. + ### setTimeout(cb, ms) ### clearTimeout(t) ### setInterval(cb, ms) diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/http.markdown nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/http.markdown --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/http.markdown 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/http.markdown 2011-07-20 18:43:15.000000000 +0000 @@ -38,10 +38,10 @@ ### Event: 'connection' -`function (stream) { }` +`function (socket) { }` - When a new TCP stream is established. `stream` is an object of type - `net.Stream`. Usually users will not want to access this event. The + When a new TCP stream is established. `socket` is an object of type + `net.Socket`. Usually users will not want to access this event. The `stream` can also be accessed at `request.connection`. ### Event: 'close' @@ -52,7 +52,7 @@ ### Event: 'checkContinue' -`function (request, response) {}` +`function (request, response) { }` Emitted each time a request with an http Expect: 100-continue is received. If this event isn't listened for, the server will automatically respond @@ -68,7 +68,7 @@ ### Event: 'upgrade' -`function (request, socket, head)` +`function (request, socket, head) { }` Emitted each time a client requests a http upgrade. If this event isn't listened for, then clients requesting an upgrade will have their connections @@ -84,7 +84,7 @@ ### Event: 'clientError' -`function (exception) {}` +`function (exception) { }` If a client connection emits an 'error' event - it will forwarded here. @@ -239,7 +239,7 @@ ### request.connection -The `net.Stream` object associated with the connection. +The `net.Socket` object associated with the connection. With HTTPS support, use request.connection.verifyPeer() and @@ -393,6 +393,10 @@ - `path`: Request path. Should include query string and fragments if any. E.G. `'/index.html?page=12'` - `headers`: An object containing request headers. +- `agent`: Controls `Agent` behavior. Possible values: + - `undefined` (default): use default `Agent` for this host and port. + - `Agent` object: explicitly use the passed in `Agent`. + - `false`: explicitly generate a new `Agent` for this host and port. `Agent` will not be re-used. `http.request()` returns an instance of the `http.ClientRequest` class. The `ClientRequest` instance is a writable stream. If one needs to @@ -476,7 +480,7 @@ ### Event: 'upgrade' -`function (response, socket, head)` +`function (response, socket, head) { }` Emitted each time a server responds to a request with an upgrade. If this event isn't being listened for, clients receiving an upgrade header will have @@ -530,14 +534,6 @@ }); -### Event: 'continue' - -`function ()` - -Emitted when the server sends a '100 Continue' HTTP response, usually because -the request contained 'Expect: 100-continue'. This is an instruction that -the client should send the request body. - ### agent.maxSockets By default set to 5. Determines how many concurrent sockets the agent can have open. @@ -593,6 +589,14 @@ This is an `EventEmitter` with the following events: +### Event: 'continue' + +`function () { }` + +Emitted when the server sends a '100 Continue' HTTP response, usually because +the request contained 'Expect: 100-continue'. This is an instruction that +the client should send the request body. + ### Event 'response' `function (response) { }` @@ -639,18 +643,27 @@ ### Event: 'data' -`function (chunk) {}` +`function (chunk) { }` Emitted when a piece of the message body is received. ### Event: 'end' -`function () {}` +`function () { }` Emitted exactly once for each message. No arguments. After emitted no other events will be emitted on the response. +### Event: 'close' + +`function (err) { }` + +Indicates that the underlaying connection was terminated before +`end` event was emitted. +See [http.ServerRequest](#http.ServerRequest)'s `'close'` event for more +information. + ### response.statusCode The 3-digit HTTP response status code. E.G. `404`. diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/modules.markdown nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/modules.markdown --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/modules.markdown 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/modules.markdown 2011-07-20 18:43:15.000000000 +0000 @@ -307,21 +307,6 @@ `__filename`), the entry point of the current application can be obtained by checking `require.main.filename`. -### Accessing the main module - -When a file is run directly from Node, `require.main` is set to its -`module`. That means that you can determine whether a file has been run -directly by testing - - require.main === module - -For a file `foo.js`, this will be `true` if run via `node foo.js`, but -`false` if run by `require('./foo')`. - -Because `module` provides a `filename` property (normally equivalent to -`__filename`), the entry point of the current application can be obtained -by checking `require.main.filename`. - ## Addenda: Package Manager Tips The semantics of Node's `require()` function were designed to be general diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/stdio.markdown nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/stdio.markdown --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/api/stdio.markdown 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/api/stdio.markdown 2011-07-20 18:43:14.000000000 +0000 @@ -35,7 +35,7 @@ Finish timer, record output. Example console.time('100-elements'); - while (var i = 0; i < 100; i++) { + for (var i = 0; i < 100; i++) { ; } console.timeEnd('100-elements'); Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/favicon.ico and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/favicon.ico differ diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/index.html nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/index.html --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/index.html 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/index.html 2011-07-20 18:43:15.000000000 +0000 @@ -24,14 +24,16 @@
  1. Download
  2. -
  3. ChangeLog
  4. +
  5. ChangeLog
  6. About
  7. -
  8. v0.4.9 docs
  9. +
  10. v0.4.10 docs
  11. +
  12. v0.5.1 docs

  13. Wiki
  14. Blog
  15. Community
  16. Demo
  17. +
  18. Logos
  19. Jobs
@@ -39,6 +41,7 @@
+

@@ -107,11 +110,19 @@ git repo

-

- 2011.06.29 - node-v0.4.9.tar.gz - (Documentation) -

+

2011.07.19 v0.4.10 (stable) +

+ +

2011.07.14 v0.5.1 (unstable) +

+

Historical: versions, docs

@@ -183,13 +194,8 @@ But what about multiple-processor concurrency? Aren't threads necessary to scale programs to multi-core computers? - Processes are necessary to scale to multi-core computers, not - memory-sharing threads. The fundamentals of scalable systems are - fast networking and non-blocking design—the rest is message - passing. In future versions, Node will be able to fork new - processes (using the Web - Workers API ) which fits well into the current design. + You can start new processes via child_process.fork() + these other processes will be scheduled in parallel.

Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logo.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logo.png differ diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/index.html nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/index.html --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/index.html 1970-01-01 00:00:00.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/index.html 2011-07-20 18:43:14.000000000 +0000 @@ -0,0 +1,82 @@ + + + + + + + + + + + + Node.js Logos + + +

+ + +
+
+ +

To echo the evolutionary nature of Node, we've added some punch and playfulness to its identity. All it needs now is a good home with you, download and have fun!

+

Logo Downloads

+ + + + + + + + + + + + + + + + + +
Node.js darkNode.js dark
Node.js standard EPSNode.js reversed EPS
Node.js darkNode.js dark
Node.js bright EPSNode.js 1 color EPS
+

Desktop Background

+

Screensavers

+

Select your screen resolution:
+ 1024 x 768
| 1280 x 1024 | 1440 x 900 | 1920 x 1200 | 2560 x 1440

+ +

 

+

+ + +
+ +
+ + + +
+ Copyright 2010 Joyent, Inc +
+ Node.js is a trademark of Joyent, Inc. + See the trademark policy + for more information. +
+ + + + + + + Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/monitor.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/monitor.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/node-favicon.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/node-favicon.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-1024x768.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-1024x768.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-1280x1024.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-1280x1024.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-1440x900.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-1440x900.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-1920x1200.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-1920x1200.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-2560x1440.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-2560x1440.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-black.eps and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-black.eps differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-black.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-black.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-dark.eps and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-dark.eps differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-dark.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-dark.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-green.eps and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-green.eps differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-green.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-green.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs-light.eps and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs-light.eps differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/logos/nodejs.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/logos/nodejs.png differ diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/pipe.css nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/pipe.css --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/pipe.css 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/pipe.css 2011-07-20 18:43:14.000000000 +0000 @@ -1,21 +1,25 @@ +html { + -webkit-font-smoothing: antialiased; +} + body { - background: #22252a; - color: #eee; - font-size: 14pt; - line-height: 150%; - font-family: times, Times New Roman, times-roman, georgia, serif; - max-width: 30em; - margin: 0 0 5em 9em; + background: #353129; + color: #eee; + font-size: 14pt; + line-height: 150%; + font-family: Georgia, "Times New Roman", Times, serif; + max-width: 30em; + margin: 0 0 5em 9em; } img { - padding: 5em 0; - border: 0; + border: 0; } #toc { position: absolute; top: 2em; left: 0; width: 10em; + font-family: Helvetica, Arial, sans-serif; font-size: 12pt; line-height: 150%; } @@ -35,11 +39,17 @@ margin: 0; padding: 0; } -#toc a { color: #aaa; } +#toc a { + color: #8BC84B; +} h1, h2, h3, h4 { - color: #B0C4DE; - margin: 2em 0; + color: #CCD2BC; + font-family: Helvetica, Arial, sans-serif; + margin-top: 2em; + margin-right: 0; + margin-bottom: 10px; + margin-left: 0; } #toc ol ol { @@ -56,14 +66,17 @@ } pre, code { - font-family: monospace; - font-size: 13pt; - color: #eee0e0; + font-family: Monaco, 'Andale Mono', 'Lucida Console', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif; + ; + font-size: 11pt; + color: #C3CC88; } pre { - padding-left: 1em; - border-left: 1px solid #444; + padding-left: 1em; + border-left-width: 1px; + border-left-style: solid; + border-left-color: #8BC84B; } dd { @@ -71,11 +84,20 @@ margin-left: 1em; } -a { color: #cd5; text-decoration: none; } +a { + color: #8BC84B; + text-decoration: none; +} a:hover { text-decoration: underline; } .highlight { background: #733; padding: 0.2em 0; } +.desktops { + font-size: 14px; +} +.release { + margin: 0 0 0 2em; +} diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/sh_vim-dark.css nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/sh_vim-dark.css --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/sh_vim-dark.css 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/sh_vim-dark.css 2011-07-20 18:43:14.000000000 +0000 @@ -1,24 +1,23 @@ -.sh_sourceCode { - - font-weight: normal; - font-style: normal; -} - -.sh_sourceCode .sh_symbol , .sh_sourceCode .sh_cbracket { - color: #fff; -} - -.sh_sourceCode .sh_keyword { - font-style: italic; -} - -.sh_sourceCode .sh_string, .sh_sourceCode .sh_regexp, .sh_sourceCode .sh_number, -.sh_sourceCode .sh_specialchar -{ - color: #B0C4DE; -} - -.sh_sourceCode .sh_comment { - color: #777; -} - +.sh_sourceCode { + + font-weight: normal; + font-style: normal; +} + +.sh_sourceCode .sh_symbol , .sh_sourceCode .sh_cbracket { + color: #fff; +} + +.sh_sourceCode .sh_keyword { + font-style: italic; +} + +.sh_sourceCode .sh_string, .sh_sourceCode .sh_regexp, .sh_sourceCode .sh_number, +.sh_sourceCode .sh_specialchar +{ + color: #B9CCC5; +} + +.sh_sourceCode .sh_comment { + color: #777; +} Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/sponsored.png and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/sponsored.png differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/doc/trademark-policy.pdf and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/doc/trademark-policy.pdf differ diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/assert.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/assert.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/assert.js 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/assert.js 2011-07-20 18:43:14.000000000 +0000 @@ -56,9 +56,21 @@ return [this.name + ':', this.message].join(' '); } else { return [this.name + ':', - JSON.stringify(this.expected), + JSON.stringify(this.expected, replacer), this.operator, - JSON.stringify(this.actual)].join(' '); + JSON.stringify(this.actual, replacer)].join(' '); + } + function replacer(key, value) { + if (value === undefined) { + return '' + value; + } + if (typeof value === 'number' && (isNaN(value) || !isFinite(value))) { + return value.toString(); + } + if (typeof value === 'function' || value instanceof RegExp) { + return value.toString(); + } + return value; } }; diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/_debugger.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/_debugger.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/_debugger.js 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/_debugger.js 2011-07-20 18:43:14.000000000 +0000 @@ -785,7 +785,7 @@ self._lastCommand = null; self.tryQuit(); - } else if (/^r(un)?$/.test(cmd)) { + } else if (/^r(un)?/.test(cmd)) { self._lastCommand = null; if (self.child) { self.restartQuestion(function(yes) { @@ -805,7 +805,7 @@ self.trySpawn(); } - } else if (/^help$/.test(cmd)) { + } else if (/^help/.test(cmd)) { console.log(helpMessage); term.prompt(); @@ -819,7 +819,7 @@ term.prompt(); }); - } else if (/^info(\s+breakpoint)?$/.test(cmd)) { + } else if (/info +breakpoints/.test(cmd)) { if (!client) { self.printNotConnected(); return; @@ -867,7 +867,7 @@ term.prompt(); }); - } else if (/^b(ack)?t(race)?$/.test(cmd)) { + } else if (/^backtrace/.test(cmd) || /^bt/.test(cmd)) { if (!client) { self.printNotConnected(); return; @@ -905,7 +905,7 @@ self.printScripts(cmd.indexOf('full') > 0); term.prompt(); - } else if (/^c(ontinue)?$/.test(cmd)) { + } else if (/^c(ontinue)?/.test(cmd)) { if (!client) { self.printNotConnected(); return; @@ -916,7 +916,7 @@ self.resume(); }); - } else if (/^k(ill)?$/.test(cmd)) { + } else if (/^k(ill)?/.test(cmd)) { if (!client) { self.printNotConnected(); return; @@ -934,7 +934,7 @@ self.term.prompt(); } - } else if (/^n(ext)?$/.test(cmd)) { + } else if (/^next/.test(cmd) || /^n/.test(cmd)) { if (!client) { self.printNotConnected(); return; @@ -943,7 +943,7 @@ // Wait for break point. (disable raw mode?) }); - } else if (/^s(tep)?$/.test(cmd)) { + } else if (/^step/.test(cmd) || /^s/.test(cmd)) { if (!client) { self.printNotConnected(); return; @@ -952,7 +952,7 @@ // Wait for break point. (disable raw mode?) }); - } else if (/^p(rint)?$/.test(cmd)) { + } else if (/^print/.test(cmd) || /^p/.test(cmd)) { if (!client) { self.printNotConnected(); return; @@ -998,7 +998,7 @@ cb(false); } else { console.log('Please answer y or n.'); - self.restartQuestion(cb); + self.yesNoQuestion(prompt, cb); } }); }; diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/fs.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/fs.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/fs.js 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/fs.js 2011-07-20 18:43:15.000000000 +0000 @@ -542,7 +542,7 @@ isWindows = process.platform === 'win32'; if (isWindows) { - // Node doesn't support symlinks / lstat on windows. Hence realpatch is just + // Node doesn't support symlinks / lstat on windows. Hence realpath is just // the same as path.resolve that fails if the path doesn't exists. // windows version diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/http.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/http.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/http.js 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/http.js 2011-07-20 18:43:15.000000000 +0000 @@ -652,6 +652,12 @@ this._implicitHeader(); } + if (data && !this._hasBody) { + console.error('This type of response MUST NOT have a body. ' + + 'Ignoring data passed to end().'); + data = false; + } + var ret; var hot = this._headerSent === false && @@ -667,6 +673,7 @@ // res.writeHead(); // res.end(blah); // HACKY. + if (this.chunkedEncoding) { var l = Buffer.byteLength(data, encoding).toString(16); ret = this.connection.write(this._header + l + CRLF + @@ -1152,12 +1159,6 @@ this.queue.push(req); req._queue = this.queue; - /* - req.on('finish', function () { - self._cycle(); - }); - */ - this._cycle(); return req; @@ -1339,7 +1340,10 @@ debug('AGENT socket keep-alive'); } - req.detachSocket(socket); + // The socket may already be detached and destroyed by an abort call + if (socket._httpMessage) { + req.detachSocket(socket); + } assert(!socket._httpMessage); @@ -1374,8 +1378,6 @@ var first = this.queue[0]; if (!first) return; - var haveConnectingSocket = false; - // First try to find an available socket. for (var i = 0; i < this.sockets.length; i++) { var socket = this.sockets[i]; @@ -1395,13 +1397,11 @@ self._cycle(); // try to dispatch another return; } - - if (socket._httpConnecting) haveConnectingSocket = true; } // If no sockets are connecting, and we have space for another we should // be starting a new connection to handle this request. - if (!haveConnectingSocket && this.sockets.length < this.maxSockets) { + if (this.sockets.length < this.maxSockets) { this._establishNewConnection(); } diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/tls.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/tls.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/tls.js 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/tls.js 2011-07-20 18:43:15.000000000 +0000 @@ -496,7 +496,10 @@ this.encrypted = new EncryptedStream(this); process.nextTick(function() { - self.ssl.start(); + /* The Connection may be destroyed by an abort call */ + if (self.ssl) { + self.ssl.start(); + } self.cycle(); }); } diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/tty_posix.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/tty_posix.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/tty_posix.js 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/tty_posix.js 2011-07-20 18:43:15.000000000 +0000 @@ -71,14 +71,14 @@ } else { // Nobody's watching anyway self.removeListener('data', onData); - self.on('newlistener', onNewListener); + self.on('newListener', onNewListener); } } function onNewListener(event) { if (event == 'keypress') { self.on('data', onData); - self.removeListener('newlistener', onNewListener); + self.removeListener('newListener', onNewListener); } } @@ -331,7 +331,7 @@ if (typeof x !== 'number') throw new Error("Can't set cursor row without also setting it's column"); - if (typeof x === 'number') { + if (typeof y !== 'number') { this.write('\x1b[' + (x + 1) + 'G'); } else { this.write('\x1b[' + (y + 1) + ';' + (x + 1) + 'H'); diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/url.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/url.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/lib/url.js 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/lib/url.js 2011-07-20 18:43:15.000000000 +0000 @@ -44,8 +44,8 @@ .concat(unwise).concat(autoEscape), nonAuthChars = ['/', '@', '?', '#'].concat(delims), hostnameMaxLen = 255, - hostnamePartPattern = /^[a-zA-Z0-9][a-z0-9A-Z-]{0,62}$/, - hostnamePartStart = /^([a-zA-Z0-9][a-z0-9A-Z-]{0,62})(.*)$/, + hostnamePartPattern = /^[a-zA-Z0-9][a-z0-9A-Z_-]{0,62}$/, + hostnamePartStart = /^([a-zA-Z0-9][a-z0-9A-Z_-]{0,62})(.*)$/, // protocols that can allow "unsafe" and "unwise" chars. unsafeProtocol = { 'javascript': true, diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/src/node_buffer.cc nodejs-0.4.10~natty1~ppa201107202043/tmp/node/src/node_buffer.cc --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/src/node_buffer.cc 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/src/node_buffer.cc 2011-07-20 18:43:15.000000000 +0000 @@ -447,7 +447,15 @@ size_t offset = args[1]->Uint32Value(); - if (s->Length() > 0 && offset >= buffer->length_) { + int length = s->Length(); + + if (length == 0) { + constructor_template->GetFunction()->Set(chars_written_sym, + Integer::New(0)); + return scope.Close(Integer::New(0)); + } + + if (length > 0 && offset >= buffer->length_) { return ThrowException(Exception::TypeError(String::New( "Offset is out of bounds"))); } @@ -468,7 +476,13 @@ constructor_template->GetFunction()->Set(chars_written_sym, Integer::New(char_written)); - if (written > 0 && p[written-1] == '\0') written--; + if (written > 0 && p[written-1] == '\0' && char_written == length) { + uint16_t last_char; + s->Write(&last_char, length - 1, 1, String::NO_HINTS); + if (last_char != 0 || written > s->Utf8Length()) { + written--; + } + } return scope.Close(Integer::New(written)); } diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/src/node.h nodejs-0.4.10~natty1~ppa201107202043/tmp/node/src/node.h --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/src/node.h 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/src/node.h 2011-07-20 18:43:15.000000000 +0000 @@ -39,7 +39,7 @@ int Start (int argc, char *argv[]); -#define NODE_PSYMBOL(s) Persistent::New(String::NewSymbol(s)) +#define NODE_PSYMBOL(s) v8::Persistent::New(v8::String::NewSymbol(s)) /* Converts a unixtime to V8 Date */ #define NODE_UNIXTIME_V8(t) v8::Date::New(1000*static_cast(t)) diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/src/node_version.h nodejs-0.4.10~natty1~ppa201107202043/tmp/node/src/node_version.h --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/src/node_version.h 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/src/node_version.h 2011-07-20 18:43:15.000000000 +0000 @@ -27,7 +27,7 @@ #define NODE_MAJOR_VERSION 0 #define NODE_MINOR_VERSION 4 -#define NODE_PATCH_VERSION 9 +#define NODE_PATCH_VERSION 10 #define NODE_VERSION_IS_RELEASE 1 #ifndef NODE_STRINGIFY diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-assert.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-assert.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-assert.js 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-assert.js 2011-07-20 18:43:14.000000000 +0000 @@ -229,3 +229,34 @@ console.log('All OK'); assert.ok(gotError); + +// #217 +function testAssertionMessage(actual, expected) { + try { + assert.equal(actual, ''); + } catch (e) { + assert.equal(e.toString(), + ['AssertionError:', '""', '==', expected].join(' ')); + } +} +testAssertionMessage(undefined, '"undefined"'); +testAssertionMessage(null, 'null'); +testAssertionMessage(true, 'true'); +testAssertionMessage(false, 'false'); +testAssertionMessage(0, '0'); +testAssertionMessage(100, '100'); +testAssertionMessage(NaN, '"NaN"'); +testAssertionMessage(Infinity, '"Infinity"'); +testAssertionMessage(-Infinity, '"-Infinity"'); +testAssertionMessage('', '""'); +testAssertionMessage('foo', '"foo"'); +testAssertionMessage([], '[]'); +testAssertionMessage([1,2,3], '[1,2,3]'); +testAssertionMessage(/a/, '"/a/"'); +testAssertionMessage(/abc/gim, '"/abc/gim"'); +testAssertionMessage(function f() {}, '"function f() {}"'); +testAssertionMessage({}, '{}'); +testAssertionMessage({a:undefined, b:null}, '{"a":"undefined","b":null}'); +testAssertionMessage({a:NaN, b:Infinity, c:-Infinity}, + '{"a":"NaN","b":"Infinity","c":"-Infinity"}'); + diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-buffer.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-buffer.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-buffer.js 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-buffer.js 2011-07-20 18:43:15.000000000 +0000 @@ -526,3 +526,30 @@ assert.throws(function() { new Buffer('"pong"', 0, 6, 8031, '127.0.0.1') }); + +// #1210 Test UTF-8 string includes null character +var buf = new Buffer('\0'); +assert.equal(buf.length, 1); +buf = new Buffer('\0\0'); +assert.equal(buf.length, 2); + +buf = new Buffer(2); +var written = buf.write(''); // 0byte +assert.equal(written, 0); +written = buf.write('\0'); // 1byte (v8 adds null terminator) +assert.equal(written, 1); +written = buf.write('a\0'); // 1byte * 2 +assert.equal(written, 2); +written = buf.write('あ'); // 3bytes +assert.equal(written, 0); +written = buf.write('\0あ'); // 1byte + 3bytes +assert.equal(written, 1); +written = buf.write('\0\0あ'); // 1byte * 2 + 3bytes +assert.equal(written, 2); + +buf = new Buffer(10); +written = buf.write('あいう'); // 3bytes * 3 (v8 adds null terminator) +assert.equal(written, 9); +written = buf.write('あいう\0'); // 3bytes * 3 + 1byte +assert.equal(written, 10); + diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-http-1.0.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-http-1.0.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-http-1.0.js 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-http-1.0.js 2011-07-20 18:43:14.000000000 +0000 @@ -25,41 +25,153 @@ var http = require('http'); var body = 'hello world\n'; -var server_response = ''; -var client_got_eof = false; -var server = http.createServer(function(req, res) { - assert.equal('1.0', req.httpVersion); - assert.equal(1, req.httpVersionMajor); - assert.equal(0, req.httpVersionMinor); - res.writeHead(200, {'Content-Type': 'text/plain'}); - res.end(body); -}); -server.listen(common.PORT); +var common_port = common.PORT; -server.addListener('listening', function() { - var c = net.createConnection(common.PORT); +function test(handler, request_generator, response_validator) { + var port = common_port++; + var server = http.createServer(handler); + + var client_got_eof = false; + var server_response = { + data: '', + chunks: [] + }; - c.setEncoding('utf8'); - - c.addListener('connect', function() { - c.write('GET / HTTP/1.0\r\n\r\n'); - }); - - c.addListener('data', function(chunk) { - console.log(chunk); - server_response += chunk; - }); - - c.addListener('end', function() { - client_got_eof = true; - c.end(); + function cleanup() { server.close(); + response_validator(server_response, client_got_eof, true); + } + var timer = setTimeout(cleanup, 1000); + process.on('exit', cleanup); + + server.listen(port); + server.on('listening', function() { + var c = net.createConnection(port); + + c.setEncoding('utf8'); + + c.on('connect', function() { + c.write(request_generator()); + }); + + c.on('data', function(chunk) { + server_response.data += chunk; + server_response.chunks.push(chunk); + }); + + c.on('end', function() { + client_got_eof = true; + c.end(); + server.close(); + clearTimeout(timer); + process.removeListener('exit', cleanup); + response_validator(server_response, client_got_eof, false); + }); }); -}); +} + +(function() { + function handler(req, res) { + assert.equal('1.0', req.httpVersion); + assert.equal(1, req.httpVersionMajor); + assert.equal(0, req.httpVersionMinor); + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.end(body); + } + + function request_generator() { + return 'GET / HTTP/1.0\r\n\r\n'; + } + + function response_validator(server_response, client_got_eof, timed_out) { + var m = server_response.data.split('\r\n\r\n'); + assert.equal(m[1], body); + assert.equal(true, client_got_eof); + assert.equal(false, timed_out); + } + + test(handler, request_generator, response_validator); +})(); + +// +// Don't send HTTP/1.1 status lines to HTTP/1.0 clients. +// +// https://github.com/joyent/node/issues/1234 +// +(function() { + function handler(req, res) { + assert.equal('1.0', req.httpVersion); + assert.equal(1, req.httpVersionMajor); + assert.equal(0, req.httpVersionMinor); + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write("Hello, "); res._send(''); + res.write("world!"); res._send(''); + res.end(); + } + + function request_generator() { + return ("GET / HTTP/1.0\r\n" + + "User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15\r\n" + + "Host: 127.0.0.1:1337\r\n" + + "Accept: */*\r\n" + + "\r\n"); + } + + function response_validator(server_response, client_got_eof, timed_out) { + var expected_response = ("HTTP/1.1 200 OK\r\n" + + "Content-Type: text/plain\r\n" + + "Connection: close\r\n" + + "\r\n" + + "Hello, world!"); + + assert.equal(expected_response, server_response.data); + assert.equal(1, server_response.chunks.length); + assert.equal(true, client_got_eof); + assert.equal(false, timed_out); + } + + test(handler, request_generator, response_validator); +})(); + +(function() { + function handler(req, res) { + assert.equal('1.1', req.httpVersion); + assert.equal(1, req.httpVersionMajor); + assert.equal(1, req.httpVersionMinor); + res.writeHead(200, {'Content-Type': 'text/plain'}); + res.write("Hello, "); res._send(''); + res.write("world!"); res._send(''); + res.end(); + } + + function request_generator() { + return ("GET / HTTP/1.1\r\n" + + "User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15\r\n" + + "Connection: close\r\n" + + "Host: 127.0.0.1:1337\r\n" + + "Accept: */*\r\n" + + "\r\n"); + } + + function response_validator(server_response, client_got_eof, timed_out) { + var expected_response = ("HTTP/1.1 200 OK\r\n" + + "Content-Type: text/plain\r\n" + + "Connection: close\r\n" + + "Transfer-Encoding: chunked\r\n" + + "\r\n" + + "7\r\n" + + "Hello, \r\n" + + "6\r\n" + + "world!\r\n" + + "0\r\n" + + "\r\n"); + + assert.equal(expected_response, server_response.data); + assert.equal(1, server_response.chunks.length); + assert.equal(true, client_got_eof); + assert.equal(false, timed_out); + } -process.addListener('exit', function() { - var m = server_response.split('\r\n\r\n'); - assert.equal(m[1], body); - assert.equal(true, client_got_eof); -}); + test(handler, request_generator, response_validator); +})(); \ No newline at end of file diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-http-client-abort2.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-http-client-abort2.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-http-client-abort2.js 1970-01-01 00:00:00.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-http-client-abort2.js 2011-07-20 18:43:14.000000000 +0000 @@ -0,0 +1,38 @@ +// 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 common = require('../common'); +var assert = require('assert'); +var http = require('http'); + +var server = http.createServer(function(req, res) { + res.end('Hello'); +}); + +server.listen(common.PORT, function() { + var req = http.get({port: common.PORT}, function(res) { + res.on('data', function(data) { + req.abort(); + server.close(); + }); + }); +}); + diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-http-curl-chunk-problem.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-http-curl-chunk-problem.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-http-curl-chunk-problem.js 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-http-curl-chunk-problem.js 2011-07-20 18:43:14.000000000 +0000 @@ -27,12 +27,19 @@ // http://groups.google.com/group/nodejs/browse_thread/thread/f66cd3c960406919 var common = require('../common'); var assert = require('assert'); -var http = require('http'), - cp = require('child_process'); - +var http = require('http'); +var cp = require('child_process'); +var fs = require('fs'); var filename = require('path').join(common.tmpDir || '/tmp', 'big'); +// Clean up after ourselves. Leaving files around +// in the tmp/ directory may break tests that depend +// on a certain number of files being there. +process.on('exit', function() { + fs.unlink(filename); +}); + var count = 0; function maybeMakeRequest() { if (++count < 2) return; diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-http-head-response-has-no-body-end.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-http-head-response-has-no-body-end.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-http-head-response-has-no-body-end.js 1970-01-01 00:00:00.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-http-head-response-has-no-body-end.js 2011-07-20 18:43:15.000000000 +0000 @@ -0,0 +1,55 @@ +// 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 common = require('../common'); +var assert = require('assert'); + +var http = require('http'); + +// This test is to make sure that when the HTTP server +// responds to a HEAD request with data to res.end, +// it does not send any body. + +var server = http.createServer(function(req, res) { + res.writeHead(200); + res.end('FAIL'); // broken: sends FAIL from hot path. +}); +server.listen(common.PORT); + +var responseComplete = false; + +server.addListener('listening', function() { + var req = http.createClient(common.PORT).request('HEAD', '/'); + common.error('req'); + req.end(); + req.addListener('response', function(res) { + common.error('response'); + res.addListener('end', function() { + common.error('response end'); + server.close(); + responseComplete = true; + }); + }); +}); + +process.addListener('exit', function() { + assert.ok(responseComplete); +}); diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-regress-GH-877.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-regress-GH-877.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-regress-GH-877.js 1970-01-01 00:00:00.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-regress-GH-877.js 2011-07-20 18:43:15.000000000 +0000 @@ -0,0 +1,49 @@ +var common = require('../common'); +var http = require('http'); +var assert = require('assert'); + +var N = 20; +var responses = 0; +var maxQueued = 0; + +debugger; + +var agent = http.getAgent('127.0.0.1', common.PORT); +agent.maxSockets = 10; + +var server = http.createServer(function (req, res) { + res.writeHead(200); + res.end('Hello World\n'); +}); + +server.listen(common.PORT, "127.0.0.1", function() { + for (var i = 0; i < N; i++) { + var options = { + host: '127.0.0.1', + port: common.PORT, + }; + + debugger; + + var req = http.get(options, function(res) { + if (++responses == N) { + server.close(); + } + }); + + assert.equal(req.agent, agent); + + console.log('Socket: ' + agent.sockets.length + + '/' + agent.maxSockets + + ' queued: '+ agent.queue.length); + + if (maxQueued < agent.queue.length) { + maxQueued = agent.queue.length; + } + } +}); + +process.on('exit', function() { + assert.ok(responses == N); + assert.ok(maxQueued <= 10); +}); diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-tls-client-abort.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-tls-client-abort.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-tls-client-abort.js 1970-01-01 00:00:00.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-tls-client-abort.js 2011-07-20 18:43:14.000000000 +0000 @@ -0,0 +1,52 @@ +// 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. + +if (!process.versions.openssl) { + console.error("Skipping because node compiled without OpenSSL."); + process.exit(0); +} + +var common = require('../common'); +var assert = require('assert'); +var fs = require('fs'); +var tls = require('tls'); +var path = require('path'); + +(function() { + var cert = fs.readFileSync(path.join(common.fixturesDir, 'test_cert.pem')); + var key = fs.readFileSync(path.join(common.fixturesDir, 'test_key.pem')); + + var errorEmitted = false; + + process.on('exit', function() { + assert.ok(!errorEmitted); + }); + + var conn = tls.connect(common.PORT, {cert:cert, key:key}, function() { + assert.ok(false); // callback should never be executed + }); + conn.destroy(); + + conn.on('error', function() { + errorEmitted = true; + }); +})(); + diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-url.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-url.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/test/simple/test-url.js 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/test/simple/test-url.js 2011-07-20 18:43:15.000000000 +0000 @@ -274,8 +274,17 @@ 'search' : '?search=foo', 'query' : 'search=foo', 'hash' : '#bar' + }, + 'http://bucket_name.s3.amazonaws.com/image.jpg': { + protocol: 'http:', + slashes: true, + host: 'bucket_name.s3.amazonaws.com', + hostname: 'bucket_name.s3.amazonaws.com', + pathname: '/image.jpg', + href: 'http://bucket_name.s3.amazonaws.com/image.jpg' } }; + for (var u in parseTests) { var actual = url.parse(u), expected = parseTests[u]; diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/doctool/markdown.js nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/doctool/markdown.js --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/doctool/markdown.js 2011-06-29 14:16:04.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/doctool/markdown.js 2011-07-20 18:43:14.000000000 +0000 @@ -149,13 +149,13 @@ var line_no = 1; - if ( ( m = (/^(\s*\n)/)(input) ) != null ) { + if ( ( m = /^(\s*\n)/.exec(input) ) != null ) { // skip (but count) leading blank lines line_no += count_lines( m[0] ); re.lastIndex = m[0].length; } - while ( ( m = re(input) ) != null ) { + while ( ( m = re.exec(input) ) != null ) { blocks.push( mk_block( m[1], m[2], line_no ) ); line_no += count_lines( m[0] ); } @@ -259,7 +259,7 @@ var m, b = block.valueOf(); - while ( b.length && (m = re(b) ) != null) { + while ( b.length && (m = re.exec(b) ) != null) { b = b.substr( m[0].length ); cb.call(this, m); } @@ -456,7 +456,7 @@ ret = []; while ( blocks.length > 0 ) { - if ( re( blocks[0] ) ) { + if ( re.exec( blocks[0] ) ) { var b = blocks.shift(), // Now remove that indent x = b.replace( replace, ""); @@ -493,7 +493,7 @@ if ( !m ) return undefined; function make_list( m ) { - var list = bullet_list( m[2] ) + var list = bullet_list.exec( m[2] ) ? ["bulletlist"] : ["numberlist"]; Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/js2c.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/js2c.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/ansiterm.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/ansiterm.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Build.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Build.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Configure.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Configure.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Constants.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Constants.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Environment.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Environment.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Logs.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Logs.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Node.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Node.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Options.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Options.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Runner.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Runner.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Scripting.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Scripting.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/TaskGen.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/TaskGen.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Task.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Task.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/ar.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/ar.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/ccroot.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/ccroot.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/compiler_cc.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/compiler_cc.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/compiler_cxx.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/compiler_cxx.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/config_c.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/config_c.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/gcc.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/gcc.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/gxx.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/gxx.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/icc.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/icc.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/icpc.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/icpc.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/misc.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/misc.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/preproc.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/preproc.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/suncc.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/suncc.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Tools/suncxx.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Tools/suncxx.pyc differ Binary files /tmp/CaK8gkYXco/nodejs-0.4.9~natty1~ppa201106291616/tmp/node/tools/wafadmin/Utils.pyc and /tmp/XLHQ8gpQdk/nodejs-0.4.10~natty1~ppa201107202043/tmp/node/tools/wafadmin/Utils.pyc differ diff -Nru nodejs-0.4.9~natty1~ppa201106291616/tmp/node/wscript nodejs-0.4.10~natty1~ppa201107202043/tmp/node/wscript --- nodejs-0.4.9~natty1~ppa201106291616/tmp/node/wscript 2011-06-29 14:16:05.000000000 +0000 +++ nodejs-0.4.10~natty1~ppa201107202043/tmp/node/wscript 2011-07-20 18:43:15.000000000 +0000 @@ -866,7 +866,7 @@ , 'CPPFLAGS' : " ".join(program.env["CPPFLAGS"]).replace('"', '\\"') , 'LIBFLAGS' : " ".join(program.env["LIBFLAGS"]).replace('"', '\\"') , 'PREFIX' : safe_path(program.env["PREFIX"]) - , 'VERSION' : '0.4.9' # FIXME should not be hard-coded, see NODE_VERSION_STRING in src/node_version. + , 'VERSION' : '0.4.10' # FIXME should not be hard-coded, see NODE_VERSION_STRING in src/node_version. } return x