diff --git a/ChangeLog b/ChangeLog index e1f8c4c3c8..867d8cd04e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,43 @@ +2011.05.20, Version 0.4.8 (stable) + +* #974 Properly report traceless errors (isaacs) + +* #983 Better JSON.parse error detection in REPL (isaacs) + +* #836 Agent socket errors bubble up to req only if req exists + +* #1041 Fix event listener leak check timing (koichik) + +* #1038 Fix dns.resolve() with 'PTR' throws Error: Unknown type "PTR" + (koichik) + +* #1073 Share SSL context between server connections (Fedor Indutny) + +* Disable compression with OpenSSL. Improves memory perf. + +* Implement os.totalmem() and os.freemem() for SunOS (Alexandre Marangone) + +* Fix a special characters in URL regression (isaacs) + +* Fix idle timeouts in HTTPS (Felix Geisendörfer) + +* SlowBuffer.write() with 'ucs2' throws ReferenceError. (koichik) + +* http.ServerRequest 'close' sometimes gets an error argument + (Felix Geisendörfer) + +* Doc improvements + +* cleartextstream.destroy() should close(2) the socket. Previously was being + mapped to a shutdown(2) syscall. + +* No longer compile out asserts and debug statements in normal build. + +* Debugger improvements. + +* Upgrade V8 to 3.1.8.16. + + 2011.04.22, Version 0.4.7 (stable) * Don't emit error on ECONNRESET from read() #670 diff --git a/deps/v8/src/objects.h b/deps/v8/src/objects.h index de15a7398d..406895a4e6 100644 --- a/deps/v8/src/objects.h +++ b/deps/v8/src/objects.h @@ -585,6 +585,7 @@ enum CompareResult { class StringStream; class ObjectVisitor; +class Failure; struct ValueInfo : public Malloced { ValueInfo() : type(FIRST_TYPE), ptr(NULL), str(NULL), number(0) { } @@ -611,6 +612,10 @@ class MaybeObject BASE_EMBEDDED { *obj = reinterpret_cast(this); return true; } + inline Failure* ToFailureUnchecked() { + ASSERT(IsFailure()); + return reinterpret_cast(this); + } inline Object* ToObjectUnchecked() { ASSERT(!IsFailure()); return reinterpret_cast(this); diff --git a/deps/v8/src/top.cc b/deps/v8/src/top.cc index 78db26a509..d6fcf1009b 100644 --- a/deps/v8/src/top.cc +++ b/deps/v8/src/top.cc @@ -1,4 +1,4 @@ -// Copyright 2006-2008 the V8 project authors. All rights reserved. +// Copyright 2011 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: @@ -740,6 +740,7 @@ Failure* Top::ReThrow(MaybeObject* exception, MessageLocation* location) { // Set the exception being re-thrown. set_pending_exception(exception); + if (exception->IsFailure()) return exception->ToFailureUnchecked(); return Failure::Exception(); } diff --git a/deps/v8/src/version.cc b/deps/v8/src/version.cc index 0673517eb0..ccfbd18c5f 100644 --- a/deps/v8/src/version.cc +++ b/deps/v8/src/version.cc @@ -35,7 +35,7 @@ #define MAJOR_VERSION 3 #define MINOR_VERSION 1 #define BUILD_NUMBER 8 -#define PATCH_LEVEL 14 +#define PATCH_LEVEL 16 #define CANDIDATE_VERSION false // Define SONAME to have the SCons build the put a specific SONAME into the diff --git a/deps/v8/src/x64/assembler-x64.cc b/deps/v8/src/x64/assembler-x64.cc index 41111a7780..35c05b3ac3 100644 --- a/deps/v8/src/x64/assembler-x64.cc +++ b/deps/v8/src/x64/assembler-x64.cc @@ -1379,7 +1379,7 @@ void Assembler::jmp(NearLabel* L) { EnsureSpace ensure_space(this); last_pc_ = pc_; if (L->is_bound()) { - const int short_size = sizeof(int8_t); + const int short_size = 2; int offs = L->pos() - pc_offset(); ASSERT(offs <= 0); ASSERT(is_int8(offs - short_size)); diff --git a/doc/api/net.markdown b/doc/api/net.markdown index b25e2e684f..638a593c8c 100644 --- a/doc/api/net.markdown +++ b/doc/api/net.markdown @@ -104,12 +104,13 @@ when the server has been bound. Start a server listening for connections on the given file descriptor. This file descriptor must have already had the `bind(2)` and `listen(2)` system -calls invoked on it. +calls invoked on it. Additionally, it must be set non-blocking; try +`fcntl(fd, F_SETFL, O_NONBLOCK)`. #### server.pause(msecs) -Stop accepting connections for the given number of milliseconds (default is -one second). This could be useful for throttling new connections against +Stop accepting connections for the given number of milliseconds (default is +one second). This could be useful for throttling new connections against DoS attacks or other oversubscription. #### server.close() diff --git a/doc/index.html b/doc/index.html index 758f02f8e5..c4dc5f16ac 100644 --- a/doc/index.html +++ b/doc/index.html @@ -26,7 +26,7 @@
  • Download
  • ChangeLog
  • About
  • -
  • v0.4.7 docs
  • +
  • v0.4.8 docs

  • Wiki
  • Blog
  • @@ -108,9 +108,9 @@ server.listen(1337, "127.0.0.1");

    - 2011.04.22 - node-v0.4.7.tar.gz - (Documentation) + 2011.05.20 + node-v0.4.8.tar.gz + (Documentation)

    Historical: versions, docs

    diff --git a/lib/http.js b/lib/http.js index acb8898215..c18a8683df 100644 --- a/lib/http.js +++ b/lib/http.js @@ -1089,7 +1089,11 @@ function connectionListener(socket) { // When we're finished writing the response, check if this is the last // respose, if so destroy the socket. res.on('finish', function() { - assert(incoming[0] === req); + // Usually the first incoming element should be our request. it may + // be that in the case abortIncoming() was called that the incoming + // array will be empty. + assert(incoming.length == 0 || incoming[0] === req); + incoming.shift(); res.detachSocket(socket); diff --git a/wscript b/wscript index 32b4cc1a40..bc77a3bafe 100644 --- a/wscript +++ b/wscript @@ -875,7 +875,7 @@ def build(bld): , 'CPPFLAGS' : " ".join(program.env["CPPFLAGS"]).replace('"', '\\"') , 'LIBFLAGS' : " ".join(program.env["LIBFLAGS"]).replace('"', '\\"') , 'PREFIX' : safe_path(program.env["PREFIX"]) - , 'VERSION' : '0.4.7' # FIXME should not be hard-coded, see NODE_VERSION_STRING in src/node_version. + , 'VERSION' : '0.4.8' # FIXME should not be hard-coded, see NODE_VERSION_STRING in src/node_version. } return x