Bug 142923

Summary: Merge PropertyName into Identifier
Product: WebKit Reporter: Yusuke Suzuki <ysuzuki>
Component: JavaScriptCoreAssignee: Yusuke Suzuki <ysuzuki>
Status: RESOLVED WONTFIX    
Severity: Normal CC: barraclough, benjamin, darin, fpizlo, ggaren
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   

Description Yusuke Suzuki 2015-03-20 14:50:06 PDT
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.
Comment 1 Yusuke Suzuki 2015-05-08 18:23:28 PDT
Currently, some JIT code assumes the PropertyName's layout. It only holds StringImpl*. (Not RefPtr<StringImpl>).
So in the meantime, we just use it.
Comment 2 Filip Pizlo 2015-05-08 18:26:25 PDT
(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*.