mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
[INFER] Always monitor accesses on __proto__ and similar properties, bug 645044.
This commit is contained in:
parent
e8661b558f
commit
6583f29906
4
js/src/jit-test/tests/jaeger/recompile/bug645044.js
Normal file
4
js/src/jit-test/tests/jaeger/recompile/bug645044.js
Normal file
@ -0,0 +1,4 @@
|
||||
|
||||
this.__defineGetter__("x", gc);
|
||||
x.__proto__ = this;
|
||||
__proto__ = 44;
|
@ -839,13 +839,6 @@ PropertyAccess(JSContext *cx, JSScript *script, const jsbytecode *pc, TypeObject
|
||||
{
|
||||
JS_ASSERT_IF(!target, assign);
|
||||
|
||||
/* Reads from objects with unknown properties are unknown, writes to such objects are ignored. */
|
||||
if (object->unknownProperties) {
|
||||
if (!assign)
|
||||
target->addType(cx, TYPE_UNKNOWN);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Monitor assigns on the 'prototype' property. */
|
||||
if (assign && id == id_prototype(cx)) {
|
||||
cx->compartment->types.monitorBytecode(cx, script, pc - script->code);
|
||||
@ -861,6 +854,13 @@ PropertyAccess(JSContext *cx, JSScript *script, const jsbytecode *pc, TypeObject
|
||||
return;
|
||||
}
|
||||
|
||||
/* Reads from objects with unknown properties are unknown, writes to such objects are ignored. */
|
||||
if (object->unknownProperties) {
|
||||
if (!assign)
|
||||
target->addType(cx, TYPE_UNKNOWN);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Capture the effects of a standard property access. */
|
||||
if (target) {
|
||||
TypeSet *types = object->getProperty(cx, id, assign);
|
||||
|
Loading…
Reference in New Issue
Block a user