Don't conflict with V8's Script class

Closes GH-203.
This commit is contained in:
Ryan Dahl 2011-03-30 10:06:19 -07:00
parent 4cc0a0878f
commit 75db1995b6
4 changed files with 12 additions and 9 deletions

View File

@ -20,7 +20,7 @@
// USE OR OTHER DEALINGS IN THE SOFTWARE. // USE OR OTHER DEALINGS IN THE SOFTWARE.
var NativeModule = require('native_module'); var NativeModule = require('native_module');
var Script = process.binding('evals').Script; var Script = process.binding('evals').NodeScript;
var runInThisContext = Script.runInThisContext; var runInThisContext = Script.runInThisContext;
var runInNewContext = Script.runInNewContext; var runInNewContext = Script.runInNewContext;
var assert = require('assert').ok; var assert = require('assert').ok;

View File

@ -21,12 +21,12 @@
var binding = process.binding('evals'); var binding = process.binding('evals');
exports.Script = binding.Script; exports.Script = binding.NodeScript;
exports.createScript = function(code, ctx, name) { exports.createScript = function(code, ctx, name) {
return new exports.Script(code, ctx, name); return new exports.Script(code, ctx, name);
}; };
exports.createContext = binding.Script.createContext; exports.createContext = binding.NodeScript.createContext;
exports.runInContext = binding.Script.runInContext; exports.runInContext = binding.NodeScript.runInContext;
exports.runInThisContext = binding.Script.runInThisContext; exports.runInThisContext = binding.NodeScript.runInThisContext;
exports.runInNewContext = binding.Script.runInNewContext; exports.runInNewContext = binding.NodeScript.runInNewContext;

View File

@ -349,7 +349,7 @@
// core modules found in lib/*.js. All core modules are compiled into the // core modules found in lib/*.js. All core modules are compiled into the
// node binary, so they can be loaded faster. // node binary, so they can be loaded faster.
var Script = process.binding('evals').Script; var Script = process.binding('evals').NodeScript;
var runInThisContext = Script.runInThisContext; var runInThisContext = Script.runInThisContext;
function NativeModule(id) { function NativeModule(id) {

View File

@ -150,7 +150,10 @@ void WrappedScript::Initialize(Handle<Object> target) {
Local<FunctionTemplate> t = FunctionTemplate::New(WrappedScript::New); Local<FunctionTemplate> t = FunctionTemplate::New(WrappedScript::New);
constructor_template = Persistent<FunctionTemplate>::New(t); constructor_template = Persistent<FunctionTemplate>::New(t);
constructor_template->InstanceTemplate()->SetInternalFieldCount(1); constructor_template->InstanceTemplate()->SetInternalFieldCount(1);
constructor_template->SetClassName(String::NewSymbol("Script")); // Note: We use 'NodeScript' instead of 'Script' so that we do not
// conflict with V8's Script class defined in v8/src/messages.js
// See GH-203 https://github.com/joyent/node/issues/203
constructor_template->SetClassName(String::NewSymbol("NodeScript"));
NODE_SET_PROTOTYPE_METHOD(constructor_template, NODE_SET_PROTOTYPE_METHOD(constructor_template,
"createContext", "createContext",
@ -184,7 +187,7 @@ void WrappedScript::Initialize(Handle<Object> target) {
"runInNewContext", "runInNewContext",
WrappedScript::CompileRunInNewContext); WrappedScript::CompileRunInNewContext);
target->Set(String::NewSymbol("Script"), target->Set(String::NewSymbol("NodeScript"),
constructor_template->GetFunction()); constructor_template->GetFunction());
} }