Merge remote-tracking branch 'origin/v0.8'
authorNathan Rajlich <nathan@tootallnate.net>
Sat, 13 Oct 2012 23:16:56 +0000 (16:16 -0700)
committerNathan Rajlich <nathan@tootallnate.net>
Sat, 13 Oct 2012 23:16:56 +0000 (16:16 -0700)
Conflicts:
AUTHORS
ChangeLog
deps/uv/test/runner-win.c
doc/api/process.markdown
lib/repl.js
src/node_crypto.cc
src/node_version.h

14 files changed:
1  2 
ChangeLog
deps/uv/test/runner-win.c
doc/api/crypto.markdown
doc/api/http.markdown
doc/api/https.markdown
doc/api/net.markdown
doc/api/process.markdown
doc/api/tls.markdown
doc/api/util.markdown
lib/repl.js
src/node.cc
src/node_buffer.cc
src/node_crypto.cc
test/simple/test-buffer.js

diff --cc ChangeLog
+++ b/ChangeLog
 +2012.09.17, Version 0.9.2 (Unstable)
 +
 +* http_parser: upgrade to ad3b631
 +
 +* openssl: upgrade 1.0.1c
 +
 +* darwin: use FSEvents to watch directory changes (Fedor Indutny)
 +
 +* unix: support missing API on NetBSD (Shigeki Ohtsu)
 +
 +* unix: fix EMFILE busy loop (Ben Noordhuis)
 +
 +* windows: un-break writable tty handles (Bert Belder)
 +
 +* windows: map WSAESHUTDOWN to UV_EPIPE (Bert Belder)
 +
 +* windows: make spawn with custom environment work again (Bert Belder)
 +
 +* windows: map ERROR_DIRECTORY to UV_ENOENT (Bert Belder)
 +
 +* tls, https: validate server certificate by default (Ben Noordhuis)
 +
 +* tls, https: throw exception on missing key/cert (Ben Noordhuis)
 +
 +* tls: async session storage (Fedor Indutny)
 +
 +* installer: don't install header files (Ben Noordhuis)
 +
 +* buffer: implement Buffer.prototype.toJSON() (Nathan Rajlich)
 +
 +* buffer: added support for writing NaN and Infinity (koichik)
 +
 +* http: make http.ServerResponse emit 'end' (Ben Noordhuis)
 +
 +* build: ./configure --ninja (Ben Noordhuis, Timothy J Fontaine)
 +
 +* installer: fix --without-npm (Ben Noordhuis)
 +
 +* cli: make -p equivalent to -pe (Ben Noordhuis)
 +
 +* url: Go much faster by using Url class (isaacs)
 +
 +
 +2012.08.28, Version 0.9.1 (Unstable), e6ce259d2caf338fec991c2dd447de763ce99ab7
 +
 +* buffer: Add Buffer.isEncoding(enc) to test for valid encoding values (isaacs)
 +
 +* Raise UV_ECANCELED on premature close. (Ben Noordhuis)
 +
 +* Remove c-ares from libuv, move to a top-level node dependency (Bert Belder)
 +
 +* ref/unref for all HandleWraps, timers, servers, and sockets (Timothy J Fontaine)
 +
 +* addon: remove node-waf, superseded by node-gyp (Ben Noordhuis)
 +
 +* child_process: emit error on exec failure (Ben Noordhuis)
 +
 +* cluster: do not use internal server API (Andreas Madsen)
 +
 +* constants: add O_DIRECT (Ian Babrou)
 +
 +* crypto: add sync interface to crypto.pbkdf2() (Ben Noordhuis)
 +
 +* darwin: emulate fdatasync() (Fedor Indutny)
 +
 +* dgram: make .bind() always asynchronous (Ben Noordhuis)
 +
 +* events: Make emitter.listeners() side-effect free (isaacs, Joe Andaverde)
 +
 +* fs: Throw early on invalid encoding args (isaacs)
 +
 +* fs: fix naming of truncate/ftruncate functions (isaacs)
 +
 +* http: bubble up parser errors to ClientRequest (Brian White)
 +
 +* linux: improve cpuinfo parser on ARM and MIPS (Ben Noordhuis)
 +
 +* net: add support for IPv6 addresses ending in :: (Josh Erickson)
 +
 +* net: support Server.listen(Pipe) (Andreas Madsen)
 +
 +* node: don't scan add-on for "init" symbol (Ben Noordhuis)
 +
 +* remove process.uvCounters() (Ben Noordhuis)
 +
 +* repl: console writes to repl rather than process stdio (Nathan Rajlich)
 +
 +* timers: implement setImmediate (Timothy J Fontaine)
 +
 +* tls: fix segfault in pummel/test-tls-ci-reneg-attack (Ben Noordhuis)
 +
 +* tools: Move gyp addon tools to node-gyp (Nathan Rajlich)
 +
 +* unix: preliminary signal handler support (Ben Noordhuis)
 +
 +* unix: remove dependency on ev_child (Ben Noordhuis)
 +
 +* unix: work around darwin bug, don't poll() on pipe (Fedor Indutny)
 +
 +* util: Formally deprecate util.pump() (Ben Noordhuis)
 +
 +* windows: make active and closing handle state independent (Bert Belder)
 +
 +* windows: report spawn errors to the exit callback (Bert Belder)
 +
 +* windows: signal handling support with uv_signal_t (Bert Belder)
 +
 +
 +2012.07.20, Version 0.9.0 (Unstable), f9b237f478c372fd55e4590d7399dcd8f25f3603
 +
 +* punycode: update to v1.1.1 (Mathias Bynens)
 +
 +* c-ares: upgrade to 1.9.0 (Saúl Ibarra Corretgé)
 +
 +* dns: ignore rogue DNS servers reported by windows (Saúl Ibarra Corretgé)
 +
 +* unix: speed up uv_async_send() (Ben Noordhuis)
 +
 +* darwin: get cpu model correctly on mac (Xidorn Quan)
 +
 +* nextTick: Handle tick callbacks before any other I/O (isaacs)
 +
 +* Enable color customization of `util.inspect` (Pavel Lang)
 +
 +* tls: Speed and memory improvements (Fedor Indutny)
 +
 +* readline: Use one history item for reentered line (Vladimir Beloborodov)
 +
 +* Fix #3521 Make process.env more like a regular Object (isaacs)
 +
 +
+ 2012.10.12, Version 0.8.12 (Stable)
+ * npm: Upgrade to 1.1.63
+ * crypto: Reduce stability index to 2-Unstable (isaacs)
+ * windows: fix handle leak in uv_fs_utime (Bert Belder)
+ * windows: fix application crashed popup in debug version (Bert Belder)
+ * buffer: report proper retained size in profiler (Ben Noordhuis)
+ * buffer: fix byteLength with UTF-16LE (koichik)
+ * repl: make "end of input" JSON.parse() errors throw in the REPL (Nathan Rajlich)
+ * repl: make invalid RegExp modifiers throw in the REPL (Nathan Rajlich)
+ * http: handle multiple Proxy-Authenticate values (Willi Eggeling)
  2012.09.27, Version 0.8.11 (Stable), e1f39468fa580c1e4cb15fac621f87944ee625dc
  
  * fs: Fix stat() size reporting for large files (Ben Noordhuis)
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -489,14 -417,15 +489,15 @@@ primary use is for measuring performanc
  You may pass in the result of a previous call to `process.hrtime()` to get
  a diff reading, useful for benchmarks and measuring intervals:
  
-     var t = process.hrtime();
+     var time = process.hrtime();
      // [ 1800216, 927643717 ]
  
 -    setTimeout(function () {
 +    setTimeout(function() {
-       t = process.hrtime(t);
+       var diff = process.hrtime(time);
        // [ 1, 6962306 ]
  
-       console.log('benchmark took %d seconds and %d nanoseconds', t[0], t[1]);
+       console.log('benchmark took %d seconds and %d nanoseconds',
+                   diff[0], diff[1]);
        // benchmark took 1 seconds and 6962306 nanoseconds
      }, 1000);
  
Simple merge
@@@ -90,30 -86,21 +90,43 @@@ Example of inspecting all properties o
  
      var util = require('util');
  
 -    console.log(util.inspect(util, true, null));
 +    console.log(util.inspect(util, { showHidden: true, depth: null }));
 +
 +### Customizing `util.inspect` colors
 +
 +Color output (if enabled) of `util.inspect` is customizable globally
 +via `util.inspect.styles` and `util.inspect.colors` objects.
 +
 +`util.inspect.styles` is a map assigning each style a color
 +from `util.inspect.colors`.
 +Highlighted styles and their default values are:
 + * `number` (yellow)
 + * `boolean` (yellow)
 + * `string` (green)
 + * `date` (magenta)
 + * `regexp` (red)
 + * `null` (bold)
 + * `undefined` (grey)
 + * `special` - only function at this time (cyan)
 + * `name` (intentionally no styling)
 +
 +Predefined color codes are: `white`, `grey`, `black`, `blue`, `cyan`, 
 +`green`, `magenta`, `red` and `yellow`.
 +There are also `bold`, `italic`, `underline` and `inverse` codes.
  
+ Objects also may define their own `inspect(depth)` function which `util.inspect()`
+ will invoke and use the result of when inspecting the object:
+     var util = require('util');
+     var obj = { name: 'nate' };
+     obj.inspect = function(depth) {
+       return '{' + this.name + '}';
+     };
+     util.inspect(obj);
+       // "{nate}"
  
  ## util.isArray(object)
  
diff --cc lib/repl.js
@@@ -338,14 -325,12 +325,15 @@@ exports.start = function(prompt, source
  
  
  REPLServer.prototype.createContext = function() {
-   if (!this.useGlobal) {
-     var context = vm.createContext();
+   var context;
+   if (this.useGlobal) {
+     context = global;
+   } else {
+     context = vm.createContext();
      for (var i in global) context[i] = global[i];
-   } else {
-     var context = global;
 +    context.console = new Console(this.outputStream);
 +    context.global = context;
 +    context.global.global = context;
    }
  
    context.module = module;
diff --cc src/node.cc
@@@ -1065,10 -1093,12 +1065,14 @@@ enum encoding ParseEncoding(Handle<Valu
      return UCS2;
    } else if (strcasecmp(*encoding, "ucs-2") == 0) {
      return UCS2;
+   } else if (strcasecmp(*encoding, "utf16le") == 0) {
+     return UCS2;
+   } else if (strcasecmp(*encoding, "utf-16le") == 0) {
+     return UCS2;
    } else if (strcasecmp(*encoding, "binary") == 0) {
      return BINARY;
 +  } else if (strcasecmp(*encoding, "buffer") == 0) {
 +    return BUFFER;
    } else if (strcasecmp(*encoding, "hex") == 0) {
      return HEX;
    } else if (strcasecmp(*encoding, "raw") == 0) {
Simple merge
@@@ -4700,10 -4506,8 +4698,10 @@@ void InitCrypto(Handle<Object> target) 
    Verify::Initialize(target);
  
    NODE_SET_METHOD(target, "PBKDF2", PBKDF2);
-   NODE_SET_METHOD(target, "randomBytes", RandomBytes<RAND_bytes>);
-   NODE_SET_METHOD(target, "pseudoRandomBytes", RandomBytes<RAND_pseudo_bytes>);
+   NODE_SET_METHOD(target, "randomBytes", RandomBytes<false>);
+   NODE_SET_METHOD(target, "pseudoRandomBytes", RandomBytes<true>);
 +  NODE_SET_METHOD(target, "getCiphers", GetCiphers);
 +  NODE_SET_METHOD(target, "getHashes", GetHashes);
  
    subject_symbol    = NODE_PSYMBOL("subject");
    issuer_symbol     = NODE_PSYMBOL("issuer");
Simple merge