NodeJSのrequire()はどこに定義されている?
v0.8.16 (homebrew ver.) だと上の3つがOK, v0.6.19 (nvm ver.) だと上2つがOK。どれも同じように見えるんだけどなあ。
#!/usr/bin/env node try { console.log("#require %s", require); // OK } catch (e) { console.error(e); } try { console.log("#eval('require') %s", eval('require')); // OK } catch (e) { console.error(e); } try { (function() { var eval = global.eval; console.log("#var eval = global.eval; eval('require') %s", eval('require')); // OK }()); } catch (e) { console.error(e); } try { console.log("#global.require %s", global.require); // undefined } catch (e) { console.error(e); } try { (function() { var _eval = global.eval; console.log("#var _eval = global.eval; _eval('require') %s", _eval('require')); // NG }()); } catch (e) { console.error(e); } try { console.log("#global.eval('require') %s", global.eval('require')); // NG } catch (e) { console.error(e); } try { console.log("#eval.call(undefined, 'require') %s", eval.call(undefined, 'require')); // NG } catch (e) { console.error(e); } try { console.log("#eval.call('global') %s", eval.call(global, 'require')); // NG } catch (e) { console.error(e); }