|
Use static type information from IDL to streamline the wrapping and unwrapping process
between DOM nodes and JS objects.
The basic idea is that, IDL files provide static type information. Certain types, such as subtypes of Node,
only need 'NODE' has type for wrapping and unwrapping. So, intead of going through a gigatic switch statement,
IDL compiler generates fast path for know types, the CL only does it for Node and subtypes.
I have seen it improves DOM-peerable example by 5% when running standalone, and 35% when running with
whole Dromaeo tests.
I missed the another point of this CB. It removed expensive MaybeDOMWrapper checks in production code. It contributes a lot to the overhead.
Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=2490
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+521 lines, -380 lines) |
Patch |
|
M |
webkit/port/DerivedSources.make
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
webkit/port/bindings/scripts/CodeGenerator.pm
|
View
|
|
2 chunks |
+35 lines, -0 lines |
2 comments
|
Download
|
|
M |
webkit/port/bindings/scripts/CodeGeneratorV8.pm
|
View
|
|
20 chunks |
+65 lines, -24 lines |
0 comments
|
Download
|
|
M |
webkit/port/bindings/scripts/IDLParser.pm
|
View
|
|
4 chunks |
+27 lines, -0 lines |
1 comment
|
Download
|
|
M |
webkit/port/bindings/v8/v8_collection.h
|
View
|
|
8 chunks |
+72 lines, -10 lines |
0 comments
|
Download
|
|
M |
webkit/port/bindings/v8/v8_custom.cpp
|
View
|
|
106 chunks |
+173 lines, -199 lines |
0 comments
|
Download
|
|
M |
webkit/port/bindings/v8/v8_events.cpp
|
View
|
|
2 chunks |
+2 lines, -2 lines |
0 comments
|
Download
|
|
M |
webkit/port/bindings/v8/v8_npobject.cpp
|
View
|
|
2 chunks |
+4 lines, -4 lines |
0 comments
|
Download
|
|
M |
webkit/port/bindings/v8/v8_proxy.h
|
View
|
|
7 chunks |
+37 lines, -36 lines |
2 comments
|
Download
|
|
M |
webkit/port/bindings/v8/v8_proxy.cpp
|
View
|
|
25 chunks |
+105 lines, -104 lines |
2 comments
|
Download
|
Total messages: 4 (0 generated)
|