JSOPTION_ANONFUNFIX should be set in js shell (5595555, r=cdleary).

This commit is contained in:
Brendan Eich 2010-10-06 14:58:28 -07:00
Родитель 524b7dd76b
Коммит 8140dc23ab
15 изменённых файлов: 29 добавлений и 28 удалений

Просмотреть файл

@ -5248,7 +5248,7 @@ NewGlobalObject(JSContext *cx)
}
int
shell(JSContext *cx, int argc, char **argv, char **envp)
Shell(JSContext *cx, int argc, char **argv, char **envp)
{
JSAutoRequest ar(cx);
@ -5411,9 +5411,10 @@ main(int argc, char **argv, char **envp)
if (!cx)
return 1;
JS_SetOptions(cx, JS_GetOptions(cx) | JSOPTION_ANONFUNFIX);
JS_SetGCParameterForThread(cx, JSGC_MAX_CODE_CACHE_BYTES, 16 * 1024 * 1024);
result = shell(cx, argc, argv, envp);
result = Shell(cx, argc, argv, envp);
DestroyContext(cx, true);

Просмотреть файл

@ -6,11 +6,11 @@ function g(foo) {
}
var makegen = eval("\n\
function(b) {\n\
(function(b) {\n\
var h = \n\
eval(\"new function() { yield print(b) }\" ); \n\
return h\n\
}\n\
})\n\
");
g(makegen());

Просмотреть файл

@ -23,10 +23,10 @@ function testmath(funcname, args, expected) {
// Unless we eval here, the call to funcname won't get traced.
// FUNCNAME="Infinity/Math.abs" and cases like that happen to
// parse, too, in a twisted way.
var mapfunc = eval("function(a) {\n"
var mapfunc = eval("(function(a) {\n"
+ " for (var i = 0; i < a.length; i++)\n"
+ " a[i] = " + funcname + "(" + actuals +");\n"
+ " }\n");
+ " })\n");
// To prevent the compiler from doing constant folding, produce an
// array to pass to mapfunc that contains enough dummy

Просмотреть файл

@ -4,7 +4,7 @@ f = function() {
x = yield
}
rv = f()
for (a in rv) function() {}
for (a in rv) (function() {})
x = Proxy.create((function() {
return {
defineProperty: gc

Просмотреть файл

@ -1,7 +1,7 @@
// |trace-test| error: TypeError
(eval("\
function () {\
(function () {\
for (var[x] = function(){} in \
(function m(a) {\
if (a < 1) {\
@ -13,5 +13,5 @@
(eval(\"\"))\
)\
([])\
}\
})\
"))()

Просмотреть файл

@ -1,6 +1,6 @@
for (j = 0; j < 1; j++) {
var f = eval("\
function() {\
(function() {\
for (var a = 0; a < 8; ++a) {\
if (a % 3 == 2) {\
eval(\"\
@ -11,7 +11,7 @@ for (j = 0; j < 1; j++) {
}\
gc()\
}\
}\
})\
");
f()
}

Просмотреть файл

@ -1,10 +1,10 @@
for (a in (eval("\
function() {\
(function() {\
return function() {\
yield ((function() {\
return d\
})())\
} ();\
var d = []\
}\
})\
"))());

Просмотреть файл

@ -2,14 +2,14 @@ function m() {
var d = 73;
return (eval("\n\
function() {\n\
(function() {\n\
return function() {\n\
yield ((function() {\n\
print(d);\n\
return d\n\
})())\n\
} ();\n\
}\n\
})\n\
"))();
}

Просмотреть файл

@ -3,11 +3,11 @@ expected = 'undefined,';
function f() {
(eval("\
function () {\
(function () {\
for (var z = 0; z < 2; ++z) {\
x = ''\
}\
}\
})\
"))();
}
__defineSetter__("x", eval)

Просмотреть файл

@ -1,6 +1,6 @@
(function() {
for each(let z in [new String(''), new String('q'), new String('')]) {
if (uneval() < z) function(){}
if (uneval() < z) (function(){})
}
})()

Просмотреть файл

@ -1,6 +1,6 @@
// |trace-test| error: TypeError
function f() {
eval("function() \n{\nfor(x in[])\n{}\n}");
eval("(function() \n{\nfor(x in[])\n{}\n})");
("")()
}
f()

Просмотреть файл

@ -2,7 +2,7 @@
for (let a in [0])
a = e
for (let a in [0])
function () {
(function () {
a
}
})

Просмотреть файл

@ -3,7 +3,7 @@ function g() {
var rv = (function() {
this << 1
})()
if (a) function() {}
if (a) (function() {})
}
g()

Просмотреть файл

@ -1,5 +1,5 @@
// |trace-test| error: <x/> is not a function
function() { (e)
function f() { (e)
} (x = Proxy.createFunction((function(x) {
return {
get: function(r, b) {

Просмотреть файл

@ -1,4 +1,4 @@
function()[function() function() function() function() function() function() {}]
(function()[function() function() function() function() function() function() {}]);
foo = [{
text: "(function(){if(d){(1)}})",
s: function() {},
@ -46,9 +46,9 @@ foo = [{
}
} ());
s = [function() function() function() function() function() function() {}]
[function() function() function() function() {}]
function() { [function() function() {}] }
function() {}
[function() function() function() function() {}];
(function() { [function() function() {}] });
(function() {});
(eval("\
(function(){\
for each(d in[\
@ -57,4 +57,4 @@ function() {}
[].filter(new Function,gczeal(2))\
}\
})\
"))()
"))();