Bug 178338
| Summary: | [JSC] We should have the op_in_by_id and op_in_by_val for "in" operations | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Caio Lima <ticaiolima> |
| Component: | JavaScriptCore | Assignee: | Nobody <webkit-unassigned> |
| Status: | RESOLVED FIXED | ||
| Severity: | Normal | ||
| Priority: | P2 | ||
| Version: | WebKit Nightly Build | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Caio Lima
Nowadays we just have "op_in" byte code that behaves much like "op_bet_by_val" bytecode. However the pattern ```"prop" in obj``` can be likely present in modern code, mainly on built-in functions like Object.prototype.defineProperty[1]. In Object.prototype.defineProperty case for instance, we could perform some more aggressive optimizations to enable Allocation Sinking and get speedups on relevant frameworks that uses this function (e.g Ember.js).
The idea here is to follow the same architecture used on "op_get_by_id" and be less conservative on DFG + FTL "op_in" compilation. One advantage that I have in mind right now is that we could compile IC as DFG nodes such as we perform on GetById.
[1] - https://bugs.webkit.org/show_bug.cgi?id=172888
| Attachments | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Caio Lima
This is already implemented.