- Aug 27, 2013
-
-
Ben Noordhuis authored
UV_HANDLE_FIELDS is a libuv implementation detail. The ares_task_t struct only uses the uv_loop_t* field so be explicit about that.
-
Ben Noordhuis authored
-
Trevor Norris authored
Length arguments passed to SlowBuffer were coerced to Int32, not Uint32, so passing a negative number would throw the following: node: ../src/smalloc.cc:244: void node::smalloc::Alloc(): Assertion `length <= kMaxLength' failed. Aborted (core dumped) That has been fixed by coercing to Uint32 and comparing the value against kMaxLength.
-
Trevor Norris authored
Due to a lot of the util.is* checks there was much unnecessary overhead for the most common use case of Buffer. Which is creating a new Buffer instance for data from incoming I/O. NativeBuffer is a simple way to bypass all the unneeded checks and simply hand back a Buffer instance while setting the length.
-
- Aug 26, 2013
-
-
Ben Noordhuis authored
src/node_os.cc doesn't export anything that's used elsewhere. Remove it.
-
Bert Belder authored
On windows process exit codes can be greater than INT32_MAX. This used to be not much of a problem - greater values would just come out negative. However since ca9eb718 a negative result value indicates that uv_spawn() has failed, so this is no longer acceptable.
-
- Aug 25, 2013
-
-
Bert Belder authored
-
- Aug 24, 2013
-
-
Trevor Norris authored
Instead of doing all the domain handling in core, allow the domain to set an error handler that'll take care of it all. This way the domain error handling can be abstracted enough for any user to use it.
-
Bert Belder authored
The `exit_code` argument for the `ProcessWrap::OnExit` callback changed from int to int64_t.
-
Bert Belder authored
-
- Aug 23, 2013
-
-
Ben Noordhuis authored
-
Ben Noordhuis authored
-
Ben Noordhuis authored
Commit 3a2f273b got the source and the target wrong when copying over the data. Fix that and add a regression test. Fixes #6111.
-
Timothy J Fontaine authored
Objects with custom inpsect functions should get the options that were passed to `util.inspect()` fixes #5822 fixes #6098
-
- Aug 22, 2013
-
-
Trevor Norris authored
All the Buffer#{ascii,hex,etc.}Slice() methods are intentionally strict to alert if a Buffer instance was attempting to be accessed out of bounds. Buffer#toString() is the more user friendly way of accessing the data, and will coerce values to their min/max on overflow. -
Timothy J Fontaine authored
-
isaacs authored
This is an important part of the repl use-case. TODO: The arg parsing in vm.runIn*Context() is rather wonky. It would be good to move more of that into the Script class, and/or an options object.
-
Domenic Denicola authored
As documented in #3042 and in [1], the existing vm implementation has many problems. All of these are solved by @brianmcd's [contextify][2] package. This commit uses contextify as a conceptual base and its code core to overhaul the vm module and fix its many edge cases and caveats. Functionally, this fixes #3042. In particular: - A context is now indistinguishable from the object it is based on (the "sandbox"). A context is simply a sandbox that has been marked by the vm module, via `vm.createContext`, with special internal information that allows scripts to be run inside of it. - Consequently, items added to the context from anywhere are immediately visible to all code that can access that context, both inside and outside the virtual machine. This commit also smooths over the API very slightly: - Parameter defaults are now uniformly triggered via `undefined`, per ES6 semantics and previous discussion at [3]. - Several undocumented and problematic features have been removed, e.g. the conflation of `vm.Script` with `vm` itself, and the fact that `Script` instances also had all static `vm` methods. The API is now exactly as documented (although arguably the existence of the `vm.Script` export is not yet documented, just the `Script` class itself). In terms of implementation, this replaces node_script.cc with node_contextify.cc, which is derived originally from [4] (see [5]) but has since undergone extensive modifications and iterations to expose the most useful C++ API and use the coding conventions and utilities of Node core. The bindings exposed by `process.binding('contextify')` (node_contextify.cc) replace those formerly exposed by `process.binding('evals')` (node_script.cc). They are: - ContextifyScript(code, [filename]), with methods: - runInThisContext() - runInContext(sandbox, [timeout]) - makeContext(sandbox) From this, the vm.js file builds the entire documented vm module API. node.js and module.js were modified to use this new native binding, or the vm module itself where possible. This introduces an extra line or two into the stack traces of module compilation (and thus into most stack traces), explaining the changed tests. The tests were also updated slightly, with all vm-related simple tests consolidated as test/simple/test-vm-* (some of them were formerly test/simple/test-script-*). At the same time they switched from `common.debug` to `console.error` and were updated to use `assert.throws` instead of rolling their own error-testing methods. New tests were also added, of course, demonstrating the new capabilities and fixes. [1]: http://nodejs.org/docs/v0.10.16/api/vm.html#vm_caveats [2]: https://github.com/brianmcd/contextify [3]: https://github.com/joyent/node/issues/5323#issuecomment-20250726 [4]: https://github.com/kkoopa/contextify/blob/bf123f3ef960f0943d1e30bda02e3163a004e964/src/contextify.cc [5]: https://gist.github.com/domenic/6068120 -
Timothy J Fontaine authored
-
Timothy J Fontaine authored
-
Timothy J Fontaine authored
* uv: Upgrade to v0.11.8 * v8: upgrade v8 to 3.20.14.1 * build: disable SSLv2 by default (Ben Noordhuis) * build: don't auto-destroy existing configuration (Ben Noordhuis) * crypto: add TLS 1.1 and 1.2 to secureProtocol list (Matthias Bartelmeß) * crypto: fix memory leak in randomBytes() error path (Ben Noordhuis) * dgram: don't call into js when send cb is omitted (Ben Noordhuis) * dgram: fix regression in string argument handling (Ben Noordhuis) * domains: performance improvements (Trevor Norris) * events: EventEmitter = require('events') (Jake Verbaten) * http: Add write()/end() callbacks (isaacs) * http: Consistent 'finish' event semantics (isaacs) * http: Prefer 'binary' over 'ascii' (isaacs) * http: Support legacy agent.addRequest API (isaacs) * http: Write hex/base64 chunks properly (isaacs) * http: add agent.maxFreeSockets option (isaacs) * http: provide access to raw headers/trailers (isaacs) * http: removed headers stay removed (James Halliday) * http,timers: improve callback performance (Ben Noordhuis) * net: family option in net.connect (Vsevolod Strukchinsky) * readline: pause stdin before turning off terminal raw mode (Daniel Chatfield) * smalloc: allow different external array types (Trevor Norris) * smalloc: expose ExternalArraySize (Trevor Norris) * stream: Short-circuit buffer pushes when flowing (isaacs) * tls: handle errors on socket before releasing it (Fedor Indutny) * util: fix isPrimitive check (Trevor Norris) * util: isObject should always return boolean (Trevor Norris) -
Timothy J Fontaine authored
-
Timothy J Fontaine authored
-
isaacs authored
Conflicts: lib/tls.js
-
- Aug 21, 2013
-
-
Fedor Indutny authored
-
Ben Noordhuis authored
Upgrade to joyent/http-parser@303c4e4. Changes: * Do not accept PUN/GEM methods as PUT/GET. * Further request method check strengthening.
-
Fedor Indutny authored
`maybeInitFinished()` can emit the 'secure' event which in turn destroys the connection in case of authentication failure and sets `this.pair.ssl` to `null`. If such condition appeared after non-empty read - loop will continue and `clearOut` will be called on `null` object instead of `crypto::Connection` instance. Resulting in the following assertion: ERROR: Error: Hostname/IP doesn't match certificate's altnames Assertion failed: handle->InternalFieldCount() > 0 fix #5756 -
Trevor Norris authored
Small syntax fixes of variable renaming and argument alignment.
-
Trevor Norris authored
The C++ API has been changed so the passed length is the byte size of the data, not the length of the array. This was done so users need to explicitly define how much memory they want allocated.
-
Trevor Norris authored
Useful to correctly determine the byte size of the external memory that needs to be allocated for an external array.
-
Trevor Norris authored
Fix small bug where isObject would return the original object instead of true.
-
Vsevolod Strukchinsky authored
`dns.lookup` defaults to selecting IPv4 record even if IPv6 is available for the desired zone. Generally, this approach works, but if IPv4 address is unavailable - there'll be no other way to opt-out and connect using IPv6 address than calling `dns.lookup` and passing it to `.connect()` directly. This commit adds `family` option to `net.connect` method to figure out this issue.
-
- Aug 20, 2013
-
-
Gil Pedersen authored
-
isaacs authored
a/an usage. Thanks @KenanSulayman
-
isaacs authored
It only fails once in about 1000 times, but that's too many. It's timing dependent, and the main behavior is covered by the other assertions in the test anyway.
-
Raynos authored
This change is 100% backwards compatible. This change will make using `EventEmitter` slightly simpler / nicer and adheres to the best practice set forth by substack. ```js var EventEmitter = require("events") var emitter = new EventEmitter() ``` The only difference is that we now have to set `EventEmitter` as a property of `EventEmitter` for backwards compatibility like we do with [`Stream`][1] We have also set the `usingDomains` property on the `EventEmitter` constructor itself because that aligns with it's current usage of `require("events").usingDomains = true` There are other internals that would benefit from this change as well like `StringDecoder` -
Matthew Aynalem authored
explictly => explicitly accesss => access througput => throughput epxression => expression communiction => communication becuase => because repersent => represent condonitions => conditions decompresion => decompression intentially => intentionally eventes => events listning => listening resicved => received becuase => because fundimental => fundamental colapse => collapse privlages => privileges sufficently => sufficiently hapepns => happens expliclitly => explicitly thier => their shold => should
-
Duan Yao authored
Also, describe more details of bind().
-
ChrisWren authored
-
James Halliday authored
This allows automatically-inserted headers to be removed permanently by calling OutgoingMessage.removeHeader() on them, as if they were normal headers.
-