Skip to content

Commit

Permalink
Convert math params to number instead of failing with error
Browse files Browse the repository at this point in the history
  • Loading branch information
mdogan committed Feb 3, 2023
1 parent fa815b5 commit 410e9bd
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 1 deletion.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.idea
5 changes: 5 additions & 0 deletions auxlib.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ func (ls *LState) CheckNumber(n int) LNumber {
if lv, ok := v.(LNumber); ok {
return lv
}
if lv, ok := v.(LString); ok {
if num, err := parseNumber(string(lv)); err == nil {
return num
}
}
ls.TypeError(n, LTNumber)
return 0
}
Expand Down
4 changes: 3 additions & 1 deletion auxlib_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,10 @@ func TestCheckNumber(t *testing.T) {
errorIfGFuncNotFail(t, L, func(L *LState) int {
L.Push(LNumber(10))
errorIfNotEqual(t, LNumber(10), L.CheckNumber(2))
L.Push(LString("11"))
errorIfNotEqual(t, LNumber(11), L.CheckNumber(3))
L.Push(LString("aaa"))
L.CheckNumber(3)
L.CheckNumber(4)
return 0
}, "number expected, got string")
}
Expand Down

0 comments on commit 410e9bd

Please sign in to comment.