[INFER] Mark generic scripted functions as having unknown properties / return type, bug 643285.

This commit is contained in:
Brian Hackett 2011-03-20 11:01:33 -07:00
Родитель 74227b493f
Коммит 3acc60ac4b
2 изменённых файлов: 12 добавлений и 0 удалений

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

@ -0,0 +1,4 @@
function fun() {
(new Function ("function ff () { actual = '' + ff. caller; } function f () { ff (); } f ();")) ('function pf' + fun + '() {}');
}
fun();

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

@ -2756,6 +2756,14 @@ js_InitFunctionClass(JSContext *cx, JSObject *obj)
if (!proto)
return NULL;
/*
* The default 'new' object for Function.prototype has unknown properties.
* This will be used for generic scripted functions, e.g. from non-compileAndGo code.
*/
TypeObject *newType = proto->getNewType(cx);
if (!newType || !cx->markTypeObjectUnknownProperties(newType))
return NULL;
JSFunction *fun = js_NewFunction(cx, proto, NULL, 0, JSFUN_INTERPRETED, obj, NULL, NULL, NULL);
if (!fun)
return NULL;