Fix wasm output

This commit is contained in:
Neemek 2025-01-03 22:35:55 +01:00
parent 2e48fbde28
commit 4a9801df5a
Signed by: neemek
GPG key ID: 28360A8951CD0E9B

View file

@ -9,10 +9,7 @@ import (
) )
func jsError(err error) interface{} { func jsError(err error) interface{} {
errorConstructor := js.Global().Get("Error") return jsErrorOfString(err.Error())
errorObject := errorConstructor.New(err.Error())
return errorObject
} }
func jsErrorOfString(err string) interface{} { func jsErrorOfString(err string) interface{} {
@ -25,7 +22,6 @@ func jsErrorOfString(err string) interface{} {
func run(this js.Value, args []js.Value) interface{} { func run(this js.Value, args []js.Value) interface{} {
source := args[0].String() source := args[0].String()
outputHandler := args[1] outputHandler := args[1]
doRun := args[2]
log.Printf("got source: %s", source) log.Printf("got source: %s", source)
lexer := core.NewLexer(source) lexer := core.NewLexer(source)
@ -61,7 +57,7 @@ func run(this js.Value, args []js.Value) interface{} {
Parameters: []string{"value"}, Parameters: []string{"value"},
F: func(v map[string]core.Value) core.Value { F: func(v map[string]core.Value) core.Value {
log.Printf("Writing value: %s", v["value"].String()) log.Printf("Writing value: %s", v["value"].String())
outputHandler.Invoke(js.ValueOf(v["value"].String())) outputHandler.Invoke(js.ValueOf(v["value"].String() + "\n"))
return nil return nil
}, },
}) })
@ -70,13 +66,12 @@ func run(this js.Value, args []js.Value) interface{} {
Parameters: []string{"value"}, Parameters: []string{"value"},
F: func(v map[string]core.Value) core.Value { F: func(v map[string]core.Value) core.Value {
log.Printf("Printing value: %s", v["value"].String()) log.Printf("Printing value: %s", v["value"].String())
outputHandler.Invoke(js.ValueOf(v["value"].String() + "\n")) outputHandler.Invoke(js.ValueOf(v["value"].String()))
return nil return nil
}, },
}) })
for doRun.Invoke().Bool() && vm.HasNext() { for vm.HasNext() && vm.Next() {
vm.Next()
} }
log.Println("Finished executing") log.Println("Finished executing")