Pre-process out assert()

This commit is contained in:
Ryan Dahl 2011-01-27 16:35:35 -08:00
parent 6e53cf8b3f
commit f9f0e5c75c
2 changed files with 8 additions and 5 deletions

View File

@ -86,11 +86,13 @@
return startup._lazyConstants; return startup._lazyConstants;
}; };
var assert;
startup.processAssert = function() { startup.processAssert = function() {
process.assert = function(x, msg) { // Note that calls to assert() are pre-processed out by JS2C for the
if (!x) { // normal build of node. They persist only in the node_g build.
throw new Error(msg || 'assertion error'); // Similarly for debug().
} assert = process.assert = function(x, msg) {
if (!x) throw new Error(msg || 'assertion error');
}; };
}; };
@ -229,7 +231,7 @@
process.removeListener = function(type, listener) { process.removeListener = function(type, listener) {
var ret = removeListener.apply(this, arguments); var ret = removeListener.apply(this, arguments);
if (isSignal(type)) { if (isSignal(type)) {
process.assert(signalWatchers.hasOwnProperty(type)); assert(signalWatchers.hasOwnProperty(type));
if (this.listeners(type).length === 0) { if (this.listeners(type).length === 0) {
signalWatchers[type].stop(); signalWatchers[type].stop();

View File

@ -601,6 +601,7 @@ def build(bld):
make_macros(macros_loc_debug, "") # leave debug(x) as is in debug build make_macros(macros_loc_debug, "") # leave debug(x) as is in debug build
# replace debug(x) with nothing in release build # replace debug(x) with nothing in release build
make_macros(macros_loc_default, "macro debug(x) = ;\n") make_macros(macros_loc_default, "macro debug(x) = ;\n")
make_macros(macros_loc_default, "macro assert(x) = ;\n")
if not bld.env["USE_DTRACE"]: if not bld.env["USE_DTRACE"]:
make_macros(macros_loc_default, "macro DTRACE_HTTP_SERVER_RESPONSE(x) = ;\n"); make_macros(macros_loc_default, "macro DTRACE_HTTP_SERVER_RESPONSE(x) = ;\n");