Browse Source

Revert "Fix #3521 Use an object as the process.env proto"

The reverted commit caused a v8 assertion to trigger in debug mode.
This reverts commit e3074689f5.
v0.9.1-release
Bert Belder 13 years ago
parent
commit
0581afe531
  1. 6
      src/node.cc
  2. 10
      test/simple/test-process-env.js

6
src/node.cc

@ -1959,8 +1959,8 @@ static Handle<Value> EnvGetter(Local<String> property,
return scope.Close(String::New(reinterpret_cast<uint16_t*>(buffer), result));
}
#endif
// Not found. Fetch from prototype.
return info.Data().As<Object>()->Get(property);
// Not found
return Undefined();
}
@ -2210,7 +2210,7 @@ Handle<Object> SetupProcessObject(int argc, char *argv[]) {
EnvQuery,
EnvDeleter,
EnvEnumerator,
Object::New());
Undefined());
Local<Object> env = envTemplate->NewInstance();
process->Set(String::NewSymbol("env"), env);

10
test/simple/test-process-env.js

@ -47,18 +47,8 @@ if (process.argv[2] == 'you-are-the-child') {
// failed assertion results in process exiting with status code 1
assert.equal(false, 'NODE_PROCESS_ENV_DELETED' in process.env);
assert.equal(42, process.env.NODE_PROCESS_ENV);
assert.equal('asdf', process.env.hasOwnProperty);
var hasOwnProperty = Object.prototype.hasOwnProperty;
var has = hasOwnProperty.call(process.env, 'hasOwnProperty');
assert.equal(true, has);
process.exit(0);
} else {
assert.equal(Object.prototype.hasOwnProperty, process.env.hasOwnProperty);
var has = process.env.hasOwnProperty('hasOwnProperty');
assert.equal(false, has);
process.env.hasOwnProperty = 'asdf';
process.env.NODE_PROCESS_ENV = 42;
assert.equal(42, process.env.NODE_PROCESS_ENV);

Loading…
Cancel
Save