Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8142275 | emb-9 | Hannes Wallnoefer | P4 | Resolved | Fixed | team |
JDK-8140999 | 8u91 | Hannes Wallnoefer | P4 | Resolved | Fixed | b01 |
JDK-8137026 | 8u72 | Hannes Wallnoefer | P4 | Closed | Fixed | b01 |
JDK-8147368 | emb-8u91 | Hannes Wallnoefer | P4 | Resolved | Fixed | b01 |
Working on JDK-8133925 I found that prototype layouts where prototypes start with the same shape but diverge before first being used are currently not covered by our test suite (neither our own tests nor test262).
This includes code like the following:
function create() {
function C() { return this; }
return new C();
}
var c1 = create();
var c2 = create();
function p(o) { print(o.x) }
c1.__proto__.x = 123;
p(c1);
p(c2);
Since both instances of C have the same prototype shape (although prototype instances are different), we might want to use the same property map for the top level objects as well. However, we need to catch the case where one of the prototype instances is modified before a callsite sees one of the C instances.
(If a prototype is modified after its map has been used in a callsite we will catch changes through the property listener/prototype switchpoint mechanism. This is also covered by our tests.)
This includes code like the following:
function create() {
function C() { return this; }
return new C();
}
var c1 = create();
var c2 = create();
function p(o) { print(o.x) }
c1.__proto__.x = 123;
p(c1);
p(c2);
Since both instances of C have the same prototype shape (although prototype instances are different), we might want to use the same property map for the top level objects as well. However, we need to catch the case where one of the prototype instances is modified before a callsite sees one of the C instances.
(If a prototype is modified after its map has been used in a callsite we will catch changes through the property listener/prototype switchpoint mechanism. This is also covered by our tests.)
- backported by
-
JDK-8140999 Add tests for prototype callsites
-
- Resolved
-
-
JDK-8142275 Add tests for prototype callsites
-
- Resolved
-
-
JDK-8147368 Add tests for prototype callsites
-
- Resolved
-
-
JDK-8137026 Add tests for prototype callsites
-
- Closed
-