diff --git a/js/src/ion/IonBuilder.cpp b/js/src/ion/IonBuilder.cpp index d096467b24d..cdbcb63646e 100644 --- a/js/src/ion/IonBuilder.cpp +++ b/js/src/ion/IonBuilder.cpp @@ -5636,6 +5636,8 @@ IonBuilder::jsop_getgname(HandlePropertyName name) // or non-writable. return jsop_getname(name); } + if (!propertyTypes->hasPropagatedProperty()) + globalType->getFromPrototypes(cx, id, propertyTypes); // If the property is permanent, a shape guard isn't necessary. diff --git a/js/src/jit-test/tests/ion/bug861419.js b/js/src/jit-test/tests/ion/bug861419.js new file mode 100644 index 00000000000..2207555ab4c --- /dev/null +++ b/js/src/jit-test/tests/ion/bug861419.js @@ -0,0 +1,17 @@ + +try { + arguments.toSource = (function() { + __proto__.y = x + }) + y = this + print(x = 8) + a = arguments + for (v of this) {} +} catch (e) {} +function f() { + "HELLO " + y +} +f() +f() +y = 1[7] +f()