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));