Skip to content

Commit 410e9bd

Browse files
committedFeb 3, 2023
Convert math params to number instead of failing with error
1 parent fa815b5 commit 410e9bd

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed
 

‎.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
.idea

‎auxlib.go

+5
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ func (ls *LState) CheckNumber(n int) LNumber {
4040
if lv, ok := v.(LNumber); ok {
4141
return lv
4242
}
43+
if lv, ok := v.(LString); ok {
44+
if num, err := parseNumber(string(lv)); err == nil {
45+
return num
46+
}
47+
}
4348
ls.TypeError(n, LTNumber)
4449
return 0
4550
}

‎auxlib_test.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,10 @@ func TestCheckNumber(t *testing.T) {
3636
errorIfGFuncNotFail(t, L, func(L *LState) int {
3737
L.Push(LNumber(10))
3838
errorIfNotEqual(t, LNumber(10), L.CheckNumber(2))
39+
L.Push(LString("11"))
40+
errorIfNotEqual(t, LNumber(11), L.CheckNumber(3))
3941
L.Push(LString("aaa"))
40-
L.CheckNumber(3)
42+
L.CheckNumber(4)
4143
return 0
4244
}, "number expected, got string")
4345
}

0 commit comments

Comments
 (0)
Please sign in to comment.