From 6c643f840223e197e34755d7fe206df0c6728ecc Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Wed, 18 Mar 2026 10:29:46 +0000 Subject: [PATCH] Don't silently ignore trailing characters in numbers --- asm.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/asm.js b/asm.js index 55165e2..b58bca9 100644 --- a/asm.js +++ b/asm.js @@ -280,15 +280,14 @@ class Parser { } integer(token) { - let base; + let base, regex; switch (token.slice(-1)) { - case "b": base = 2; break; - case "o": base = 8; break; - case "h": base = 16; break; - default: base = 10; break; + case "b": base = 2; regex = /^-?[01]+b$/; break; + case "o": base = 8; regex = /^-?[0-7]+o$/; break; + case "h": base = 16; regex = /^-?[0-9A-F]+h$/; break; + default: base = 10; regex = /^-?[0-9]+d?$/; break; } - const x = parseInt(token, base); - return Number.isNaN(x) ? null : x; + return regex.test(token) ? parseInt(token, base) : null; } translate_code(token) {