6 | | See SquirrelFishBlockers |
7 | | |
8 | | '''Major bits left over:''' |
9 | | * Getters and Setters |
10 | | * toString/valueOf |
11 | | * It occurs to me that these could both (s|g)etters and toString could be "trivially" handled through the standard js -> native -> js call model -- at least in the short-medium term |
12 | | * eval |
13 | | |
14 | | '''List of tasks in no order -- pick one, tell everyone what you're doing: |
| 8 | See SquirrelFishBlockers. |
| 9 | |
| 10 | '''Lost optimizations''' |
| 11 | |
| 12 | Some optimizations have been temporarily lost as part of the squirrelfish work. Other speedups seem to make up for them, so they could be restored either before or after merging back to trunk. |
| 13 | |
| 14 | * optimized multiscope access [https://bugs.webkit.org/show_bug.cgi?id=18645 18645] |
| 15 | * optimized access to global built-ins (originally done in [http://trac.webkit.org/projects/webkit/changeset/31226 r31226]) [https://bugs.webkit.org/show_bug.cgi?id=18646 18646] |
| 16 | * static type inference of things like "numeric less than" and "string add" [https://bugs.webkit.org/show_bug.cgi?id=18647 18647] |
| 17 | |
| 18 | |
| 19 | |
| 20 | '''What people are working on: |
45 | | ScopeChain hackery |
46 | | |
47 | | '''You could take something from Geoff, or make something up yourself, or do one of these:''' |
48 | | |
49 | | Leftover opcodes: |
50 | | |
51 | | * ArgumentsNode |
52 | | * AssignErrorNode |
53 | | * BreakpointCheckStatement |
54 | | * ConstDeclNode |
55 | | * ConstStatementNode |
56 | | * ElementNode |
57 | | * EvalFunctionCallNode |
58 | | * ParameterNode |
59 | | * PostDecConstNode |
60 | | * PostfixErrorNode |
61 | | * PreDecConstNode |
62 | | * PrefixErrorNode |
63 | | * PropertyNode |
64 | | * ReadModifyConstNode |
65 | | * ThrowNode |
66 | | * TryNode |
67 | | |
68 | | Where SunSpider tests currently fail codegen: |
69 | | |
70 | | * 3d-cube: ungettableGetter |
71 | | * 3d-morph: ungettableGetter |
72 | | * 3d-raytrace: crash on failing toObject conversion for base of call (bad Args to constructor) |
73 | | * access-binary-trees: crash on failing toObject conversion for base of call (bad Args to constructor) |
74 | | * access-fannkuch: crash on failing toObject conversion for base of call (bad Args to constructor) |
75 | | * access-nbody: new expr (NBodySystem) |
76 | | * access-nsieve: ungettableGetter |
77 | | * bitops-3bit-bits-in-byte: SUCCESS |
78 | | * bitops-bits-in-byte: SUCCESS |
79 | | * bitops-bitwise-and: SUCCESS |
80 | | * bitops-nsieve-bits: ungettableGetter |
81 | | * controlflow-recursive: ungettableGetter |
82 | | * crypto-aes: crash on failing toObject conversion for base of call (bad Args to constructor) |
83 | | * crypto-md5: ungettableGetter |
84 | | * crypto-sha1: ungettableGetter |
85 | | * date-format-tofte: local eval - eval(ia[ij] + "()") |
86 | | * date-format-xparb: bracket call - this[func]() |
87 | | * math-cordic: ungettableGetter |
88 | | * math-partial-sums: crash on failing toObject conversion for base of call (bad Args to constructor) |
89 | | * math-spectral-norm: ungettableGetter |
90 | | * regexp-dna: regexp literal |
91 | | * string-base64: crash on failing toObject conversion for base of call (bad Args to constructor) |
92 | | * string-fasta: crash on failing toObject conversion for base of call (bad Args to constructor) |
93 | | * string-tagcloud: trying to get from a base register containing 0x0 (bad codegen?) |
94 | | * string-unpack-code: crash on failing toObject conversion for base of call (bad Args to constructor) |
95 | | * string-validate-input: regexp literal |
96 | | |
97 | | Harness failures: |
98 | | |
99 | | * sunspider-analyze-results: KJS::resolve SHOULD NEVER BE REACHED |
100 | | * sunspider-compare-results: SUCCESS (but not running yet) |
101 | | * sunspider-standalone-compare: KJS::resolve SHOULD NEVER BE REACHED |
102 | | * sunspider-standalone-driver: new expr (invoking Array constructor) |
| 46 | Organizing remaining blocker issues. |
| 47 | |
| 48 | '''Assorted notes, some of these may be obsolete''' |