Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch from jvatic/goja-babel to wvanw/esbuild, ref #77 #91

Merged
merged 2 commits into from
Mar 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 8 additions & 10 deletions engine/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ import (
"sync"
"time"

babel "github.com/jvatic/goja-babel"
"github.com/evanw/esbuild/pkg/api"
log "github.com/sirupsen/logrus"
"github.com/xyproto/algernon/cachemode"
"github.com/xyproto/algernon/lua/pool"
Expand Down Expand Up @@ -230,7 +230,7 @@ type Config struct {
fs *datablock.FileStat

// JSX rendering options
jsxOptions map[string]interface{}
jsxOptions api.TransformOptions

// Convert JSX to HyperApp JS or React JS?
hyperApp bool
Expand Down Expand Up @@ -315,11 +315,12 @@ func New(versionString, description string) (*Config, error) {
description: description,

// JSX rendering options
jsxOptions: map[string]interface{}{
"plugins": []string{
"transform-react-jsx",
"transform-block-scoping",
},
jsxOptions: api.TransformOptions{
Loader: api.LoaderJSX,
MinifyWhitespace: true,
MinifyIdentifiers: true,
MinifySyntax: true,
Charset: api.CharsetUTF8,
},
}
if err := ac.initFilesAndCache(); err != nil {
Expand All @@ -331,9 +332,6 @@ func New(versionString, description string) (*Config, error) {
// File stat cache
ac.fs = datablock.NewFileStat(ac.cacheFileStat, ac.defaultStatCacheRefresh)

// JSX rendering pool
babel.Init(8)

return ac, nil
}

Expand Down
179 changes: 116 additions & 63 deletions engine/rendering.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,13 @@ import (
"bytes"
"fmt"
"html/template"
"io"
"io/ioutil"
"net/http"
"path/filepath"
"strings"

"github.com/eknkc/amber"
babel "github.com/jvatic/goja-babel"
"github.com/evanw/esbuild/pkg/api"

"github.com/russross/blackfriday/v2"
log "github.com/sirupsen/logrus"
"github.com/wellington/sass/compiler"
Expand Down Expand Up @@ -122,6 +121,7 @@ func (ac *Config) LoadRenderFunctions(w http.ResponseWriter, req *http.Request,
} else {
log.Errorf("Could not compile GCSS:\n%s\n%s", err, buf.String())
}

//return 0 // number of results
}
return 0 // number of results
Expand All @@ -132,19 +132,40 @@ func (ac *Config) LoadRenderFunctions(w http.ResponseWriter, req *http.Request,
// Retrieve all the function arguments as a bytes.Buffer
buf := convert.Arguments2buffer(L, true)
// Transform JSX to JavaScript and output the result.
res, err := babel.Transform(&buf, ac.jsxOptions)
if err != nil {
result := api.Transform(buf.String(), ac.jsxOptions)
if len(result.Errors) > 0 {
if ac.debugMode {
// TODO: Use a similar error page as for Lua
fmt.Fprint(w, "Could not generate JavaScript:\n\t"+err.Error()+"\n\n"+buf.String())
fmt.Fprint(w, "Could not generate JavaScript:\n")
for _, errMsg := range result.Errors {
fmt.Fprintf(w, "error: %s %s:%d:%d\n", errMsg.Text, errMsg.Location.File, errMsg.Location.Line, errMsg.Location.Column)
}
for _, warnMsg := range result.Warnings {
fmt.Fprintf(w, "warning: %s %s:%d:%d\n", warnMsg.Text, warnMsg.Location.File, warnMsg.Location.Line, warnMsg.Location.Column)
}
} else {
log.Errorf("Could not generate JavaScript:\n%s\n%s", err, buf.String())
// TODO: Use a similar error page as for Lua
log.Error(w, "Could not generate JavaScript:\n")
for _, errMsg := range result.Errors {
log.Errorf("error: %s %s:%d:%d\n", errMsg.Text, errMsg.Location.File, errMsg.Location.Line, errMsg.Location.Column)
}
for _, warnMsg := range result.Warnings {
log.Errorf("warning: %s %s:%d:%d\n", warnMsg.Text, warnMsg.Location.File, warnMsg.Location.Line, warnMsg.Location.Column)
}
}
return 0 // number of results

}
if res != nil {
io.Copy(w, res)
n, err := w.Write(result.Code)
if err != nil || n == 0 {
if ac.debugMode {
fmt.Fprint(w, "Result from generated JavaScript is empty\n")
} else {
log.Error("Result from generated JavaScript is empty\n")
}
return 0 // number of results
}

return 0 // number of results
}))

Expand All @@ -153,26 +174,40 @@ func (ac *Config) LoadRenderFunctions(w http.ResponseWriter, req *http.Request,
// Retrieve all the function arguments as a bytes.Buffer
buf := convert.Arguments2buffer(L, true)
// Transform JSX to JavaScript and output the result.
res, err := babel.Transform(&buf, ac.jsxOptions)
if err != nil {
result := api.Transform(buf.String(), ac.jsxOptions)
if len(result.Errors) > 0 {
if ac.debugMode {
// TODO: Use a similar error page as for Lua
fmt.Fprint(w, "Could not generate JavaScript:\n\t"+err.Error()+"\n\n"+buf.String())
fmt.Fprint(w, "Could not generate JavaScript:\n")
for _, errMsg := range result.Errors {
fmt.Fprintf(w, "error: %s %s:%d:%d\n", errMsg.Text, errMsg.Location.File, errMsg.Location.Line, errMsg.Location.Column)
}
for _, warnMsg := range result.Warnings {
fmt.Fprintf(w, "warning: %s %s:%d:%d\n", warnMsg.Text, warnMsg.Location.File, warnMsg.Location.Line, warnMsg.Location.Column)
}
} else {
log.Errorf("Could not generate JavaScript:\n%s\n%s", err, buf.String())
// TODO: Use a similar error page as for Lua
log.Error(w, "Could not generate JavaScript:\n")
for _, errMsg := range result.Errors {
log.Errorf("error: %s %s:%d:%d\n", errMsg.Text, errMsg.Location.File, errMsg.Location.Line, errMsg.Location.Column)
}
for _, warnMsg := range result.Warnings {
log.Errorf("warning: %s %s:%d:%d\n", warnMsg.Text, warnMsg.Location.File, warnMsg.Location.Line, warnMsg.Location.Column)
}
}
return 0 // number of results
}
if res != nil {
data, err := ioutil.ReadAll(res)
if err != nil {
log.Error("Could not read bytes from JSX generator:", err)
return 0 // number of results
data := result.Code
// Use "h" instead of "React.createElement" for hyperApp apps
data = bytes.Replace(data, []byte("React.createElement("), []byte("h("), utils.EveryInstance)
n, err := w.Write(data)
if err != nil || n == 0 {
if ac.debugMode {
fmt.Fprint(w, "Result from generated JavaScript is empty\n")
} else {
log.Error("Result from generated JavaScript is empty\n")
}

// Use "h" instead of "React.createElement" for hyperApp apps
data = bytes.Replace(data, []byte("React.createElement("), []byte("h("), utils.EveryInstance)
w.Write(data)
return 0 // number of results
}
return 0 // number of results
}))
Expand Down Expand Up @@ -717,29 +752,38 @@ func (ac *Config) JSXPage(w http.ResponseWriter, req *http.Request, filename str
buf.Write(jsxdata)

// Convert JSX to JS
res, err := babel.Transform(&buf, ac.jsxOptions)
if err != nil {
result := api.Transform(buf.String(), ac.jsxOptions)
if len(result.Errors) > 0 {
if ac.debugMode {
ac.PrettyError(w, req, filename, jsxdata, err.Error(), "jsx")
var sb strings.Builder
sb.WriteString("Could not generate JavaScript:\n")
for _, errMsg := range result.Errors {
sb.WriteString(fmt.Sprintf("error: %s %s:%d:%d\n", errMsg.Text, errMsg.Location.File, errMsg.Location.Line, errMsg.Location.Column))
}
for _, warnMsg := range result.Warnings {
sb.WriteString(fmt.Sprintf("warning: %s %s:%d:%d\n", warnMsg.Text, warnMsg.Location.File, warnMsg.Location.Line, warnMsg.Location.Column))
}
ac.PrettyError(w, req, filename, jsxdata, sb.String(), "jsx")
} else {
log.Errorf("Could not generate javascript:\n%s\n%s", err, buf.String())
// TODO: Use a similar error page as for Lua
log.Error(w, "Could not generate JavaScript:\n")
for _, errMsg := range result.Errors {
log.Errorf("error: %s %s:%d:%d\n", errMsg.Text, errMsg.Location.File, errMsg.Location.Line, errMsg.Location.Column)
}
for _, warnMsg := range result.Warnings {
log.Errorf("warning: %s %s:%d:%d\n", warnMsg.Text, warnMsg.Location.File, warnMsg.Location.Line, warnMsg.Location.Column)
}
}
return
}
if res != nil {
data, err := ioutil.ReadAll(res)
if err != nil {
log.Error("Could not read bytes from JSX generator:", err)
return
}

// Use "h" instead of "React.createElement" for hyperApp apps
if ac.hyperApp {
data = bytes.Replace(data, []byte("React.createElement("), []byte("h("), utils.EveryInstance)
}
data := result.Code

ac.DataToClient(w, req, filename, data)
// Use "h" instead of "React.createElement" for hyperApp apps
if ac.hyperApp {
data = bytes.Replace(data, []byte("React.createElement("), []byte("h("), utils.EveryInstance)
}

ac.DataToClient(w, req, filename, data)
}

// HyperAppPage writes the given source bytes (in JSX for HyperApp) converted to JS, to a writer.
Expand Down Expand Up @@ -799,12 +843,28 @@ func (ac *Config) HyperAppPage(w http.ResponseWriter, req *http.Request, filenam

// Convert JSX to JS
jsxbuf.Write(jsxdata)
jsxGenerator, err := babel.Transform(&jsxbuf, ac.jsxOptions)
if err != nil {
jsxResult := api.Transform(jsxbuf.String(), ac.jsxOptions)

if len(jsxResult.Errors) > 0 {
if ac.debugMode {
ac.PrettyError(w, req, filename, jsxdata, err.Error(), "jsx")
var sb strings.Builder
sb.WriteString("Could not generate JavaScript:\n")
for _, errMsg := range jsxResult.Errors {
sb.WriteString(fmt.Sprintf("error: %s %s:%d:%d\n", errMsg.Text, errMsg.Location.File, errMsg.Location.Line, errMsg.Location.Column))
}
for _, warnMsg := range jsxResult.Warnings {
sb.WriteString(fmt.Sprintf("warning: %s %s:%d:%d\n", warnMsg.Text, warnMsg.Location.File, warnMsg.Location.Line, warnMsg.Location.Column))
}
ac.PrettyError(w, req, filename, jsxdata, sb.String(), "jsx")
} else {
log.Errorf("Could not generate javascript:\n%s\n%s", err, jsxbuf.String())
// TODO: Use a similar error page as for Lua
log.Error(w, "Could not generate JavaScript:\n")
for _, errMsg := range jsxResult.Errors {
log.Errorf("error: %s %s:%d:%d\n", errMsg.Text, errMsg.Location.File, errMsg.Location.Line, errMsg.Location.Column)
}
for _, warnMsg := range jsxResult.Warnings {
log.Errorf("warning: %s %s:%d:%d\n", warnMsg.Text, warnMsg.Location.File, warnMsg.Location.Line, warnMsg.Location.Column)
}
}
return
}
Expand All @@ -819,32 +879,25 @@ func (ac *Config) HyperAppPage(w http.ResponseWriter, req *http.Request, filenam
// The HyperApp library + compiled JSX can live in the same script tag. No need for this:
//htmlbuf.WriteString("</script><script>")

if jsxGenerator != nil {
// Read from the generator
jsxData, err := ioutil.ReadAll(jsxGenerator)
if err != nil {
log.Error("Could not read bytes from JSX generator:", err)
return
}
jsxData := jsxResult.Code

// Use "h" instead of "React.createElement"
jsxData = bytes.Replace(jsxData, []byte("React.createElement("), []byte("h("), utils.EveryInstance)
// Use "h" instead of "React.createElement"
jsxData = bytes.Replace(jsxData, []byte("React.createElement("), []byte("h("), utils.EveryInstance)

// If the file does not seem to contain the hyper app import: add it to the top of the script
// TODO: Consider making a more robust (and slower) check that splits the data into words first
if !bytes.Contains(jsxData, []byte("import { h,")) {
htmlbuf.WriteString("const { h, app } = hyperapp;")
}
// If the file does not seem to contain the hyper app import: add it to the top of the script
// TODO: Consider making a more robust (and slower) check that splits the data into words first
if !bytes.Contains(jsxData, []byte("import { h,")) {
htmlbuf.WriteString("const { h, app } = hyperapp;")
}

// Insert the JS data
htmlbuf.Write(jsxData)
// Insert the JS data
htmlbuf.Write(jsxData)

// Tail of the HTML wrapper page
htmlbuf.WriteString("</script></body>")
// Tail of the HTML wrapper page
htmlbuf.WriteString("</script></body>")

// Output HTML + JS to browser
ac.DataToClient(w, req, filename, []byte(htmlbuf.String()))
}
// Output HTML + JS to browser
ac.DataToClient(w, req, filename, []byte(htmlbuf.String()))
}

// SCSSPage writes the given source bytes (in SCSS) converted to CSS, to a writer.
Expand Down
4 changes: 1 addition & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ require (
github.com/denisenkom/go-mssqldb v0.12.0
github.com/didip/tollbooth v4.0.2+incompatible
github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385
github.com/evanw/esbuild v0.14.27
github.com/go-gcfg/gcfg v1.2.3
github.com/jvatic/goja-babel v0.0.0-20220324121911-69f3c2c187e8
github.com/lib/pq v1.10.4
github.com/lucas-clemente/quic-go v0.26.0
github.com/mitchellh/go-homedir v1.1.0
Expand Down Expand Up @@ -51,9 +51,7 @@ require (
github.com/alecthomas/chroma v0.10.0 // indirect
github.com/cheekybits/genny v1.0.0 // indirect
github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 // indirect
github.com/dop251/goja v0.0.0-20220324112439-a18ffb9c5866 // indirect
github.com/fsnotify/fsnotify v1.5.1 // indirect
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
github.com/go-sql-driver/mysql v1.6.0 // indirect
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
Expand Down
12 changes: 3 additions & 9 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,11 @@ github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55k
github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 h1:Izz0+t1Z5nI16/II7vuEo/nHjodOg0p7+OiDpjX5t1E=
github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
github.com/dop251/goja v0.0.0-20220324112439-a18ffb9c5866 h1:LAjokPR4PSrBQ2uLG9jFAa4ajdXUn4acffvcdfN58WA=
github.com/dop251/goja v0.0.0-20220324112439-a18ffb9c5866/go.mod h1:R9ET47fwRVRPZnOGvHxxhuZcbrMCuiqOz3Rlrh4KSnk=
github.com/dop251/goja_nodejs v0.0.0-20210225215109-d91c329300e7/go.mod h1:hn7BA7c8pLvoGndExHudxTDKZ84Pyvv+90pbBjbTz0Y=
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385 h1:clC1lXBpe2kTj2VHdaIu9ajZQe4kcEY9j0NsnDDBZ3o=
github.com/eknkc/amber v0.0.0-20171010120322-cdade1c07385/go.mod h1:0vRUJqYpeSZifjYj7uP3BG/gKcuzL9xWVV/Y+cK33KM=
github.com/evanw/esbuild v0.14.27 h1:flPbSFFXiuX2V886WmwJnu9itv5clDXcLCX5jNK6/W8=
github.com/evanw/esbuild v0.14.27/go.mod h1:GG+zjdi59yh3ehDn4ZWfPcATxjPDUH53iU4ZJbp7dkY=
github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc=
github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
Expand Down Expand Up @@ -82,8 +81,6 @@ github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+
github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl+lu/H90nyDXpg0fqeB/AQUGNTVA=
github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4=
github.com/go-playground/validator/v10 v10.9.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos=
github.com/go-sourcemap/sourcemap v2.1.3+incompatible h1:W1iEw64niKVGogNgBN3ePyLFfuisuzeidWPMPWmECqU=
github.com/go-sourcemap/sourcemap v2.1.3+incompatible/go.mod h1:F8jJfvm2KbVjc5NqelyYJmf/v5J0dwNLS2mL4sNA1Jg=
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
Expand Down Expand Up @@ -143,8 +140,6 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/juju/loggo v0.0.0-20180524022052-584905176618/go.mod h1:vgyd7OREkbtVEN/8IXZe5Ooef3LQePvuBm9UWj6ZL8U=
github.com/juju/testing v0.0.0-20180920084828-472a3e8b2073/go.mod h1:63prj8cnj0tU0S9OHjGJn+b1h0ZghCndfnbQolrYTwA=
github.com/jvatic/goja-babel v0.0.0-20220324121911-69f3c2c187e8 h1:g7IDziGj7OXFjUmLq9DH/FnbcuuGXvpQJnsXMNqzPbA=
github.com/jvatic/goja-babel v0.0.0-20220324121911-69f3c2c187e8/go.mod h1:7pQbT2QuSh4NwMjetenu5yqtjkaNN2lE3CNlVCcv0FA=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
github.com/klauspost/cpuid/v2 v2.0.12 h1:p9dKCg8i4gmOxtv35DvrYoWqYzQrvEVdjQ762Y0OqZE=
Expand Down Expand Up @@ -293,8 +288,6 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stvp/assert v0.0.0-20170616060220-4bc16443988b h1:GlTM/aMVIwU3luIuSN2SIVRuTqGPt1P97YxAi514ulw=
github.com/stvp/assert v0.0.0-20170616060220-4bc16443988b/go.mod h1:CC7OXV9IjEZRA+znA6/Kz5vbSwh69QioernOHeDCatU=
github.com/tarm/serial v0.0.0-20180830185346-98f6abe2eb07/go.mod h1:kDXzergiv9cbyO7IOYJZWg1U88JhDg3PB6klq9Hg2pA=
github.com/tylerb/graceful v1.2.15 h1:B0x01Y8fsJpogzZTkDg6BDi6eMf03s01lEKGdrv83oA=
github.com/tylerb/graceful v1.2.15/go.mod h1:LPYTbOYmUTdabwRt0TGhLllQ0MUNbs0Y5q1WXJOI9II=
Expand Down Expand Up @@ -505,6 +498,7 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210908233432-aa78b53d3365/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210910150752-751e447fb3d0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211004093028-2c5d950f24ef/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Expand Down
3 changes: 0 additions & 3 deletions vendor/github.com/dop251/goja/.gitignore

This file was deleted.

11 changes: 0 additions & 11 deletions vendor/github.com/dop251/goja/.tc39_test262_checkout.sh

This file was deleted.

Loading