496 Commits

Author SHA1 Message Date
Ryan Dahl
f88d39de74 getmem() for solaris 2010-01-20 11:19:17 -08:00
Felix Geisendörfer
b57d7d9b4e Treat 'typeof Error' promise errors properly
Instead of JSON encoding them, just rethrow promise errors since that
produces much cleaner error messages.
2010-01-20 09:30:56 -08:00
Felix Geisendörfer
bfd3144861 Make unhandled Promise errors throw an exception
A promise will throw an exception unless an error handler is attached in the
same "tick" that the error is emitted. This is to avoid silent promise
failures.
2010-01-19 14:29:57 -08:00
Felix Geisendörfer
f64371fccb Support late callback binding for Promises
Listeners attached with addCallback / addErrback will now be executed
right away if the promise has already fired.
2010-01-19 14:29:49 -08:00
Felix Geisendörfer
d9dc2e0709 Fixed misnamed Promise property 2010-01-19 14:29:44 -08:00
Felix Geisendörfer
f2274840a9 Removed Promise.cancel()
The current implementation was bad and nobody is using it. Has a chance
of getting re-implemented by somebody who has an actual need for it.
2010-01-19 14:29:38 -08:00
Micheil Smith
6e3d12f617 Allow optional params to setTimeout, setInterval 2010-01-18 10:41:03 -08:00
Ryan Dahl
8abeffa9ea Add process.nextTick()
This is a replacement for the common hack:

  setTimeout(cb, 0);

It's much more efficient.
2010-01-18 10:32:36 -08:00
Ryan Dahl
aeb7d6d168 Add process.IdleWatcher
With priorities. Will be used for process.nextLoop().
2010-01-18 10:12:04 -08:00
Joseph Pecoraro
fd183bdb07 Fixed typo in comments. 2010-01-18 09:11:02 -08:00
Ryan Dahl
70293a43c9 API: Move Promise and EventEmitter into 'events' module 2010-01-15 12:46:08 -08:00
Ryan Dahl
8e6dd52683 Hack to display more useful SyntaxError exceptions.
For some reason v8 doesn't include the frame with the syntax error in the
stack trace - so have to special case it.
2010-01-15 10:45:04 -08:00
Ryan Dahl
1b2c57907d Lazy initialize symbols for HTTP. 2010-01-10 22:27:48 -08:00
Ben Williamson
bba23c0998 Fix issue #44, eof on connect to http.
eof_symbol wasn't initialized until the first packet arrived.
In this case no packets arrive before the client closes the socket - eof.
2010-01-10 22:22:21 -08:00
Ryan Dahl
c9e21435c0 Upgrade http-parser 2010-01-09 01:52:49 -08:00
isaacs
b21056d63a Rename path.filename() to path.basename()
Also make normalizeArray a bit more proper wrt handling dots when keepBlanks
is enabled. Fix indentation.
2010-01-09 00:26:49 -08:00
Benjamin Thomas
73266cb486 Added extname function to path module that returns the extension. 2010-01-08 22:28:27 -08:00
Ryan Dahl
53413598b6 Fix another problem with the EIO interface
Should call eio_poll() when given a done_poll signal as well.

Bug report and test case by Kris Zyp <kriszyp@gmail.com>
2010-01-08 22:20:23 -08:00
Vanilla Hsu
d22952bfe0 getmem for freebsd 2010-01-06 23:37:27 -08:00
Ryan Dahl
b1e126f415 libeio bugfix part 4
Oops. Last commit broke a few tests. Should work now!
2010-01-06 01:53:34 -08:00
Ryan Dahl
f80cc69c23 libeio bugfix part 3
Finally (hopefully) fix the issue that Felix reported. It's only appearing
on macintosh (test/mjsunit/test-eio-race3.js)

The trick/hack is to call eio_poll() again before reentering the event loop.

Additionally this commit implements a more complex method of calling
eio_poll(), occasionally dropping to an ev_idle watcher.

See also:
3f39772834
http://lists.schmorp.de/pipermail/libev/2010q1/000855.html
http://groups.google.com/group/nodejs/browse_thread/thread/9f8db11c792a68bb/a89705f68971f53c
2010-01-06 01:27:31 -08:00
Ryan Dahl
3f39772834 libeio bugfix part 2
Reverts the change to deps/libeio/eio.c added in
04dd2d51be
It wasn't a bug, I was just using eio incorrectly.

See http://lists.schmorp.de/pipermail/libev/2010q1/000855.html
2010-01-05 21:09:02 -08:00
Charles Lehner
caf22c8e0a Fixed clearTimeout to check if timer is a Timer 2010-01-04 22:18:06 -08:00
isaacs
7342fecaec Improve path module slightly:
1. Provide a switch to tell it to not remove empty path parts when
   normalizing.
2. Correct the handling of some edge cases when you have lots of dots and
   empty bits, such as paths like "././/./..//." and so on.
2010-01-04 11:36:52 -08:00
Ryan Dahl
9553503be5 Bugfix: Don't segfault on unknown http method
Reported by Chakrit Wichian.
2009-12-30 22:16:16 -08:00
Ryan Dahl
359d0170ab Better error message on bad ARGV[1] 2009-12-29 20:31:56 +01:00
Ryan Dahl
53a841d96a Simplify exception reporting 2009-12-29 20:20:51 +01:00
Ryan Dahl
0d7e88a429 Bugfix: libeio race condition
Process at most 10 pending responses from the thread pool in one go.
10 was chosen arbitrarily.
Test and report by Felix Geisendörfer <felix@debuggable.com>
2009-12-29 19:11:04 +01:00
Ryan Dahl
64fe9fb85d fix whitespace 2009-12-22 23:11:54 +01:00
Jonas Pfenniger
e6c5ac4f73 posix.cat not using call() correctly
'this' will point to "arguments" and the arguments of the callback itself
will not be set.
2009-12-22 18:01:13 +01:00
Ryan Dahl
120492e5c2 export path.normalizeArray for the uri module 2009-12-22 17:50:23 +01:00
isaacs
4dcdfaf929 Fix require("../blah") issues
Added some more tests, and refactored the uri and path modules to use the
same normalization logic, so that nothing is relying on flaky regexps.

http://groups.google.com/group/nodejs/browse_thread/thread/34779f8c10098c5e
http://groups.google.com/group/nodejs/browse_thread/thread/1aa0146b92582679#msg_9822c03998cb4064
2009-12-22 17:22:12 +01:00
isaacs
0ea2f9e04b Remove two debug statements that are a bit much. 2009-12-19 00:14:50 +01:00
isaacs
6301f18e62 Bugfix: child modules get wrong id with "index.js"
Fix for bug brought up by nua in irc, where child modules get the wrong id
when loaded from a parent module with an id of index.js or index.addon.
2009-12-19 00:14:10 +01:00
isaacs
c2454a0d06 Inadvertently introduced a bug in how single-dot path parts are handled. 2009-12-19 00:13:20 +01:00
isaacs
3b8e47755a Bugfix: require("../foo")
If you have a circular require chain in which one or more of the modules are
referenced with a ".." relative path, like require("../foo"), node blows up.
This patch un-blows-up that case.  There still seem to be issues with
circularity, but this solves one of the more obnoxious ones.
2009-12-19 00:12:38 +01:00
Ryan Dahl
bfa36136da require() should throw error if module does.
Reported by Kris Zyp
http://groups.google.com/group/nodejs/browse_thread/thread/1feab0309bd5402b
2009-12-18 23:58:04 +01:00
visionmedia
f3b0cefd0b Replaced several Array.prototype.slice.call() calls with Array.prototype.unshift.call()
Acts in pretty much the same manor just a bit more elegant
2009-12-18 18:42:20 +01:00
Joshaven Potter
7873639f55 syntax fixes in src/node.js 2009-12-18 16:21:21 +01:00
Ryan Dahl
4ddfd8aa42 Fix posix.statSync() 2009-12-09 10:32:19 +01:00
Ryan Dahl
45a806a066 Statically define symbols
~7% improvement in hello world HTTP response bench.
2009-12-09 09:12:01 +01:00
Ryan Dahl
a30ac92b0c Remove accidentally committed files. 2009-12-09 07:44:44 +01:00
Ryan Dahl
dbb1a267d7 Fix ARGV[0] weirdness 2009-12-08 06:54:26 +01:00
Johan Dahlberg
9599d2d0e9 Added superCtor to ctor.super_ instead superCtor.prototype.
This way let's us do deep comparison between object instances.

I have a suggestion for the sys.inherits function. Today it's impossible to
deep comparison between instance and class.

Take this snippet for example:

function ClassA() {}
function ClassB() {}

sys.inherits(ClassB, ClassA);

var instance = new ClassB();

The instance variable inherits from ClassA but we can't check it (which is
useful sometimes). You can compare the instance against ClassB
(instance.constructor == ClassB) but we can't compare it deeper
(instance.constructor.super == ClassA). The committed change simply assign
super to the super constructor instead of the super prototype.

I can't see any problem with this fix. You can still get the super constructor
by calling super_.prototype.
2009-12-08 06:19:12 +01:00
Ryan Dahl
71680f512c Give default encodings for posix.read and posix.write 2009-12-07 18:13:45 +01:00
Ryan Dahl
c1baa70fe5 Attach/Detach -> Ref/Unref 2009-12-07 17:55:19 +01:00
Ryan Dahl
ee8530e0ee offload method look up to http-parser 2009-12-07 15:21:12 +01:00
Ryan Dahl
c3e0a4bc7c Upgrade http-parser; supports webdav extension methods now 2009-12-06 23:58:16 +01:00
Felix Geisendörfer
876b6d2183 Make process.mixin copy over undefined values
This is not a bug in process.mixin, but I think it is undesirable
behavior. Right now process.mixin will not copy over keys with undefined
values. To me that is an unexpected filtering that should not happen
unless specifically called for.
2009-12-06 19:21:20 +01:00
Felix Geisendörfer
f080de5380 Two bug fixes for process.mixin
Bug #1 occurred when trying to use process.mixin on a function and
produced a fatal exception.

Bug #2 occurred when trying to do a deep merge with an object containing
one or more objects with a nodeType property. In those cases the deep
copy for this part of the object was not performed and a shallow one was
performed instead.

Both of these bugs were artifacts of the jQuery.extend port.
2009-12-06 19:21:06 +01:00