Skip to content

Commit 5938478

Browse files
committed
Use esbuild to minify prelude
1 parent f05b53c commit 5938478

File tree

7 files changed

+27
-82
lines changed

7 files changed

+27
-82
lines changed

circle.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,6 @@ jobs:
7272
executor: gopherjs
7373
steps:
7474
- setup_and_install_gopherjs
75-
- run:
76-
name: Check minified prelude
77-
command: |
78-
set -e
79-
go generate github.com/gopherjs/gopherjs/compiler/prelude
80-
diff -u <(echo -n) <(git status --porcelain)
8175
- run:
8276
name: Check gofmt
8377
command: diff -u <(echo -n) <(gofmt -d .)

compiler/compiler.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ func WriteProgramCode(pkgs []*Archive, w *SourceMapFilter, goVersion string) err
266266

267267
preludeJS := prelude.Prelude
268268
if minify {
269-
preludeJS = prelude.Minified
269+
preludeJS = prelude.Minified()
270270
}
271271
if _, err := io.WriteString(w, preludeJS); err != nil {
272272
return err

compiler/prelude/genmin.go

Lines changed: 0 additions & 64 deletions
This file was deleted.

compiler/prelude/prelude.go

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ package prelude
22

33
import (
44
_ "embed"
5-
)
5+
"fmt"
66

7-
//go:generate go run genmin.go
7+
"github.com/evanw/esbuild/pkg/api"
8+
)
89

910
// Prelude is the GopherJS JavaScript interop layer.
1011
var Prelude = prelude + numeric + types + goroutines + jsmapping
@@ -23,3 +24,20 @@ var jsmapping string
2324

2425
//go:embed goroutines.js
2526
var goroutines string
27+
28+
func Minified() string {
29+
result := api.Transform(Prelude, api.TransformOptions{
30+
Target: api.ES2015,
31+
MinifyWhitespace: true,
32+
MinifyIdentifiers: true,
33+
MinifySyntax: true,
34+
Charset: api.CharsetUTF8,
35+
LegalComments: api.LegalCommentsEndOfFile,
36+
})
37+
if len(result.Errors) > 0 {
38+
e := result.Errors[0]
39+
panic(fmt.Sprintf("%d:%d: %s\n%s\n", e.Location.Line, e.Location.Column, e.Text, e.Location.LineText))
40+
}
41+
return string(result.Code)
42+
43+
}

compiler/prelude/prelude_min.go

Lines changed: 0 additions & 6 deletions
This file was deleted.

go.mod

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ module github.com/gopherjs/gopherjs
33
go 1.18
44

55
require (
6+
github.com/evanw/esbuild v0.18.0
67
github.com/fsnotify/fsnotify v1.5.1
78
github.com/google/go-cmp v0.5.7
89
github.com/neelance/astrewrite v0.0.0-20160511093645-99348263ae86
@@ -14,7 +15,7 @@ require (
1415
github.com/visualfc/goembed v0.3.3
1516
golang.org/x/crypto v0.0.0-20220411220226-7b82a4e95df4
1617
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
17-
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad
18+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8
1819
golang.org/x/tools v0.1.10
1920
)
2021

go.sum

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5y
6666
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
6767
github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
6868
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
69+
github.com/evanw/esbuild v0.18.0 h1:zJrquhC5ZiricRVQxMQTWqO8zYcV7F7OfUXstB9Ucbg=
70+
github.com/evanw/esbuild v0.18.0/go.mod h1:iINY06rn799hi48UqEnaQvVfZWe6W9bET78LbvN8VWk=
6971
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
7072
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
7173
github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
@@ -399,8 +401,8 @@ golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7w
399401
golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
400402
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
401403
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
402-
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad h1:ntjMns5wyP/fN65tdBD4g8J5w8n015+iIIs9rtjXkY0=
403-
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
404+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8 h1:0A+M6Uqn+Eje4kHMK80dtF3JCXC4ykBgQG4Fe06QRhQ=
405+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
404406
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
405407
golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 h1:EH1Deb8WZJ0xc0WK//leUHXcX9aLE5SymusoTmMZye8=
406408
golang.org/x/term v0.0.0-20220411215600-e5f449aeb171/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=

0 commit comments

Comments
 (0)