diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2011-07-19 12:46:38 +0400 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2011-07-19 12:46:38 +0400 |
commit | 4ef8f06fe62edb74fded0e817266cb6398e69f36 (patch) | |
tree | a8561ddac4925a3cbd62f2d009237bbb47d8d302 /src | |
parent | 0a3fc1d9c8becc32c63ae736ca2b3719a3d03c5b (diff) |
Finally remove node::EventEmitter
Diffstat (limited to 'src')
-rw-r--r-- | src/node.cc | 6 | ||||
-rw-r--r-- | src/node.js | 10 | ||||
-rw-r--r-- | src/node_events.cc | 92 | ||||
-rw-r--r-- | src/node_events.h | 44 | ||||
-rw-r--r-- | src/node_file.h | 1 | ||||
-rw-r--r-- | src/node_signal_watcher.h | 2 | ||||
-rw-r--r-- | src/node_stat_watcher.h | 1 | ||||
-rw-r--r-- | src/node_stdio.cc | 1 |
8 files changed, 7 insertions, 150 deletions
diff --git a/src/node.cc b/src/node.cc index aca5f6a0e61..4f59762f397 100644 --- a/src/node.cc +++ b/src/node.cc @@ -62,7 +62,6 @@ extern "C" { # include <node_io_watcher.h> #endif #include <node_net.h> -#include <node_events.h> #include <node_cares.h> #include <node_file.h> #include <node_http_parser.h> @@ -2022,7 +2021,6 @@ Handle<Object> SetupProcessObject(int argc, char *argv[]) { int i, j; Local<FunctionTemplate> process_template = FunctionTemplate::New(); - node::EventEmitter::Initialize(process_template); process = Persistent<Object>::New(process_template->GetFunction()->NewInstance()); @@ -2147,10 +2145,6 @@ Handle<Object> SetupProcessObject(int argc, char *argv[]) { NODE_SET_METHOD(process, "binding", Binding); - // Assign the EventEmitter. It was created in main(). - process->Set(String::NewSymbol("EventEmitter"), - EventEmitter::constructor_template->GetFunction()); - return process; } diff --git a/src/node.js b/src/node.js index e4a9de45e8c..c733555b589 100644 --- a/src/node.js +++ b/src/node.js @@ -27,10 +27,16 @@ (function(process) { global = this; + var EventEmitter; + function startup() { if (process.env.NODE_USE_UV == '1') process.useUV = true; + EventEmitter = NativeModule.require('events').EventEmitter; + process.__proto__ = EventEmitter.prototype; + process.EventEmitter = EventEmitter; // process.EventEmitter is deprecated + startup.globalVariables(); startup.globalTimeouts(); startup.globalConsole(); @@ -226,8 +232,7 @@ // process.stderr - var events = NativeModule.require('events'); - var stderr = process.stderr = new events.EventEmitter(); + var stderr = process.stderr = new EventEmitter(); stderr.writable = true; stderr.readable = false; stderr.write = process.binding('stdio').writeError; @@ -276,7 +281,6 @@ startup.processSignalHandlers = function() { // Load events module in order to access prototype elements on process like // process.addListener. - var events = NativeModule.require('events'); var signalWatchers = {}; var addListener = process.addListener; var removeListener = process.removeListener; diff --git a/src/node_events.cc b/src/node_events.cc deleted file mode 100644 index 8c0b5a6483a..00000000000 --- a/src/node_events.cc +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -#include <node_events.h> -#include <node.h> - -namespace node { - -using namespace v8; - -Persistent<FunctionTemplate> EventEmitter::constructor_template; - -static Persistent<String> events_symbol; - -void EventEmitter::Initialize(Local<FunctionTemplate> ctemplate) { - HandleScope scope; - - constructor_template = Persistent<FunctionTemplate>::New(ctemplate); - - constructor_template->SetClassName(String::NewSymbol("EventEmitter")); - - events_symbol = NODE_PSYMBOL("_events"); - - // All other prototype methods are defined in events.js -} - - -bool EventEmitter::Emit(Handle<String> event, int argc, Handle<Value> argv[]) { - HandleScope scope; - // HandleScope not needed here because only called from one of the two - // functions below - Local<Value> events_v = handle_->Get(events_symbol); - if (!events_v->IsObject()) return false; - Local<Object> events = events_v->ToObject(); - - Local<Value> listeners_v = events->Get(event); - - TryCatch try_catch; - - if (listeners_v->IsFunction()) { - // Optimized one-listener case - Local<Function> listener = Local<Function>::Cast(listeners_v); - - listener->Call(handle_, argc, argv); - - if (try_catch.HasCaught()) { - FatalException(try_catch); - return false; - } - - } else if (listeners_v->IsArray()) { - Local<Array> listeners = Local<Array>::Cast(listeners_v->ToObject()->Clone()); - - for (uint32_t i = 0; i < listeners->Length(); i++) { - Local<Value> listener_v = listeners->Get(i); - if (!listener_v->IsFunction()) continue; - Local<Function> listener = Local<Function>::Cast(listener_v); - - listener->Call(handle_, argc, argv); - - if (try_catch.HasCaught()) { - FatalException(try_catch); - return false; - } - } - - } else { - return false; - } - - return true; -} - -} // namespace node diff --git a/src/node_events.h b/src/node_events.h deleted file mode 100644 index fc87189374a..00000000000 --- a/src/node_events.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -#ifndef SRC_EVENTS_H_ -#define SRC_EVENTS_H_ - -#include <node_object_wrap.h> -#include <v8.h> - -namespace node { - -class EventEmitter : public ObjectWrap { - public: - static void Initialize(v8::Local<v8::FunctionTemplate> ctemplate); - static v8::Persistent<v8::FunctionTemplate> constructor_template; - - bool Emit(v8::Handle<v8::String> event, - int argc, - v8::Handle<v8::Value> argv[]); - - protected: - EventEmitter() : ObjectWrap () { } -}; - -} // namespace node -#endif // SRC_EVENTS_H_ diff --git a/src/node_file.h b/src/node_file.h index 6ac5a31e18c..e98b115d401 100644 --- a/src/node_file.h +++ b/src/node_file.h @@ -23,7 +23,6 @@ #define SRC_FILE_H_ #include <node.h> -#include <node_events.h> #include <v8.h> namespace node { diff --git a/src/node_signal_watcher.h b/src/node_signal_watcher.h index 9c14967656f..d2ced703b24 100644 --- a/src/node_signal_watcher.h +++ b/src/node_signal_watcher.h @@ -23,8 +23,6 @@ #define NODE_SIGNAL_WATCHER_H_ #include <node.h> -#include <node_events.h> - #include <v8.h> #include <ev.h> diff --git a/src/node_stat_watcher.h b/src/node_stat_watcher.h index f88caef18b8..50e86c8c829 100644 --- a/src/node_stat_watcher.h +++ b/src/node_stat_watcher.h @@ -23,7 +23,6 @@ #define NODE_STAT_WATCHER_H_ #include <node.h> -#include <node_events.h> #include <ev.h> namespace node { diff --git a/src/node_stdio.cc b/src/node_stdio.cc index f654d2b8802..2668bb03101 100644 --- a/src/node_stdio.cc +++ b/src/node_stdio.cc @@ -20,7 +20,6 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. #include <node_stdio.h> -#include <node_events.h> #include <unistd.h> #include <fcntl.h> |