diff --git a/vlib/builtin/js/jsfns.js.v b/vlib/builtin/js/jsfns.js.v index 2b5d973dd3..b2ea15de27 100644 --- a/vlib/builtin/js/jsfns.js.v +++ b/vlib/builtin/js/jsfns.js.v @@ -123,26 +123,26 @@ fn native_str_arr_len(arr []JS.String) int { } // Top level functions -fn JS.eval(string) any -fn JS.parseInt(string, f64) JS.Number -fn JS.parseFloat(string) JS.Number +fn JS.eval(JS.String) JS.Any +fn JS.parseInt(JS.String, f64) JS.Number +fn JS.parseFloat(JS.String) JS.Number fn JS.isNaN(f64) bool fn JS.isFinite(f64) bool -fn JS.decodeURI(string) string -fn JS.decodeURIComponent(string) string -fn JS.encodeURI(string) string +fn JS.decodeURI(JS.String) JS.String +fn JS.decodeURIComponent(JS.String) JS.String +fn JS.encodeURI(JS.String) JS.String -type EncodeURIComponentArg = bool | f64 | string +type EncodeURIComponentArg = JS.String | bool | f64 -fn JS.encodeURIComponent(EncodeURIComponentArg) string -fn JS.escape(string) string -fn JS.unescape(string) string +fn JS.encodeURIComponent(EncodeURIComponentArg) JS.String +fn JS.escape(JS.String) JS.String +fn JS.unescape(JS.String) JS.String // console fn JS.console.assert(bool, ...any) fn JS.console.clear() -fn JS.console.count(string) -fn JS.console.countReset(string) +fn JS.console.count(JS.String) +fn JS.console.countReset(JS.String) fn JS.console.debug(...any) fn JS.console.dir(any, any) fn JS.console.dirxml(...any) @@ -154,8 +154,8 @@ fn JS.console.groupEnd() fn JS.console.info(...any) fn JS.console.log(...any) fn JS.console.table(any, []string) -fn JS.console.time(string) -fn JS.console.timeEnd(string) +fn JS.console.time(JS.String) +fn JS.console.timeEnd(JS.String) fn JS.console.timeLog(string, ...any) fn JS.console.timeStamp(string) fn JS.console.trace(...any) @@ -182,5 +182,5 @@ fn JS.Math.sqrt(f64) f64 fn JS.Math.tan(f64) f64 // JSON -fn JS.JSON.stringify(any) string +fn JS.JSON.stringify(any) JS.String fn JS.JSON.parse(string) any diff --git a/vlib/builtin/js/string.js.v b/vlib/builtin/js/string.js.v index 1b862044f1..33ec080dce 100644 --- a/vlib/builtin/js/string.js.v +++ b/vlib/builtin/js/string.js.v @@ -205,53 +205,53 @@ pub fn (s string) hash() int { // int returns the value of the string as an integer `'1'.int() == 1`. pub fn (s string) int() int { - return int(JS.parseInt(s)) + return int(JS.parseInt(s.str)) } // i64 returns the value of the string as i64 `'1'.i64() == i64(1)`. pub fn (s string) i64() i64 { - return i64(JS.parseInt(s)) + return i64(JS.parseInt(s.str)) } // i8 returns the value of the string as i8 `'1'.i8() == i8(1)`. pub fn (s string) i8() i8 { - return i8(JS.parseInt(s)) + return i8(JS.parseInt(s.str)) } // i16 returns the value of the string as i16 `'1'.i16() == i16(1)`. pub fn (s string) i16() i16 { - return i16(JS.parseInt(s)) + return i16(JS.parseInt(s.str)) } // f32 returns the value of the string as f32 `'1.0'.f32() == f32(1)`. pub fn (s string) f32() f32 { // return C.atof(&char(s.str)) - return f32(JS.parseFloat(s)) + return f32(JS.parseFloat(s.str)) } // f64 returns the value of the string as f64 `'1.0'.f64() == f64(1)`. pub fn (s string) f64() f64 { - return f64(JS.parseFloat(s)) + return f64(JS.parseFloat(s.str)) } // u16 returns the value of the string as u16 `'1'.u16() == u16(1)`. pub fn (s string) u16() u16 { - return u16(JS.parseInt(s)) + return u16(JS.parseInt(s.str)) } // u32 returns the value of the string as u32 `'1'.u32() == u32(1)`. pub fn (s string) u32() u32 { - return u32(JS.parseInt(s)) + return u32(JS.parseInt(s.str)) } // u64 returns the value of the string as u64 `'1'.u64() == u64(1)`. pub fn (s string) u64() u64 { - return u64(JS.parseInt(s)) + return u64(JS.parseInt(s.str)) } pub fn (s string) byte() u64 { res := byte(0) - #res.val = byte(JS.parseInt(s)) + #res.val = byte(JS.parseInt(s.str)) return res } diff --git a/vlib/v/gen/js/tests/js.v b/vlib/v/gen/js/tests/js.v index 90bcb189ab..82d2849a45 100644 --- a/vlib/v/gen/js/tests/js.v +++ b/vlib/v/gen/js/tests/js.v @@ -30,7 +30,18 @@ fn class(extends string, instanceof int) { fn main() { println('Hello from V.js!') println(JS.Math.atan2(1, 0)) - println(JS.eval("console.log('Hello!')")) + non := JS.eval("console.log('Hello!')".str) + if isnil (non) { + println('non=nil') + } + ren := int(JS.eval('3'.str)) + if ren != 0 { + println('ren=$ren') + } + res := string(JS.eval('"3"'.str)) + if res != '' { + println('res=$res') + } mut a := 1 a *= 2 a += 3 @@ -43,7 +54,7 @@ fn main() { println(c) println('int(1.5) == "${int(1.5)}"') d := int(10) + f32(127) - println('typeof (int + f32) == "${typeof(d)}"') + println('typeof (int + f32) == "${typeof(d).name}"') _ = 'done' { _ = 'block'