We crawled the top 1000 websites with the eval trick applied to scripts. The eval trick rewrites each script into smaller blocks of eval calls, creating V8 execution contexts that maps to smaller blocks of source code. The unit here is execution context, not script anymore.
Size: 1B~6MB, average 1.2kB, median 48B, total 26.2GB.
Most scripts broken down, but some persisted.
Rewritten contexts cover 23.3GB (89.14%) of source code.
Some rewritten contexts are still large, probably because of class, else branch, etc.
Still no significant correlation between anything.
Half of the contexts by size do not call any APIs, 84% by count.
Coverage: 86% classified by count, 87% by size. By size, 49.12% silent + 38% classified + 12.87% no-sphere.
By size, 98% (3.3GB) of no-sphere contexts make less than 100 API calls.
By size, 80% (667MB) of no-sphere contexts are rewritten.
One eighth of contexts by size fall into all sure categories (12.37%, 3235.2MB), which is 1/3 of all contexts belonging to some sphere.
Much less than previous results, but still high.
Feature
Count
Percentage (%)
Size (MB)
Size Percentage (%)
Total Contexts
21027954
-
26163.2
-
Silent Contexts
17572814
83.57
12850.4
49.12
Frontend Processing
338273
1.61
9469.6
36.19
DOM Element Generation
72286
0.34
6250.1
23.89
UX Enhancement
26536
0.13
5392.0
20.61
Extensional Features
32647
0.16
5617.2
21.47
Has Request
16821
0.08
4318.8
16.51
Queries Element
120844
0.57
7719.9
29.51
Uses Storage
26081
0.12
5142.6
19.66
Feature Combination
Frontend Processing
DOM Element Generation
UX Enhancement
Extensional Features
Has Request
Queries Element
DOM Element Generation
20763 (0.10%), 5924.2MB (22.64%)
-
-
-
-
-
UX Enhancement
15544 (0.07%), 5229.6MB (19.99%)
12910 (0.06%), 4537.7MB (17.34%)
-
-
-
-
Extensional Features
13557 (0.06%), 5540.2MB (21.18%)
6207 (0.03%), 4006.9MB (15.31%)
5369 (0.03%), 3667.5MB (14.02%)
-
-
-
Has Request
10514 (0.05%), 4276.4MB (16.35%)
5694 (0.03%), 3081.3MB (11.78%)
4519 (0.02%), 3041.1MB (11.62%)
4926 (0.02%), 3572.3MB (13.65%)
-
-
Queries Element
33064 (0.16%), 7174.1MB (27.42%)
29577 (0.14%), 5575.6MB (21.31%)
15820 (0.08%), 4875.0MB (18.63%)
7871 (0.04%), 4812.3MB (18.39%)
7730 (0.04%), 3857.2MB (14.74%)
-
Uses Storage
13332 (0.06%), 5067.7MB (19.37%)
7018 (0.03%), 3569.3MB (13.64%)
5109 (0.02%), 3400.2MB (13.00%)
5215 (0.02%), 3815.2MB (14.58%)
6573 (0.03%), 3583.0MB (13.69%)
9930 (0.05%), 4640.1MB (17.74%)
Feature Combination
Scripts Count (%)
Size (MB) (%)
Frontend Processing & DOM Element Generation & UX Enhancement
10291 (0.05%)
4483.3MB (17.14%)
Frontend Processing & DOM Element Generation & Extensional Features
6022 (0.03%)
3975.0MB (15.19%)
Frontend Processing & UX Enhancement & Extensional Features
5241 (0.02%)
3664.5MB (14.01%)
DOM Element Generation & UX Enhancement & Extensional Features