Open Bug 580070 (ParisBindings) Opened 14 years ago Updated 2 years ago

New JSClass-based DOM bindings

Categories

(Core :: DOM: Core & HTML, defect, P2)

Other Branch
x86
macOS
defect

Tracking

()

People

(Reporter: gal, Unassigned)

References

(Depends on 65 open bugs)

Details

No description provided.
Blocks: 622298
Summary: experimental DOM bindings for Ins/Del using proxies → New JSClass-based DOM bindings
Depends on: 659350
Depends on: 660233
Assignee: gal → nobody
Depends on: 660235
Depends on: 648801
Depends on: 660237
No longer depends on: 660235
Blocks: 456151
Blocks: 684696
Blocks: 605271
Depends on: 517143
Blocks: 706131
Depends on: 708061
Blocks: 576121
Blocks: 390411
Depends on: 687332
Depends on: 732377
Depends on: 738593
Depends on: 738630
Depends on: 739541
Depends on: 739898
Depends on: 740083
Depends on: 742141
Depends on: 742144
Depends on: 742145
Depends on: 742149
Depends on: 742150
Depends on: 742151
Depends on: 742152
Depends on: 742153
Depends on: 742164
Depends on: 742165
Depends on: 742167
Depends on: 742168
Depends on: 742170
Depends on: 742171
Depends on: 742181
Depends on: 742182
Depends on: 742184
Depends on: 742185
Depends on: 742186
Depends on: 742187
Depends on: 742188
Depends on: 742189
Depends on: 742191
Depends on: 742192
Depends on: 742193
Depends on: 742194
Depends on: 742195
Depends on: 742197
Depends on: 742198
Depends on: 742199
Depends on: 742200
Depends on: 742201
Depends on: 742202
Depends on: 742203
Depends on: 742204
Depends on: 742205
Depends on: 742206
Depends on: 742209
Depends on: 742210
Depends on: 742211
Depends on: 742212
Depends on: 742213
Depends on: 742214
Depends on: 742217
Depends on: 742422
Depends on: 742425
Depends on: 743820
Depends on: 743906
Depends on: 738525
No longer blocks: 697271
Depends on: 745897
Depends on: 746570
Depends on: 747066
Depends on: 747285
Depends on: 747290
Depends on: 747815
Depends on: 747819
Blocks: 687042, 653526
No longer depends on: 745897
Depends on: 748266
Depends on: 749485
Depends on: 749535
Depends on: 749536
Depends on: 749866
Depends on: 751926
Depends on: 752224
Depends on: 752397
Depends on: 753517
Depends on: 753522
Blocks: 754772
Depends on: 755080
Depends on: 755459
Depends on: 755636
No longer depends on: 752397
Depends on: 752397
Depends on: 757164
No longer depends on: 752397
Depends on: 759622
Depends on: 760095
Depends on: 749101
Depends on: 760749
Depends on: 761707
Depends on: 761772
Depends on: 761882
Depends on: 763643
Depends on: 763724
Depends on: 763911
Depends on: 764539
Depends on: 764698
Depends on: 765464
Depends on: 766615
Depends on: 767546
Depends on: 767924
Depends on: 767926
Depends on: 767927
Depends on: 767929
Depends on: 767930
Depends on: 767931
Depends on: 767933
Depends on: 768537
Depends on: 768793
Depends on: 771636
Blocks: 163924
Blocks: 170799
Depends on: 773326
Depends on: 773519
Depends on: 773520
Depends on: 773780
Depends on: 773911
Depends on: 774705
Depends on: 774757
Depends on: 774970
Depends on: 775289
Depends on: 775844
Depends on: 775845
Depends on: 776224
Depends on: 776382
Depends on: 776536
Depends on: 775368
Depends on: 777438
Depends on: 777415
Depends on: 778044
Depends on: 778150
Depends on: 766583
Depends on: 779048
Depends on: 785467
Depends on: 785465
Depends on: 785941
Depends on: 786819
Depends on: 787554
Depends on: 788211
Depends on: 788225
Depends on: 768692
Depends on: 788532
Depends on: 789261
Blocks: 789944
Depends on: 790273
Blocks: 100499
Blocks: 791225
Depends on: 792005
Depends on: 793267
Depends on: 795896
Depends on: 796850
Depends on: 796903
Depends on: 796902
Blocks: 800775
Depends on: 801819
Depends on: 803106
Depends on: 803127
Depends on: 803129
Depends on: 803157
Depends on: 803542
Depends on: 803825
Depends on: 804738
Blocks: 524423
Depends on: 807224
Depends on: 807697, 807700
Depends on: 808991
Depends on: 809304
Alias: ParisBindings
Depends on: 809767
Depends on: 809899
Depends on: 809281
Depends on: 808856
Depends on: 810011
Depends on: 810324
Depends on: 810641
Depends on: 810644
Depends on: 768069
Depends on: 811632
Blocks: 409737
Depends on: 812392
Depends on: 812617
Depends on: 813419
Depends on: 813423
Blocks: 814234
Depends on: 815129
Depends on: 815502
Depends on: 816160
Depends on: 816180
Depends on: 816343
Depends on: 816376
Depends on: 816375
Depends on: 816380
Depends on: 816387
Depends on: 816410
Depends on: 816487
Blocks: 234628
Depends on: 817937
Depends on: 818263
Blocks: 612980
Depends on: 819239
Depends on: 819624
Depends on: 819639
Depends on: 819845
No longer blocks: 234628
Depends on: 820657
Are there any performance comparisons for this work? I'd love to see a blog post informing about the ongoing changes and what this means e. g. for DOM performance (with up-to-date numbers). Though this can wait until the majority of Bugs (esp. for document Obj Bindings) have been fixed.
We definitely have performance numbers. See http://dromaeo.com/?id=186075,186085,186086,186076 for example, and more to come as we convert actual DOM nodes and documents and such... There are also the obvious wins on ImageData performance (bug 746773 comment 14) and whatnot, and on WebGL performance. Since the bindings are landing piecemeal and the JS engine is improving in parallel, disentangling the two effects can be difficult, though. I can't tell you which one is responsible for the changes in the Dromaeo dom-query numbers above, for example. So do you want to see numbers comparing to Fx13 (before any of this stuff landed) or some other peformance comparison?
This is indeed helpful. It would be nice to have kind of a summary after all the ParisBindings work is done. Comparing Fx 13 with any current version will probably not tell you very much, as we now have a totally new JIT engine (though comparing Fx 13 to any pre-IM version may help, as well as any comparisons between different IM version). What about having something like AWFY (or actually extend AWFY with Dromaeo)? That may also help with finding regressions.
> as we now have a totally new JIT engine Well. Part of the bindings work was closer integration with the new JIT that's allowed by the new bindings; in fact that's one of the major sources of speedup. So for classes we convert now comparing before/after behavior makes sense, but for classes we converted before fx18 there was a noticeable speedup from Ion landing. > or actually extend AWFY with Dromaeo AWFY runs in a JS shell, so does not have DOM access, last I checked. Something like AWFY for DOM stuff would be great, of course. ;)
Depends on: 821177
Depends on: 821324
Depends on: 821317
Depends on: 821593
Depends on: 815149
Depends on: 820577
Depends on: 821606
Depends on: 816778
Depends on: 791774
Depends on: 819904
Depends on: 822470
Depends on: 823088
Depends on: 807075
Depends on: 804950
Depends on: 824237
Depends on: 824448
Depends on: 824007
Depends on: 824592
Depends on: 824857
Depends on: 824907
Depends on: 824823
Depends on: 824986
Depends on: 825053
Depends on: 825196
Depends on: 825282
Depends on: 825285
Depends on: 824970
Depends on: 825499
Depends on: 825527
Depends on: 825628
Depends on: 825341
Depends on: 826737
Depends on: 826740
Depends on: 827158
Depends on: 827404
Depends on: 827823
Depends on: 828000
Depends on: 829248
Depends on: 830670
Depends on: 831879
Depends on: 832014
Depends on: 832883
Depends on: 834877
Depends on: 835417
Depends on: 836850
Depends on: 837416
Depends on: 837520
Depends on: 837597
Depends on: 837645
Depends on: 837648
Depends on: 838146
Depends on: 838160
Depends on: 838178
Depends on: 838233
Depends on: 838343
Depends on: 838559
Depends on: 838532
Depends on: 838582
Depends on: 838598
Depends on: 838750
Depends on: 839022
Depends on: 839033
Depends on: 839053
Depends on: 839056
No longer depends on: 839056
Depends on: 839056
Depends on: 839088
Depends on: 839105
Depends on: 839116
Depends on: 839179
Depends on: 839439
Depends on: 839447
Depends on: 839483
Depends on: 839912
Depends on: 840201
Depends on: 840559
Depends on: 840857
Depends on: 841014
Depends on: 841289
Depends on: 841429
Depends on: 841442
Depends on: 841444
Depends on: 841447
Depends on: 841466
Depends on: 841484
Depends on: 841488
Depends on: 841493
Depends on: 842498
Depends on: 802560
Depends on: 843261
Depends on: 843264
Depends on: 843272
Depends on: 843355
Depends on: 843627
Depends on: 844169
Depends on: 844457
Depends on: 844904
Depends on: 845248
Depends on: 845666
Depends on: 846972
Depends on: 848332
Depends on: 848339
Depends on: 848386
Depends on: 848387
Depends on: 848390
No longer depends on: 848390
Depends on: 848796
Depends on: 849307
Depends on: 768048
Depends on: 850159
Depends on: 850442
Depends on: 850817
Depends on: 851075
Depends on: 851162
Depends on: 851178
Depends on: 738196
Depends on: 851282
Depends on: 851287
Depends on: 851470
Depends on: 851639
Depends on: 851891
Depends on: 851892
Depends on: 851908
Depends on: 851917
Depends on: 852055
Depends on: 852135
Depends on: 852620
Depends on: 853818
Depends on: 854243
Depends on: 854323
No longer depends on: 854323
Depends on: 854323
Depends on: 854626
Depends on: 855611
Depends on: 855971
Depends on: 856295
Depends on: 856338
Depends on: 856605
Depends on: 856640
Depends on: 856820
Depends on: 856819
Depends on: 852219
Depends on: 856911
Depends on: 856841
Depends on: 856960
Depends on: 858212
Depends on: 858217
Depends on: 858524
Depends on: 858606
Depends on: 858741
Depends on: 858893
Depends on: 859707
Depends on: 859808
Depends on: 859878
Depends on: 859901
Depends on: 861507
Depends on: 861587
Depends on: 861880
Depends on: 863492
Depends on: 863831
Depends on: 863880
Depends on: 863898
Depends on: 863948
Depends on: 863949
Depends on: 863952
Depends on: 863954
Depends on: 863955
Depends on: 863964
Depends on: 864223
Depends on: 768684
Depends on: 865098
Depends on: 865482
Depends on: 865870
Depends on: 865951
Depends on: 865998
Depends on: 856472
Blocks: 866679
Depends on: 868448
Depends on: 868778
Depends on: 868929
Depends on: 869014
Depends on: 869073
Depends on: 869268
Depends on: 868102
No longer depends on: 841447
Depends on: 870217
Depends on: 870678
Depends on: 870856
Depends on: 871226
Depends on: 871287
Depends on: 872377
Depends on: 873417
Depends on: 874033
Depends on: 874105
Depends on: 874212
Depends on: 874787
Depends on: 874788
Depends on: 875784
Depends on: 876240
Depends on: 876602
Depends on: 876605
Depends on: 877358
Depends on: 877281
Depends on: 691017
Depends on: 878401
Depends on: 878447
Depends on: 878533
Depends on: 878600
Depends on: 880367
Depends on: 882653
Depends on: 883493
Depends on: 883615
Depends on: 884897
Depends on: 885982
Depends on: 886110
Depends on: 886247
Depends on: 886270
Depends on: 886289
Depends on: 886416
Depends on: 886420
Depends on: 887524
Depends on: 888591
Depends on: 889014
Depends on: 886755
Depends on: 890364
Depends on: 890382
Depends on: 890405
Depends on: 890684
Depends on: 890854
Depends on: 892336
Depends on: 892493
Depends on: 892540
Depends on: 892687
Depends on: 894448
Depends on: 897185
Depends on: 899210
Depends on: 899972
Depends on: 903571
Depends on: 895758
Depends on: 903778
Depends on: 903873