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 66 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: 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: 764698
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: 771636
Blocks: 163924
Blocks: 170799
Depends on: 773519
Depends on: 773520
Depends on: 773780
Depends on: 773911
Depends on: 774970
Depends on: 775844
Depends on: 775845
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: 768692
Depends on: 788532
Depends on: 789261
Blocks: 789944
Depends on: 790273
Blocks: 100499
Blocks: 791225
Depends on: 793267
Depends on: 795896
Blocks: 800775
Depends on: 801819
Depends on: 803106
Depends on: 803127
Depends on: 803129
Depends on: 803157
Blocks: 524423
Depends on: 807224
Depends on: 807697, 807700
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: 811632
Blocks: 409737
Depends on: 812392
Depends on: 812617
Depends on: 813419
Depends on: 813423
Blocks: 814234
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: 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: 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: 825053
Depends on: 825196
Depends on: 824970
Depends on: 825527
Depends on: 825628
Depends on: 826740
Depends on: 827158
Depends on: 827404
Depends on: 827823
Depends on: 828000
Depends on: 829248
Depends on: 832014
Depends on: 834877
Depends on: 835417
Depends on: 837416
Depends on: 837520
Depends on: 837645
Depends on: 838146
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: 839056
No longer depends on: 839056
Depends on: 839056
Depends on: 839088
Depends on: 839105
Depends on: 839439
Depends on: 839447
Depends on: 840201
Depends on: 840559
Depends on: 841014
Depends on: 841289
Depends on: 841429
Depends on: 841444
Depends on: 841484
Depends on: 802560
Depends on: 843261
Depends on: 843264
Depends on: 843272
Depends on: 843355
Depends on: 843627
Depends on: 844169
Depends on: 844904
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: 850442
Depends on: 851075
Depends on: 851162
Depends on: 851178
Depends on: 851282
Depends on: 851287
Depends on: 851639
Depends on: 851917
Depends on: 852620
No longer depends on: 854323
Depends on: 854626
Depends on: 855611
Depends on: 855971
Depends on: 856338
Depends on: 856640
Depends on: 856820
Depends on: 856819
Depends on: 852219
Depends on: 856911
Depends on: 856841
Depends on: 858606
Depends on: 858741
Depends on: 858893
Depends on: 859808
Depends on: 859878
Depends on: 859901
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: 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: 872377
Depends on: 874105
Depends on: 877281
Depends on: 691017
Depends on: 878447
Depends on: 883493
Depends on: 886110
Depends on: 887524
Depends on: 889014
Depends on: 886755
Depends on: 890382
Depends on: 890405
Depends on: 892336
Depends on: 892687
Depends on: 897185
Depends on: 899210
Depends on: 903571
Depends on: 895758
Depends on: 903873
Depends on: 905392
Depends on: 906616
Depends on: 906899
Depends on: 909581
Depends on: 911333
Depends on: 914675
Depends on: 915368
No longer depends on: 915368
Depends on: 915368
Depends on: 915419
Depends on: 915971
Depends on: 916879
Depends on: 917539
Depends on: 917958
Depends on: 918011
Depends on: 925382
Depends on: 882541
Depends on: 928114
Depends on: 928535
Depends on: 929112
Depends on: 929554
Depends on: 929609
Depends on: 932409
Depends on: 932505
Depends on: 933378
Depends on: 933966
Depends on: 935362
Depends on: 935855
Depends on: 945788
Depends on: 949078
Depends on: 949271
Depends on: 949264
Depends on: 876238
Depends on: 949292
Depends on: 949445
Depends on: 950523
Depends on: 950657
Depends on: 950728
Depends on: 952475
Depends on: 952486
Depends on: 958540
Depends on: 958667
Depends on: 959677
Depends on: 960508
Depends on: 961116
Depends on: 963382
Depends on: 963321
Depends on: 942631
Depends on: 963388
Depends on: 964061
Depends on: 965992
Depends on: 968335
Depends on: 976305
Depends on: 976307
Depends on: 981845
Depends on: 983029
Depends on: 983228
Depends on: 983300
Depends on: 983301
Depends on: 985796
Depends on: 986455
Depends on: 986837
Depends on: 926712
Depends on: 987479
Depends on: 1017428
Depends on: 1021670
Depends on: 1023762
Depends on: 1027095
Depends on: 1029104
No longer blocks: 754772
Depends on: 1048659
Blocks: 1053271
Depends on: 1053917
Depends on: 1053920
Depends on: 1054029
Depends on: 1056316
Depends on: 1056325
Depends on: 1007631
Depends on: 944014
Depends on: 1063879
Depends on: 1063878
Depends on: 1047483
Depends on: 1064379
Depends on: 1030192
Depends on: 1068740
Depends on: 1071490
Depends on: 1071615
Depends on: 1073766
Depends on: 1077393
Depends on: 1078744
Depends on: 1080503
Depends on: 1081692
Depends on: 1084001
Depends on: 1085061
Depends on: 1085062
Depends on: 1087398
Depends on: 1087444
Depends on: 1089079
Depends on: 1094006
Depends on: 1096328
Depends on: 1100375
Depends on: 1100757
Depends on: 1105614
Depends on: 1109924
Depends on: 1117269
Depends on: 1124814
Depends on: 1132934
Depends on: 1135803
Depends on: 1135792
Depends on: 1135810
Blocks: 156449
Depends on: 1136896
Depends on: 1146235
Depends on: 1146234
Depends on: 1146333
Depends on: 1155340
Depends on: 1155342
Depends on: 1155796
Depends on: 1155942
Depends on: 1189822
Depends on: 1207321
No longer blocks: 1053271
Depends on: 1039986
Depends on: 1223523
Depends on: 1224090
Depends on: 1224091
Depends on: 1224664
Depends on: 1085293
Depends on: 1237503
Depends on: 1243438
Depends on: 1247346
Depends on: 1252211
Depends on: 1254293
Depends on: 1255247
Depends on: 1258585
Depends on: 1265770
Depends on: 1270349
Depends on: 1270601
Depends on: 1289467
Depends on: 1297411
Depends on: 1297480
Depends on: 1297304
Depends on: 1298410
Depends on: 1307115
Depends on: 1315135
Depends on: 1321738
Depends on: 1321835
Depends on: 1323274
Depends on: 1323930
Depends on: 1324178
Depends on: 1326105
Depends on: 1326522
Depends on: 1330671
Depends on: 1332713
Depends on: 1333117
Depends on: 1333556
Depends on: 1336319
Depends on: 1330699
Depends on: 1338417
Depends on: 1363870
Depends on: 1363874
Depends on: 1414359
Depends on: 1414289
Blocks: 502718
Blocks: 428946
Blocks: 459829
Priority: -- → P2
Blocks: 174578
Depends on: 1478671
Blocks: 699506
Component: DOM → DOM: Core & HTML
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.