Bug 1334356 - Don't attach a missing-property stub if extra warnings are enabled. r=h4writer

This commit is contained in:
Jan de Mooij 2017-02-03 11:39:54 +01:00
Родитель 76d4459138
Коммит 0e9af52963
2 изменённых файлов: 19 добавлений и 2 удалений

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

@ -0,0 +1,16 @@
setJitCompilerOption('ion.forceinlineCaches', 1);
options('strict');
options('werror');
var o = {y: 0};
Object.defineProperty(o, "x", {get: function() { o.y } });
for (var i = 0; i < 10; i++) {
var fail = false;
try {
o.x.u;
fail = true;
} catch (e) {}
assertEq(fail, false);
delete o.y;
}

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

@ -244,8 +244,9 @@ IsCacheableNoProperty(JSContext* cx, JSObject* obj, JSObject* holder, Shape* sha
return false;
}
// If we're doing a name lookup, we have to throw a ReferenceError.
if (*pc == JSOP_GETXPROP)
// If we're doing a name lookup, we have to throw a ReferenceError. If
// extra warnings are enabled, we may have to report a warning.
if (*pc == JSOP_GETXPROP || cx->compartment()->behaviors().extraWarnings(cx))
return false;
return CheckHasNoSuchProperty(cx, obj, id);