From c881d06cb5428a47dcf181d11bedb098e37af665 Mon Sep 17 00:00:00 2001 From: William Bell Date: Tue, 28 Mar 2023 17:03:39 +0100 Subject: [PATCH] fix arvalid bug --- merge | 2 ++ serve | 2 -- src/built-in-functions.go | 2 ++ src/document.go | 8 ++++++-- src/input.go | 12 +++++++++--- 5 files changed, 19 insertions(+), 7 deletions(-) create mode 100755 merge delete mode 100755 serve diff --git a/merge b/merge new file mode 100755 index 0000000..c41102f --- /dev/null +++ b/merge @@ -0,0 +1,2 @@ +git fetch upstream +git merge upstream/master master \ No newline at end of file diff --git a/serve b/serve deleted file mode 100755 index 8f2b81d..0000000 --- a/serve +++ /dev/null @@ -1,2 +0,0 @@ -cd ./wasm -npx serve \ No newline at end of file diff --git a/src/built-in-functions.go b/src/built-in-functions.go index 330b58c..1dd49ff 100644 --- a/src/built-in-functions.go +++ b/src/built-in-functions.go @@ -13,6 +13,7 @@ func ArgonString(args ...any) (any, ArErr) { if len(args) == 0 { return ArString(""), ArErr{} } + args[0] = ArValidToAny(args[0]) return ArString(anyToArgon(args[0], true, false, 3, 0, false, 0)), ArErr{} } @@ -20,6 +21,7 @@ func ArgonNumber(args ...any) (any, ArErr) { if len(args) == 0 { return newNumber(), ArErr{} } + args[0] = ArValidToAny(args[0]) switch x := args[0].(type) { case string: if !isNumber(UNPARSEcode{code: x}) { diff --git a/src/document.go b/src/document.go index c498bf0..85f5453 100644 --- a/src/document.go +++ b/src/document.go @@ -114,8 +114,12 @@ func windowElement(element js.Value) ArObject { var ArDocument = Map( anymap{ - "body": windowElement(js.Global().Get("document").Get("body")), - "head": windowElement(js.Global().Get("document").Get("head")), + "body": builtinFunc{"getElementById", func(args ...any) (any, ArErr) { + return windowElement(js.Global().Get("document").Get("body")), ArErr{} + }}, + "head": builtinFunc{"getElementById", func(args ...any) (any, ArErr) { + return windowElement(js.Global().Get("document").Get("head")), ArErr{} + }}, "getElementById": builtinFunc{"getElementById", func(args ...any) (any, ArErr) { if len(args) < 1 { return nil, ArErr{"Argument Error", "Not enough arguments for getElementById", 0, "", "", true} diff --git a/src/input.go b/src/input.go index d990f74..88c9ac5 100644 --- a/src/input.go +++ b/src/input.go @@ -3,6 +3,7 @@ package main import ( "fmt" "os" + "syscall/js" "golang.org/x/term" ) @@ -11,10 +12,15 @@ func input(args ...any) string { output := []any{} for i := 0; i < len(args); i++ { output = append(output, anyToArgon(args[i], false, true, 3, 0, true, 0)) + if i != len(args)-1 { + output = append(output, " ") + } } - fmt.Print(output...) - inputData := []byte{} - return string(inputData) + text := fmt.Sprint(output...) + fmt.Print(text) + inputData := js.Global().Get("getInput").Invoke(fmt.Sprint(output...)).String() + fmt.Println(inputData) + return (inputData) } func getPassword(args ...any) (string, error) {