Browse Source

Don't conflict with V8's Script class

Closes GH-203.
v0.7.4-release
Ryan Dahl 14 years ago
parent
commit
75db1995b6
  1. 2
      lib/module.js
  2. 10
      lib/vm.js
  3. 2
      src/node.js
  4. 7
      src/node_script.cc

2
lib/module.js

@ -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;

10
lib/vm.js

@ -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;

2
src/node.js

@ -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) {

7
src/node_script.cc

@ -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());
} }

Loading…
Cancel
Save