mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
[INFER] Bail from GetProperty IC if js_FindProperty triggered recompilation, bug 647547.
This commit is contained in:
parent
90dcf54737
commit
2390894c39
9
js/src/jit-test/tests/jaeger/recompile/bug647547.js
Normal file
9
js/src/jit-test/tests/jaeger/recompile/bug647547.js
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
DoWhile(new DoWhileObject);
|
||||||
|
new DoWhileObject("", Boolean);
|
||||||
|
function DoWhileObject( d, e, s ) {
|
||||||
|
this.whileExpression=e;
|
||||||
|
}
|
||||||
|
function DoWhile( object ) {
|
||||||
|
while ( object.whileExpression ) eval( );
|
||||||
|
Boolean
|
||||||
|
}
|
@ -710,8 +710,11 @@ struct GetPropertyHelper {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
LookupStatus bind() {
|
LookupStatus bind() {
|
||||||
|
RecompilationMonitor monitor(cx);
|
||||||
if (!js_FindProperty(cx, ATOM_TO_JSID(atom), &obj, &holder, &prop))
|
if (!js_FindProperty(cx, ATOM_TO_JSID(atom), &obj, &holder, &prop))
|
||||||
return ic.error(cx);
|
return ic.error(cx);
|
||||||
|
if (monitor.recompiled())
|
||||||
|
return Lookup_Uncacheable;
|
||||||
if (!prop)
|
if (!prop)
|
||||||
return ic.disable(cx, "lookup failed");
|
return ic.disable(cx, "lookup failed");
|
||||||
if (!obj->isNative())
|
if (!obj->isNative())
|
||||||
|
Loading…
Reference in New Issue
Block a user