Commits:
-
abe0cfdb
by Pier Angelo Vendrame at 2026-01-28T10:05:12+01:00
Bug 41702: Switch from uglifyjs to terser.
Mozilla is using terser, so follow them and use terser as well.
13 changed files:
Changes:
projects/browser/build.android
| ... |
... |
@@ -3,12 +3,6 @@ |
|
3
|
3
|
|
|
4
|
4
|
[% pc('android-sdk', 'var/setup', { sdk_tarfile => c("input_files_by_name/android-sdk") }) %]
|
|
5
|
5
|
|
|
6
|
|
-[% IF c("var/android-x86_64") -%]
|
|
7
|
|
- tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/node') %]
|
|
8
|
|
- export PATH=/var/tmp/dist/node/bin:$PATH
|
|
9
|
|
- tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/uglifyjs') %]
|
|
10
|
|
-[% END -%]
|
|
11
|
|
-
|
|
12
|
6
|
# Bundle our extension(s).
|
|
13
|
7
|
#
|
|
14
|
8
|
# NoScript will be copied over to the profile folder
|
| ... |
... |
@@ -65,11 +59,6 @@ function generate_apk { |
|
65
|
59
|
[% IF c("var/tor-browser") -%]
|
|
66
|
60
|
cp -a ../moat_countries.json ../tor/pluggable_transports/pt_config.json chrome/toolkit/content/global/
|
|
67
|
61
|
[% END -%]
|
|
68
|
|
- [% IF c("var/android-x86_64") -%]
|
|
69
|
|
- find actors chrome modules moz-src \
|
|
70
|
|
- -name '*.js' -or -name '*.mjs' \
|
|
71
|
|
- -exec /var/tmp/dist/uglifyjs/bin/uglifyjs --in-situ {} \;
|
|
72
|
|
- [% END -%]
|
|
73
|
62
|
[% IF !c("var/android-armv7") -%]
|
|
74
|
63
|
rm -rf armeabi-v7a
|
|
75
|
64
|
[% END -%]
|
projects/browser/config
| ... |
... |
@@ -160,9 +160,3 @@ input_files: |
|
160
|
160
|
# tor-browser-build#40920
|
|
161
|
161
|
- filename: sort-baseline.py
|
|
162
|
162
|
enable: '[% c("var/android") %]' |
|
163
|
|
- - project: node
|
|
164
|
|
- name: node
|
|
165
|
|
- enable: '[% c("var/android-x86_64") %]'
|
|
166
|
|
- - project: uglifyjs
|
|
167
|
|
- name: uglifyjs
|
|
168
|
|
- enable: '[% c("var/android-x86_64") %]' |
projects/geckoview/build_common
| ... |
... |
@@ -27,6 +27,8 @@ export NIMBUS_FML=/var/tmp/dist/application-services/nimbus-fml |
|
27
|
27
|
|
|
28
|
28
|
tar -C /var/tmp/build -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
|
|
29
|
29
|
|
|
|
30
|
+tar -C /var/tmp/build/[% project %]-*/tools/terser -xf [% c("input_files_by_name/terser") %]
|
|
|
31
|
+
|
|
30
|
32
|
[% c("var/set_MOZ_BUILD_DATE") %]
|
|
31
|
33
|
|
|
32
|
34
|
export JAVA_HOME=/usr/lib/jvm/java-1.17.0-openjdk-amd64
|
projects/geckoview/config
| ... |
... |
@@ -132,6 +132,9 @@ steps: |
|
132
|
132
|
name: glean-wheels
|
|
133
|
133
|
sha256sum: '[% pc("glean-parser", "var/glean_wheels_sha256sum") %]'
|
|
134
|
134
|
enable: '[% !c("var/generate_gradle_dependencies_list") %]'
|
|
|
135
|
+ - project: terser
|
|
|
136
|
+ name: terser
|
|
|
137
|
+ pkg_type: build
|
|
135
|
138
|
- name: tor-expert-bundle-aar
|
|
136
|
139
|
project: tor-expert-bundle-aar
|
|
137
|
140
|
pkg_type: build
|
| ... |
... |
@@ -190,6 +193,8 @@ input_files: |
|
190
|
193
|
- project: oss-licenses-plugin
|
|
191
|
194
|
name: oss-licenses-plugin
|
|
192
|
195
|
enable: '[% !c("var/generate_gradle_dependencies_list") %]'
|
|
|
196
|
+ - project: terser
|
|
|
197
|
+ name: terser
|
|
193
|
198
|
- name: tor-expert-bundle-aar
|
|
194
|
199
|
project: tor-expert-bundle-aar
|
|
195
|
200
|
- project: firefox-l10n
|
projects/geckoview/list_toolchain_updates_checks
| ... |
... |
@@ -128,3 +128,9 @@ EOF |
|
128
|
128
|
needed=$(ls third_party/python/glean_parser | perl -ne "$p")
|
|
129
|
129
|
current='[% pc("glean-parser", "version") %]'
|
|
130
|
130
|
check_update_needed glean-parser "$needed" "$current"
|
|
|
131
|
+
|
|
|
132
|
+# terser
|
|
|
133
|
+
|
|
|
134
|
+needed=$(jq -r '.dependencies.terser' tools/terser/package.json)
|
|
|
135
|
+current='[% pc("terser", "version") %]'
|
|
|
136
|
+check_update_needed terser "$needed" "$current" |
projects/terser/README.md
|
|
1
|
+Mozilla switched from JSMin (which produced invalid JS under some circumstances)
|
|
|
2
|
+with to terser in
|
|
|
3
|
+[Bug 1967968](https://bugzilla.mozilla.org/show_bug.cgi?id=1967968).
|
|
|
4
|
+
|
|
|
5
|
+However, they did not version it.
|
|
|
6
|
+Instead, they create an archive in their CI starting from a `package-lock.json`.
|
|
|
7
|
+
|
|
|
8
|
+This project is the replacement for that archive.
|
|
|
9
|
+
|
|
|
10
|
+When updating Firefox, remember to update this project too, if needed. |
projects/terser/build
|
|
1
|
+#!/bin/bash
|
|
|
2
|
+[% c("var/set_default_env") -%]
|
|
|
3
|
+
|
|
|
4
|
+mkdir -p /var/tmp/dist
|
|
|
5
|
+tar -C /var/tmp/dist -xf $rootdir/[% c('input_files_by_name/node') %]
|
|
|
6
|
+export PATH=/var/tmp/dist/node/bin:$PATH
|
|
|
7
|
+
|
|
|
8
|
+# See also taskcluster/scripts/misc/terser.sh.
|
|
|
9
|
+
|
|
|
10
|
+mkdir terser
|
|
|
11
|
+mv package*.json terser
|
|
|
12
|
+cd terser
|
|
|
13
|
+npm ci --loglevel=error
|
|
|
14
|
+
|
|
|
15
|
+[% c('tar', {
|
|
|
16
|
+ tar_src => [ 'node_modules' ],
|
|
|
17
|
+ tar_args => '-caf ' _ dest_dir _ '/' _ c('filename'),
|
|
|
18
|
+ }) %] |
projects/terser/config
|
|
1
|
+version: '5.44.0'
|
|
|
2
|
+filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
|
|
|
3
|
+container:
|
|
|
4
|
+ use_container: 1
|
|
|
5
|
+ disable_network:
|
|
|
6
|
+ build: 0
|
|
|
7
|
+input_files:
|
|
|
8
|
+ - project: container-image
|
|
|
9
|
+ name: container-image
|
|
|
10
|
+ - project: node
|
|
|
11
|
+ name: node
|
|
|
12
|
+ # These files are in tools/terser in Firefox's source tree
|
|
|
13
|
+ - filename: 'package.json'
|
|
|
14
|
+ - filename: 'package-lock.json' |
projects/terser/package-lock.json
|
|
1
|
+{
|
|
|
2
|
+ "name": "terser",
|
|
|
3
|
+ "version": "1.0.0",
|
|
|
4
|
+ "lockfileVersion": 3,
|
|
|
5
|
+ "requires": true,
|
|
|
6
|
+ "packages": {
|
|
|
7
|
+ "": {
|
|
|
8
|
+ "version": "1.0.0",
|
|
|
9
|
+ "dependencies": {
|
|
|
10
|
+ "terser": "5.44.0"
|
|
|
11
|
+ }
|
|
|
12
|
+ },
|
|
|
13
|
+ "node_modules/@jridgewell/gen-mapping": {
|
|
|
14
|
+ "version": "0.3.13",
|
|
|
15
|
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
|
|
|
16
|
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
|
|
|
17
|
+ "license": "MIT",
|
|
|
18
|
+ "dependencies": {
|
|
|
19
|
+ "@jridgewell/sourcemap-codec": "^1.5.0",
|
|
|
20
|
+ "@jridgewell/trace-mapping": "^0.3.24"
|
|
|
21
|
+ }
|
|
|
22
|
+ },
|
|
|
23
|
+ "node_modules/@jridgewell/resolve-uri": {
|
|
|
24
|
+ "version": "3.1.2",
|
|
|
25
|
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
|
|
|
26
|
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
|
|
|
27
|
+ "license": "MIT",
|
|
|
28
|
+ "engines": {
|
|
|
29
|
+ "node": ">=6.0.0"
|
|
|
30
|
+ }
|
|
|
31
|
+ },
|
|
|
32
|
+ "node_modules/@jridgewell/source-map": {
|
|
|
33
|
+ "version": "0.3.11",
|
|
|
34
|
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.11.tgz",
|
|
|
35
|
+ "integrity": "sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==",
|
|
|
36
|
+ "license": "MIT",
|
|
|
37
|
+ "dependencies": {
|
|
|
38
|
+ "@jridgewell/gen-mapping": "^0.3.5",
|
|
|
39
|
+ "@jridgewell/trace-mapping": "^0.3.25"
|
|
|
40
|
+ }
|
|
|
41
|
+ },
|
|
|
42
|
+ "node_modules/@jridgewell/sourcemap-codec": {
|
|
|
43
|
+ "version": "1.5.5",
|
|
|
44
|
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
|
|
|
45
|
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
|
|
|
46
|
+ "license": "MIT"
|
|
|
47
|
+ },
|
|
|
48
|
+ "node_modules/@jridgewell/trace-mapping": {
|
|
|
49
|
+ "version": "0.3.30",
|
|
|
50
|
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz",
|
|
|
51
|
+ "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==",
|
|
|
52
|
+ "license": "MIT",
|
|
|
53
|
+ "dependencies": {
|
|
|
54
|
+ "@jridgewell/resolve-uri": "^3.1.0",
|
|
|
55
|
+ "@jridgewell/sourcemap-codec": "^1.4.14"
|
|
|
56
|
+ }
|
|
|
57
|
+ },
|
|
|
58
|
+ "node_modules/acorn": {
|
|
|
59
|
+ "version": "8.15.0",
|
|
|
60
|
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
|
|
|
61
|
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
|
|
|
62
|
+ "license": "MIT",
|
|
|
63
|
+ "bin": {
|
|
|
64
|
+ "acorn": "bin/acorn"
|
|
|
65
|
+ },
|
|
|
66
|
+ "engines": {
|
|
|
67
|
+ "node": ">=0.4.0"
|
|
|
68
|
+ }
|
|
|
69
|
+ },
|
|
|
70
|
+ "node_modules/buffer-from": {
|
|
|
71
|
+ "version": "1.1.2",
|
|
|
72
|
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
|
|
73
|
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
|
|
|
74
|
+ "license": "MIT"
|
|
|
75
|
+ },
|
|
|
76
|
+ "node_modules/commander": {
|
|
|
77
|
+ "version": "2.20.3",
|
|
|
78
|
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
|
|
79
|
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
|
|
|
80
|
+ "license": "MIT"
|
|
|
81
|
+ },
|
|
|
82
|
+ "node_modules/source-map": {
|
|
|
83
|
+ "version": "0.6.1",
|
|
|
84
|
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
|
|
85
|
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
|
|
86
|
+ "license": "BSD-3-Clause",
|
|
|
87
|
+ "engines": {
|
|
|
88
|
+ "node": ">=0.10.0"
|
|
|
89
|
+ }
|
|
|
90
|
+ },
|
|
|
91
|
+ "node_modules/source-map-support": {
|
|
|
92
|
+ "version": "0.5.21",
|
|
|
93
|
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
|
|
|
94
|
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
|
|
|
95
|
+ "license": "MIT",
|
|
|
96
|
+ "dependencies": {
|
|
|
97
|
+ "buffer-from": "^1.0.0",
|
|
|
98
|
+ "source-map": "^0.6.0"
|
|
|
99
|
+ }
|
|
|
100
|
+ },
|
|
|
101
|
+ "node_modules/terser": {
|
|
|
102
|
+ "version": "5.44.0",
|
|
|
103
|
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.0.tgz",
|
|
|
104
|
+ "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==",
|
|
|
105
|
+ "license": "BSD-2-Clause",
|
|
|
106
|
+ "dependencies": {
|
|
|
107
|
+ "@jridgewell/source-map": "^0.3.3",
|
|
|
108
|
+ "acorn": "^8.15.0",
|
|
|
109
|
+ "commander": "^2.20.0",
|
|
|
110
|
+ "source-map-support": "~0.5.20"
|
|
|
111
|
+ },
|
|
|
112
|
+ "bin": {
|
|
|
113
|
+ "terser": "bin/terser"
|
|
|
114
|
+ },
|
|
|
115
|
+ "engines": {
|
|
|
116
|
+ "node": ">=10"
|
|
|
117
|
+ }
|
|
|
118
|
+ }
|
|
|
119
|
+ }
|
|
|
120
|
+} |
projects/terser/package.json
|
|
1
|
+{
|
|
|
2
|
+ "version": "1.0.0",
|
|
|
3
|
+ "description": "Terser _javascript_ minifier for Mozilla builds",
|
|
|
4
|
+ "private": true,
|
|
|
5
|
+ "dependencies": {
|
|
|
6
|
+ "terser": "5.44.0"
|
|
|
7
|
+ }
|
|
|
8
|
+} |
projects/uglifyjs/README.md
deleted
|
1
|
|
-This project fetches UglifyJS without any other changes. |
projects/uglifyjs/build
deleted
|
1
|
|
-#!/bin/bash
|
|
2
|
|
-tar -xf [% project %]-[% c('version') %].tar.[% c('compress_tar') %]
|
|
3
|
|
-mv [% project %]-[% c('version') %] [% project %]
|
|
4
|
|
-tar -caf [% dest_dir %]/[% c("filename") %] [% project %] |
projects/uglifyjs/config
deleted
|
1
|
|
-version: 3.19.3
|
|
2
|
|
-filename: 'uglifyjs-[% c("version") %]-[% c("var/build_id") %].tar.[% c("compress_tar") %]'
|
|
3
|
|
-git_hash: 3ea33afc72462a470466473208a33379b7204765
|
|
4
|
|
-git_url: https://github.com/mishoo/UglifyJS.git |
|