Bug 15860

Summary: add() could use additional speedups
Product: WebKit Reporter: Eric Seidel <eric>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Severity: Normal CC: ap, emacemac7
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Macintosh   
OS: Mac OS X 10.4   
Bug Depends on: 15837    
Bug Blocks:    

Description Eric Seidel 2007-11-06 10:57:47 PST
add() could use additional speedups

Some suggestions brought up in bug 15837 but not implemented, include:

1.  Combine both types into a "type mask" using uint32_t typeMask = t1 << 3 | t2; and then check the resulting type mask instead of t1 == StringType && t2 == StringType
2.  Speed up addSlowCase by passing in the typeMask and only calling toPrimative when needed
3.  Speed up addSlowCase by avoiding calling toString() and using static_cast<StringImp*>(foo)->value() when possible.
Comment 1 Darin Adler 2007-11-08 23:00:09 PST
Oliver did (1) already.
Comment 2 Eric Seidel 2007-11-09 00:49:28 PST
This will actually be fixed more by bug 15884.  I'm going to re-write AddNode into specialized versions to exploit at least #3.  #2 becomes irrelevant.
Comment 3 Alexey Proskuryakov 2009-03-24 10:59:08 PDT
Eric, is this bug still valid?

/me sounds like a broken record, yeah
Comment 4 Eric Seidel 2009-03-24 11:27:39 PDT
I don't think JSC code looks anything like this anymore.  But I've not hacked on it in over a year now. :(