From 86e4d78761da816792ab06732e1721207a60425c Mon Sep 17 00:00:00 2001 From: UnlegitDqrk Date: Sun, 1 Mar 2026 18:47:22 +0100 Subject: [PATCH] Fixed issue: tonumber("-") returns 0 #6 --- core/src/main/java/org/luaj/vm2/LuaString.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/core/src/main/java/org/luaj/vm2/LuaString.java b/core/src/main/java/org/luaj/vm2/LuaString.java index 94383ec4..db8cc13e 100644 --- a/core/src/main/java/org/luaj/vm2/LuaString.java +++ b/core/src/main/java/org/luaj/vm2/LuaString.java @@ -794,6 +794,11 @@ public class LuaString extends LuaValue { private double scanlong( int base, int start, int end ) { long x = 0; boolean neg = (m_bytes[start] == '-'); + // --- fix starts here --- + if(neg && m_bytes.length == 1) { + return Double.NaN; // this is only a '-' sign, no parsing any number is required + } + // --- fix ends here --- for ( int i=(neg?start+1:start); i='0'&&m_bytes[i]<='9')? '0': m_bytes[i]>='A'&&m_bytes[i]<='Z'? ('A'-10): ('a'-10));