| Index: src/v8natives.js
|
| diff --git a/src/v8natives.js b/src/v8natives.js
|
| index 7a7915aa592b4a1e831b696c38b24e29197cc52f..2c3bf9767c8962d5d747cb696a3eb67f41abfd47 100644
|
| --- a/src/v8natives.js
|
| +++ b/src/v8natives.js
|
| @@ -176,7 +176,7 @@ function GlobalEval(x) {
|
|
|
| var global_proxy = %GlobalProxy(global);
|
|
|
| - var f = %CompileString(x, false, 0);
|
| + var f = %CompileString(x, false);
|
| if (!IS_FUNCTION(f)) return f;
|
|
|
| return %_CallFunction(global_proxy, f);
|
| @@ -1832,7 +1832,7 @@ function FunctionBind(this_arg) { // Length is 1.
|
| }
|
|
|
|
|
| -function NewFunctionFromString(arguments, function_token) {
|
| +function NewFunctionString(arguments, function_token) {
|
| var n = arguments.length;
|
| var p = '';
|
| if (n > 1) {
|
| @@ -1849,20 +1849,21 @@ function NewFunctionFromString(arguments, function_token) {
|
| // If the formal parameters include an unbalanced block comment, the
|
| // function must be rejected. Since JavaScript does not allow nested
|
| // comments we can include a trailing block comment to catch this.
|
| - p += '\n\x2f**\x2f';
|
| + p += '\n/' + '**/';
|
| }
|
| var body = (n > 0) ? ToString(arguments[n - 1]) : '';
|
| - var head = '(' + function_token + '(' + p + ') {\n';
|
| - var src = head + body + '\n})';
|
| - var global_proxy = %GlobalProxy(global);
|
| - var f = %_CallFunction(global_proxy, %CompileString(src, true, head.length));
|
| - %FunctionMarkNameShouldPrintAsAnonymous(f);
|
| - return f;
|
| + return '(' + function_token + '(' + p + ') {\n' + body + '\n})';
|
| }
|
|
|
|
|
| function FunctionConstructor(arg1) { // length == 1
|
| - return NewFunctionFromString(arguments, 'function');
|
| + var source = NewFunctionString(arguments, 'function');
|
| + var global_proxy = %GlobalProxy(global);
|
| + // Compile the string in the constructor and not a helper so that errors
|
| + // appear to come from here.
|
| + var f = %_CallFunction(global_proxy, %CompileString(source, true));
|
| + %FunctionMarkNameShouldPrintAsAnonymous(f);
|
| + return f;
|
| }
|
|
|
|
|
|
|