diff --git a/lib/module.js b/lib/module.js index fa147d62e8..d806a4ae82 100644 --- a/lib/module.js +++ b/lib/module.js @@ -20,7 +20,7 @@ // USE OR OTHER DEALINGS IN THE SOFTWARE. var NativeModule = require('native_module'); -var Script = process.binding('evals').Script; +var Script = process.binding('evals').NodeScript; var runInThisContext = Script.runInThisContext; var runInNewContext = Script.runInNewContext; var assert = require('assert').ok; diff --git a/lib/vm.js b/lib/vm.js index 3ce71c9ca0..d3348afac5 100644 --- a/lib/vm.js +++ b/lib/vm.js @@ -21,12 +21,12 @@ var binding = process.binding('evals'); -exports.Script = binding.Script; +exports.Script = binding.NodeScript; exports.createScript = function(code, ctx, name) { return new exports.Script(code, ctx, name); }; -exports.createContext = binding.Script.createContext; -exports.runInContext = binding.Script.runInContext; -exports.runInThisContext = binding.Script.runInThisContext; -exports.runInNewContext = binding.Script.runInNewContext; +exports.createContext = binding.NodeScript.createContext; +exports.runInContext = binding.NodeScript.runInContext; +exports.runInThisContext = binding.NodeScript.runInThisContext; +exports.runInNewContext = binding.NodeScript.runInNewContext; diff --git a/src/node.js b/src/node.js index 916239d989..8b1b2f6d3b 100644 --- a/src/node.js +++ b/src/node.js @@ -349,7 +349,7 @@ // core modules found in lib/*.js. All core modules are compiled into the // node binary, so they can be loaded faster. - var Script = process.binding('evals').Script; + var Script = process.binding('evals').NodeScript; var runInThisContext = Script.runInThisContext; function NativeModule(id) { diff --git a/src/node_script.cc b/src/node_script.cc index 49446ccbb3..f8fefb67e6 100644 --- a/src/node_script.cc +++ b/src/node_script.cc @@ -150,7 +150,10 @@ void WrappedScript::Initialize(Handle target) { Local t = FunctionTemplate::New(WrappedScript::New); constructor_template = Persistent::New(t); 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, "createContext", @@ -184,7 +187,7 @@ void WrappedScript::Initialize(Handle target) { "runInNewContext", WrappedScript::CompileRunInNewContext); - target->Set(String::NewSymbol("Script"), + target->Set(String::NewSymbol("NodeScript"), constructor_template->GetFunction()); }