Bug 142923
| Summary: | Merge PropertyName into Identifier | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Yusuke Suzuki <ysuzuki> |
| Component: | JavaScriptCore | Assignee: | Yusuke Suzuki <ysuzuki> |
| Status: | RESOLVED WONTFIX | ||
| Severity: | Normal | CC: | barraclough, benjamin, darin, fpizlo, ggaren |
| Priority: | P2 | ||
| Version: | 528+ (Nightly build) | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Yusuke Suzuki
PropertyName was introduced to treat non-indexed / indexed property. https://bugs.webkit.org/show_bug.cgi?id=86241
At that time, indexed/non-indexed abstract operations are not separated.
So PropertyName is needed to treat non-indexed / indexed properties.
However, now these abstract operations are separated. So there's no need to have both Identifier and PropertyName.
Thus we can merge PropertyName into Identifier.
And since PropertyName doesn't have onwership to its backing StringImpl*, it sometimes cause failures.
Merging PropertyName into Identifier elliminates this mistakes.
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Yusuke Suzuki
Currently, some JIT code assumes the PropertyName's layout. It only holds StringImpl*. (Not RefPtr<StringImpl>).
So in the meantime, we just use it.
Filip Pizlo
(In reply to comment #1)
> Currently, some JIT code assumes the PropertyName's layout. It only holds
> StringImpl*. (Not RefPtr<StringImpl>).
> So in the meantime, we just use it.
Right. It would be wrong to have the JITs use RefPtr<StringImpl>. One way to make this work would be to replace all JIT uses of PropertyName with just StringImpl*.