Ryan Dahl
faefb3f5a4
test-http-eof-on-connect missing require('./common')
2010-01-20 10:06:44 -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
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
Ryan Dahl
70293a43c9
API: Move Promise and EventEmitter into 'events' module
2010-01-15 12:46:08 -08:00
Ben Williamson
a3631a383b
Added regression test for issue #44
2010-01-11 16:43:23 -08:00
isaacs
988174a629
Add tests for path module.
2010-01-09 00:31:51 -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
Benjamin Thomas
947c577c0d
Fix bug in the url module's url_parse method if 'parseQueryString' is true
2010-01-06 02:12:11 -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
Felix Geisendörfer
7d947f8723
Clean up multipart test case
2010-01-05 20:15:03 -08:00
Felix Geisendörfer
f86c1783b7
Handle bad requests in simplified parser API
2010-01-05 22:37:51 +01:00
Felix Geisendörfer
aa73ed973c
Added test case for the simple multipart API
...
So far this didn't have any test coverage.
2010-01-05 22:28:03 +01:00
Felix Geisendörfer
d9a81374b2
Throw exception for invalid multipart streams
...
When using the multipart parser with an regular http request, the
parser did not complain and just never finished.
2010-01-05 22:23:56 +01:00
Ryan Dahl
04dd2d51be
libeio bugfix: want_poll should be called if breaking on maxreq
...
Reported by shansen and hassox
http://github.com/ry/node/issues#issue/38
Will send upstream.
2010-01-04 23:26:58 -08:00
isaacs
2b3d9e4ad0
Use "url" module instead of "uri" module in http.js.
...
Deprecate the URI module and remove tests for it.
- Rename "uri" to "url".
- Use the "url" module instead of the "uri" module.
- Remove the url parsing from http.js
- Update http.cat with the changed field names.
- Update tests for changes to http.js
- Update documentation for changes in http.js
2010-01-04 21:22:46 -08:00
isaacs
7ff04c1f86
Add URL and QueryString modules, and tests for each.
...
Also, make a slight change from original on url-module to put the
spacePattern into the function. On closer inspection, it turns out that the
nonlocal-var cost is higher than the compiling-a-regexp cost.
Also, documentation.
2010-01-04 21:03:54 -08:00
Tim Caswell
fd184ee2fa
Rename "Dynamic Property" to "Getter/Setter" in sys.inspect.
2010-01-03 21:15:21 -08:00
Tim Caswell
6c68a9679b
Fix inspect to not trigger dynamic properties
...
but to display them as special. Add unit tests to match
2010-01-02 18:18:01 -08:00
Tim Caswell
732c6f2036
Fix inspect for the special case of an Object that inherits from Array, but has other properties.
2009-12-31 09:57:29 -08:00
Ryan Dahl
dd35637603
Fix assert.js code style
2009-12-29 20:10:59 +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
Michaeljohn Clement
3d24e119e0
don't chunk responses to HTTP/1.0 clients, even if they send Connection: Keep-Alive (e.g. wget)
2009-12-23 22:24:29 +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
Ryan Dahl
0981e7f663
Fix test-readdir.js
...
Was broken because I added "throws_error.js" to the fixtures directory.
Problem appeared in bfa36136da
.
2009-12-19 00:45:01 +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
isaacs
4526308560
Update to fix failing test. Rewrite of the resolveObject function, and some tweaks to format.
2009-12-18 19:02:27 +01:00
isaacs
2f9722cca0
Pull in the uri.js from Narwhal and create tests, stripping out the cruft from a previous code-surgery.
2009-12-18 18:56:59 +01:00
Ryan Dahl
89a3fa93a0
add missing semicolon
2009-12-09 15:59:53 +01:00
Xavier Shay
756544fd28
sys.inspect prints out special chars correctly (\n, \u0001, etc...)
2009-12-07 10:05:18 +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
Christopher Lenz
f8ba9c3bc9
Add http.Client.prototype.request()
...
Change the http.Client API so that it provides a single request() method
taking an optional parameter to specify the HTTP method (defaulting to
"GET"), instead of the five methods get(), head(), post(), del() and put().
2009-12-06 18:36:32 +01:00
Xavier Shay
34c02357ff
sys.inspect is totally more awesome now
...
- No longer relies on JSON.stringify, so it can output nulls and functions
- Handles circular references better
- Has tests
2009-12-06 12:19:23 +01:00
Ryan Dahl
8141448fe5
Don't use promises internally in DNS module
2009-12-06 09:26:09 +01:00
Ryan Dahl
c5d82380f4
Bugfix: Don't use chunked encoding for 1.0 requests.
...
http://groups.google.com/group/nodejs/browse_thread/thread/b2edb76691b1848c
2009-12-05 08:37:46 +01:00
Karl Guertin
4f679fd8d0
Dependency free assert module with unit tests
2009-12-05 01:05:16 +01:00
Felix Geisendörfer
530328f12b
CommonJS testing for node.js
...
Refactored test suite to use the assert module for testing rather than
mjsunit.
2009-12-05 01:05:16 +01:00
Michaeljohn Clement
485823f3e4
fixed HTTP duplicated header bug
...
added test case for HTTP duplicated header bug on keepalive
2009-12-05 00:56:22 +01:00
Rhys Jones
5b1a535cd8
Add HTTP client TLS support
2009-11-30 16:51:20 +01:00
choonkeat
44d5f212fe
Stat::Callback has 2 arguments for callback: current stat info and previous stat info
...
http://groups.google.com/group/nodejs/msg/f8e51a8e0c74bd85
2009-11-28 15:13:12 +01:00
Friedemann Altrock
0433d828cf
add process.umask()
2009-11-22 19:52:52 +01:00
Friedemann Altrock
2d54d664ff
Promises should not be able to be canceled more than once.
2009-11-22 19:18:24 +01:00
Felix Geisendörfer
27fcae738a
Reduce multipart memory footprint
...
Multipart parts kept the first chunk of data after their headers in
memory, even so that was no longer needed.
2009-11-22 15:09:55 +01:00
Rhys Jones
b6dda61249
Initial TLS support
2009-11-22 04:03:53 +01:00
Felix Geisendörfer
528c449901
Multipart improvements
...
Multipart parts now have a name and filename property. Those are the
same as:
part.headers['content-disposition'].name
part.headers['content-disposition'].filename
This patch also updates and improves the docs for the multipart module.
2009-11-21 17:16:06 +01:00
Ryan Dahl
0b441462ab
Speed up test-wait-ordering.js
2009-11-18 15:55:02 +01:00
Ryan Dahl
6cb0e0e5f5
Test runner should only run test-*.js
2009-11-17 15:05:10 +01:00
Ryan Dahl
6e6562e551
Fix stat handler test for macintosh
2009-11-17 15:05:01 +01:00
Ryan Dahl
8d2f9e83a4
Add process.watchFile() process.unwatchFile()
...
This is an interface to libev's ev_stat watcher.
2009-11-17 14:07:48 +01:00
Felix Geisendörfer
2b252acea4
Implement process "uncaughtException" event
...
This event can be used to overwrite the default exception mechanism which
reports the exception and kills the node process.
See google group post:
http://groups.google.com/group/nodejs/browse_thread/thread/9721dc3a2638446f
2009-11-14 23:46:37 +01:00
Felix Geisendörfer
bffee5eda4
Bugfix for sendBody() and chunked utf8 strings
...
Http expects chunked byte offsets and ignores the encoding specified in the
header. This patch makes node behave accordingly.
Bug report:
http://groups.google.com/group/nodejs/browse_thread/thread/ab701d49cb059317
2009-11-11 18:53:05 +01:00
Felix Geisendörfer
7371fcb312
Temporary function to determine str byte length
...
Will need a better place later on
2009-11-11 18:42:46 +01:00
Felix Geisendörfer
a021db151a
Bug fix for test-remote-module-loading.js
...
Fix bug that caused test-remote-module-loading.js
to use the installed version of the http library
rather than the build one.
2009-11-07 20:07:55 +01:00
Ryan Dahl
6c9ec1ac40
Use '127.0.0.1' instead of 'localhost' for keep-alive test
...
ab seems to have to problem resolving 'localhost' on Urban's computer.
2009-11-07 17:31:42 +01:00
Ryan Dahl
9cfa4fd7d6
Output stderr from test-remote-module-loading.js
...
There is a small problem with test-remote-module-loading.js.
When it starts a child "node", the child uses the default require.paths
instead unshifting the build lib/
2009-11-07 15:08:46 +01:00
Ryan Dahl
b833aa48e9
Add test to ensure the server can handle keep-alive
2009-11-06 13:42:56 +01:00
Ryan Dahl
51c1526b6a
Revert "Upgrade http parser, change node as needed."
...
Something is broken in how keep-alive is working. Reverting until I can fix
it.
This reverts commit b893859c34
.
2009-11-06 12:44:20 +01:00
Brandon Beacher
47fcf785ac
Added process.chdir()
2009-11-03 19:22:37 +01:00
Ryan Dahl
b3b3cfe007
Move memoryUsage() into C on Linux
2009-11-03 13:00:42 +01:00
Ryan Dahl
3a70129a9c
Add sys.memoryUsage()
2009-11-03 01:30:01 +01:00
Felix Geisendörfer
43d651daef
The return of relative module loading
2009-11-02 21:26:55 +01:00
Felix Geisendörfer
7069bee982
The return of absolute Module loading
2009-11-02 21:20:44 +01:00
Felix Geisendörfer
8fd472b9a1
The return of remote module loading
2009-11-01 15:39:49 +01:00
Ryan Dahl
7a2e784ad7
Module refactor - almost CommonJS compatible now
...
API change summary:
* require("/sys.js") becomes require("sys")
* require("circle.js") becomes require("./circle")
* process.path.join() becomes require("path").join()
2009-10-31 19:10:30 +01:00
Ryan Dahl
57890465bd
A few more node->process changes
2009-10-30 05:49:23 +01:00
Ryan Dahl
ad0a4cefb8
Namespace EVERYTHING under process; introduce GLOBAL
...
http://groups.google.com/group/nodejs/browse_thread/thread/1034fd2ad2cd93e8
2009-10-29 23:36:41 +01:00
Felix Geisendörfer
659954d842
The return of Promise.cancel() with some additional tests & docs
2009-10-29 11:24:08 +01:00
Ryan Dahl
c536728335
Move node.dns.* into /dns.js
2009-10-28 23:02:52 +01:00
Ryan Dahl
3d8b14e6f7
node.fs.* moved into "/posix.js"
...
use require("/posix.js") to access them.
2009-10-28 22:45:46 +01:00
Ryan Dahl
efe34f5023
Only allow a promise to fire once, remove promise.cancel()
...
promise.cancel() is due to return at some point.
2009-10-28 15:37:03 +01:00
Ryan Dahl
04e53cab90
Rename node.libraryPaths to require.paths
...
to be more inline with CommonJS.
2009-10-25 22:51:57 +01:00
Ryan Dahl
b893859c34
Upgrade http parser, change node as needed.
...
The latest version of http-parser is a bit more stringent EOF semantics.
2009-10-15 19:18:18 +02:00
Ryan Dahl
3456a16f71
Accept string representations of signals in node.kill and child.kill
2009-10-15 15:45:04 +02:00
Brandon Beacher
334d56d2be
Added external interface for signal handlers.
...
Also process.pid and node.kill().
2009-10-15 14:40:52 +02:00
Connor Dunn
2dbd0d3806
Add node.fs.sendfile()
2009-10-14 18:51:23 +02:00
Felix Geisendörfer
0dbf2d7792
Implemented Promise.timeout() and Promise.cancel()
2009-10-12 16:17:42 +02:00
Ryan Dahl
f623fd7658
Normalize HTTP headers.
...
"Content-Length" becomes "content-length".
2009-10-07 16:56:19 +02:00
Ryan Dahl
b76d853f0d
Fix test-signal-handler.js on macintosh - pause before exit.
2009-10-07 15:39:39 +02:00
Felix Geisendörfer
abbc624f52
Multipart test now uses a fixture instead of CURL
2009-10-07 02:03:24 +02:00
Brandon Beacher
f068251494
Added signal handler.
...
To be used internally. Needs an exposed interface.
2009-10-07 01:23:29 +02:00
Ryan Dahl
82465fc4b1
Do not use /bin/sh to create child processes.
...
Instead directly call execvp(). This change is needed for the
soon-to-be-added signal handlers because the /bin/sh parent process does not
pass all signals to it's children, particularly SIGUSR1 on Linux.
The parameters of createChildProcess had to be changed slightly.
utils.exec() also has a changed implementation. A bug involving quoted
arguments was knowingly introduced into utils.exec(). Will fix later.
2009-10-07 01:08:33 +02:00
Ryan Dahl
8185e1fd25
Remove include() add node.mixin()
...
include() should not be used by libraries because it will pollute the global
namespace. To discourage this behavior and bring Node more in-line with
the current CommonJS module system, include() is removed.
Small scripts like unit tests often times do want to pollute the global
namespace for ease. To avoid the boiler plate code of
var x = require("/x.js");
var foo = x.foo;
var bar = x.bar;
The function node.mixin() is stolen from jQuery's jQuery.extend. So that it
can be written:
node.mixin(require("/x.js"));
Reference:
http://docs.jquery.com/Utilities/jQuery.extend
http://groups.google.com/group/nodejs/browse_thread/thread/f9ac83e5c11e7e87
2009-10-05 15:46:31 +02:00
Ryan Dahl
522909bcbf
Parse queryString into req.uri.params
2009-10-05 14:52:26 +02:00
Ryan Dahl
a8c0211e73
Bugfix: require() and include() should work in callbacks.
...
Removing requireAsync and includeAsync from global scope for now as a
temporary fix. Reported by Yuffster.
2009-09-29 19:28:54 +02:00
Ryan Dahl
095470854b
Move tcp library to /tcp.js
2009-09-28 18:48:18 +02:00
Ryan Dahl
f6657c3c9d
Move http library to /http.js
2009-09-28 12:36:36 +02:00
Ryan Dahl
7abad8b7b3
API: Move node.puts(), node.exec() and others to /utils.js
2009-09-28 12:06:30 +02:00
Felix Geisendörfer
27c750154e
Multipart stream parser
2009-09-27 16:58:56 +02:00
Ryan Dahl
106287c368
Tighten window on timer test.
2009-09-23 16:40:04 +02:00
Ryan Dahl
e0ec0036ca
Add connection.setNoDelay() to disable Nagle algorithm.
2009-09-23 15:36:34 +02:00
Ryan Dahl
07792afe0a
Remove "raw" encoding. Rename "raws" to "binary".
...
Deprecation warnings have been added to help the conversion to this new API.
2009-09-21 12:27:22 +02:00
Ryan Dahl
cd70d4a9c0
Add "/file.js" buffered disk I/O object.
...
This is similar to the class node.File which was removed in
82cb1b5acb
.
Needs documentation.
2009-09-20 20:42:23 +02:00
Ryan Dahl
4b8f503fac
Move mjsunit.js to system module directory.
2009-09-20 18:19:33 +02:00
Ryan Dahl
c8b143bf30
Absolute path names for require() refer to node.libraryPaths
2009-09-19 17:21:12 +02:00
Jon Crosby
e57c16bc2d
Add failing spec for node.fs.write
2009-09-17 14:58:01 +02:00
Ryan Dahl
083d150bc4
Add node.exec()
2009-09-15 15:42:16 +02:00