Skip to content

Commit

Permalink
Update goja to latest master + fixes for it
Browse files Browse the repository at this point in the history
The fixes for it are in the form of disabling all source map support as
if it's missing the parsing will error out.
  • Loading branch information
mstoykov committed Jan 11, 2021
1 parent ccffbca commit a3bdbf6
Show file tree
Hide file tree
Showing 36 changed files with 578 additions and 403 deletions.
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ require (
github.com/andybalholm/cascadia v1.0.0 // indirect
github.com/daaku/go.zipexe v0.0.0-20150329023125-a5fe2436ffcb // indirect
github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 // indirect
github.com/dop251/goja v0.0.0-20201107160812-7545ac6de48a
github.com/dop251/goja v0.0.0-20210106133455-27b0a7dc4c7f
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4
github.com/eapache/go-resiliency v1.1.0 // indirect
github.com/eapache/go-xerial-snappy v0.0.0-20160609142408-bb955e01b934 // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
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/dop251/goja v0.0.0-20201107160812-7545ac6de48a h1:RYcWAh8DBgQQ7Fi3YhoyMhtGiF8JHKBDSeym7wd9o10=
github.com/dop251/goja v0.0.0-20201107160812-7545ac6de48a/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA=
github.com/dop251/goja v0.0.0-20210106133455-27b0a7dc4c7f h1:tHoCUlro23JdXvcvYXH1AseEyWJf+b8cBbVm16RYRkU=
github.com/dop251/goja v0.0.0-20210106133455-27b0a7dc4c7f/go.mod h1:Mw6PkjjMXWbTj+nnj4s3QPXq1jaT0s5pC0iFD4+BOAA=
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4 h1:qk/FSDDxo05wdJH28W+p5yivv7LuLYLRXPPD8KQCtZs=
github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/eapache/go-resiliency v1.1.0 h1:1NtRmCAqadE2FN4ZcN6g90TP3uk8cg9rn9eNK2197aU=
Expand Down
2 changes: 2 additions & 0 deletions js/bundle.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (
"runtime"

"github.com/dop251/goja"
"github.com/dop251/goja/parser"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
"github.com/spf13/afero"
Expand Down Expand Up @@ -276,6 +277,7 @@ func (b *Bundle) Instantiate(logger logrus.FieldLogger, vuID int64) (bi *BundleI
// Instantiates the bundle into an existing runtime. Not public because it also messes with a bunch
// of other things, will potentially thrash data and makes a mess in it if the operation fails.
func (b *Bundle) instantiate(logger logrus.FieldLogger, rt *goja.Runtime, init *InitContext, vuID int64) error {
rt.SetParserOptions(parser.WithDisableSourceMaps)
rt.SetFieldNameMapper(common.FieldNameMapper{})
rt.SetRandSource(common.NewRandSource())

Expand Down
13 changes: 10 additions & 3 deletions js/lib/lib.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import (

rice "github.com/GeertJohan/go.rice"
"github.com/dop251/goja"
"github.com/dop251/goja/parser"
)

//nolint:gochecknoglobals
Expand All @@ -37,11 +38,17 @@ var (

func GetCoreJS() *goja.Program {
once.Do(func() {
coreJs = goja.MustCompile(
program, err := goja.Parse(
"core-js/shim.min.js",
rice.MustFindBox("core-js").MustString("shim.min.js"),
true,
)
parser.WithDisableSourceMaps)
if err != nil {
panic(err)
}
coreJs, err = goja.CompileAST(program, false)
if err != nil {
panic(err)
}
})

return coreJs
Expand Down
14 changes: 7 additions & 7 deletions js/tc39/breaking_test_errors.json
Original file line number Diff line number Diff line change
Expand Up @@ -447,8 +447,8 @@
"test/language/expressions/assignment/fn-name-cover.js-strict:true": "[test/language/expressions/assignment/fn-name-cover.js Test262Error: Expected SameValue(«», «cover») to be true at harness/sta.js:22:9(49)]: %!v(MISSING)",
"test/language/expressions/assignment/fn-name-fn.js-strict:true": "[test/language/expressions/assignment/fn-name-fn.js Test262Error: Expected SameValue(«», «fn») to be true at harness/sta.js:22:9(49)]: %!v(MISSING)",
"test/language/expressions/assignment/fn-name-gen.js-strict:true": "[test/language/expressions/assignment/fn-name-gen.js ReferenceError: regeneratorRuntime is not defined at test/language/expressions/assignment/fn-name-gen.js:28:21(3)]: %!v(MISSING)",
"test/language/expressions/class/accessor-name-inst-computed-yield-expr.js-strict:true": "[test/language/expressions/class/accessor-name-inst-computed-yield-expr.js SyntaxError: Unexpected strict mode reserved word at 28:15]: %!v(MISSING)",
"test/language/expressions/class/accessor-name-static-computed-yield-expr.js-strict:true": "[test/language/expressions/class/accessor-name-static-computed-yield-expr.js SyntaxError: Unexpected strict mode reserved word at 30:15]: %!v(MISSING)",
"test/language/expressions/class/accessor-name-inst-computed-yield-expr.js-strict:true": "[test/language/expressions/class/accessor-name-inst-computed-yield-expr.js SyntaxError: Unexpected strict mode reserved word at test/language/expressions/class/accessor-name-inst-computed-yield-expr.js:28:15]: %!v(MISSING)",
"test/language/expressions/class/accessor-name-static-computed-yield-expr.js-strict:true": "[test/language/expressions/class/accessor-name-static-computed-yield-expr.js SyntaxError: Unexpected strict mode reserved word at test/language/expressions/class/accessor-name-static-computed-yield-expr.js:30:15]: %!v(MISSING)",
"test/language/expressions/class/gen-method-length-dflt.js-strict:true": "[test/language/expressions/class/gen-method-length-dflt.js ReferenceError: regeneratorRuntime is not defined at test/language/expressions/class/gen-method-length-dflt.js:34:127(10)]: %!v(MISSING)",
"test/language/expressions/class/params-dflt-gen-meth-args-unmapped.js-strict:true": "[test/language/expressions/class/params-dflt-gen-meth-args-unmapped.js ReferenceError: regeneratorRuntime is not defined at test/language/expressions/class/params-dflt-gen-meth-args-unmapped.js:75:116(10)]: %!v(MISSING)",
"test/language/expressions/class/params-dflt-gen-meth-ref-arguments.js-strict:true": "[test/language/expressions/class/params-dflt-gen-meth-ref-arguments.js ReferenceError: regeneratorRuntime is not defined at test/language/expressions/class/params-dflt-gen-meth-ref-arguments.js:75:116(10)]: %!v(MISSING)",
Expand Down Expand Up @@ -675,8 +675,8 @@
"test/language/module-code/early-lex-and-var.js-strict:true": "[test/language/module-code/early-lex-and-var.js TypeError SyntaxError]: unexpected error type (%!s(MISSING)), expected (%!s(MISSING))",
"test/language/module-code/namespace/Symbol.toStringTag.js-strict:true": "[test/language/module-code/namespace/Symbol.toStringTag.js ReferenceError: require is not defined at test/language/module-code/namespace/Symbol.toStringTag.js:19:33(11)]: %!v(MISSING)",
"test/language/reserved-words/await-module.js-strict:true": "[test/language/reserved-words/await-module.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/class/accessor-name-inst-computed-yield-expr.js-strict:true": "[test/language/statements/class/accessor-name-inst-computed-yield-expr.js SyntaxError: Unexpected strict mode reserved word at 28:15]: %!v(MISSING)",
"test/language/statements/class/accessor-name-static-computed-yield-expr.js-strict:true": "[test/language/statements/class/accessor-name-static-computed-yield-expr.js SyntaxError: Unexpected strict mode reserved word at 30:15]: %!v(MISSING)",
"test/language/statements/class/accessor-name-inst-computed-yield-expr.js-strict:true": "[test/language/statements/class/accessor-name-inst-computed-yield-expr.js SyntaxError: Unexpected strict mode reserved word at test/language/statements/class/accessor-name-inst-computed-yield-expr.js:28:15]: %!v(MISSING)",
"test/language/statements/class/accessor-name-static-computed-yield-expr.js-strict:true": "[test/language/statements/class/accessor-name-static-computed-yield-expr.js SyntaxError: Unexpected strict mode reserved word at test/language/statements/class/accessor-name-static-computed-yield-expr.js:30:15]: %!v(MISSING)",
"test/language/statements/class/constructor-inferred-observable-iteration.js-strict:true": "[test/language/statements/class/constructor-inferred-observable-iteration.js TypeError: Cannot convert undefined or null to object at getPrototypeOf (native)]: %!v(MISSING)",
"test/language/statements/class/definition/accessors.js-strict:true": "[test/language/statements/class/definition/accessors.js Test262Error: The result of `'prototype' in desc.get` is `false` Expected SameValue(«true», «false») to be true at harness/sta.js:22:9(49)]: %!v(MISSING)",
"test/language/statements/class/definition/fn-name-accessor-get.js-strict:true": "[test/language/statements/class/definition/fn-name-accessor-get.js Test262Error: Expected SameValue(«get», «get id») to be true at harness/sta.js:22:9(49)]: %!v(MISSING)",
Expand Down Expand Up @@ -806,7 +806,7 @@
"test/language/statements/for-in/head-const-bound-names-in-stmt.js-strict:true": "[test/language/statements/for-in/head-const-bound-names-in-stmt.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for-in/head-let-bound-names-fordecl-tdz.js-strict:true": "[test/language/statements/for-in/head-let-bound-names-fordecl-tdz.js Test262Error: Expected a ReferenceError to be thrown but no exception was thrown at all at harness/sta.js:22:9(49)]: %!v(MISSING)",
"test/language/statements/for-in/head-let-bound-names-in-stmt.js-strict:true": "[test/language/statements/for-in/head-let-bound-names-in-stmt.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for-in/head-let-destructuring.js-strict:true": "[test/language/statements/for-in/head-let-destructuring.js SyntaxError: Unexpected strict mode reserved word at 27:7]: %!v(MISSING)",
"test/language/statements/for-in/head-let-destructuring.js-strict:true": "[test/language/statements/for-in/head-let-destructuring.js SyntaxError: Unexpected strict mode reserved word at test/language/statements/for-in/head-let-destructuring.js:27:7]: %!v(MISSING)",
"test/language/statements/for-in/labelled-fn-stmt-const.js-strict:true": "[test/language/statements/for-in/labelled-fn-stmt-const.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for-in/labelled-fn-stmt-let.js-strict:true": "[test/language/statements/for-in/labelled-fn-stmt-let.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for-in/labelled-fn-stmt-lhs.js-strict:true": "[test/language/statements/for-in/labelled-fn-stmt-lhs.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
Expand Down Expand Up @@ -846,7 +846,7 @@
"test/language/statements/for-of/head-expr-no-expr.js-strict:true": "[test/language/statements/for-of/head-expr-no-expr.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for-of/head-let-bound-names-fordecl-tdz.js-strict:true": "[test/language/statements/for-of/head-let-bound-names-fordecl-tdz.js Test262Error: Expected a ReferenceError to be thrown but no exception was thrown at all at harness/sta.js:22:9(49)]: %!v(MISSING)",
"test/language/statements/for-of/head-let-bound-names-in-stmt.js-strict:true": "[test/language/statements/for-of/head-let-bound-names-in-stmt.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for-of/head-let-destructuring.js-strict:true": "[test/language/statements/for-of/head-let-destructuring.js SyntaxError: Unexpected strict mode reserved word at 24:7]: %!v(MISSING)",
"test/language/statements/for-of/head-let-destructuring.js-strict:true": "[test/language/statements/for-of/head-let-destructuring.js SyntaxError: Unexpected strict mode reserved word at test/language/statements/for-of/head-let-destructuring.js:24:7]: %!v(MISSING)",
"test/language/statements/for-of/head-var-no-expr.js-strict:true": "[test/language/statements/for-of/head-var-no-expr.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for-of/iterator-close-non-object.js-strict:true": "[test/language/statements/for-of/iterator-close-non-object.js Test262Error: Expected a TypeError to be thrown but no exception was thrown at all at harness/sta.js:22:9(49)]: %!v(MISSING)",
"test/language/statements/for-of/iterator-close-via-break.js-strict:true": "[test/language/statements/for-of/iterator-close-via-break.js Test262Error: Iterator is closed after `break` statement Expected SameValue(«0», «1») to be true at harness/sta.js:22:9(49)]: %!v(MISSING)",
Expand Down Expand Up @@ -875,7 +875,7 @@
"test/language/statements/for-of/yield.js-strict:true": "[test/language/statements/for-of/yield.js ReferenceError: regeneratorRuntime is not defined at test/language/statements/for-of/yield.js:9:33(12)]: %!v(MISSING)",
"test/language/statements/for/decl-fun.js-strict:true": "[test/language/statements/for/decl-fun.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for/head-let-bound-names-in-stmt.js-strict:true": "[test/language/statements/for/head-let-bound-names-in-stmt.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for/head-let-destructuring.js-strict:true": "[test/language/statements/for/head-let-destructuring.js SyntaxError: Unexpected strict mode reserved word at 25:7]: %!v(MISSING)",
"test/language/statements/for/head-let-destructuring.js-strict:true": "[test/language/statements/for/head-let-destructuring.js SyntaxError: Unexpected strict mode reserved word at test/language/statements/for/head-let-destructuring.js:25:7]: %!v(MISSING)",
"test/language/statements/for/labelled-fn-stmt-expr.js-strict:true": "[test/language/statements/for/labelled-fn-stmt-expr.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for/labelled-fn-stmt-let.js-strict:true": "[test/language/statements/for/labelled-fn-stmt-let.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
"test/language/statements/for/labelled-fn-stmt-var.js-strict:true": "[test/language/statements/for/labelled-fn-stmt-var.js Test262: This statement should not be evaluated.]: error is not an object (%!v(MISSING))",
Expand Down
30 changes: 2 additions & 28 deletions vendor/github.com/dop251/goja/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 0 additions & 3 deletions vendor/github.com/dop251/goja/ast/node.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 8 additions & 8 deletions vendor/github.com/dop251/goja/builtin_array.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion vendor/github.com/dop251/goja/builtin_date.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit a3bdbf6

Please sign in to comment.