Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2011-07-19 12:46:38 +0400
committerRyan Dahl <ry@tinyclouds.org>2011-07-19 12:46:38 +0400
commit4ef8f06fe62edb74fded0e817266cb6398e69f36 (patch)
treea8561ddac4925a3cbd62f2d009237bbb47d8d302 /src
parent0a3fc1d9c8becc32c63ae736ca2b3719a3d03c5b (diff)
Finally remove node::EventEmitter
Diffstat (limited to 'src')
-rw-r--r--src/node.cc6
-rw-r--r--src/node.js10
-rw-r--r--src/node_events.cc92
-rw-r--r--src/node_events.h44
-rw-r--r--src/node_file.h1
-rw-r--r--src/node_signal_watcher.h2
-rw-r--r--src/node_stat_watcher.h1
-rw-r--r--src/node_stdio.cc1
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>