@@ -121,6 +121,8 @@ var TYPEOF_OUTCOMES = [
|
|||||||
'symbol',
|
'symbol',
|
||||||
'crap' ];
|
'crap' ];
|
||||||
|
|
||||||
|
var FUNC_TOSTRING = 'Function.prototype.toString=function(){return"function(){}"};';
|
||||||
|
|
||||||
function run_code(code) {
|
function run_code(code) {
|
||||||
var stdout = "";
|
var stdout = "";
|
||||||
var original_write = process.stdout.write;
|
var original_write = process.stdout.write;
|
||||||
@@ -128,7 +130,15 @@ function run_code(code) {
|
|||||||
stdout += chunk;
|
stdout += chunk;
|
||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
new vm.Script(code).runInNewContext({ console: console }, { timeout: 5000 });
|
new vm.Script(FUNC_TOSTRING + code).runInNewContext({
|
||||||
|
console: {
|
||||||
|
log: function() {
|
||||||
|
return console.log.apply(console, [].map.call(arguments, function(arg) {
|
||||||
|
return typeof arg == "function" ? "[Function]" : arg;
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, { timeout: 5000 });
|
||||||
return stdout;
|
return stdout;
|
||||||
} catch (ex) {
|
} catch (ex) {
|
||||||
return ex;
|
return ex;
|
||||||
|
|||||||
Reference in New Issue
Block a user