From 456ab7b69f88859683c60cc2261e70d6dbadd8e8 Mon Sep 17 00:00:00 2001 From: Benoit Giannangeli Date: Wed, 29 Mar 2017 14:39:57 +0200 Subject: 8-bit string internally tests Lexing/Parsing is done on byte rather than js strings --- src/ldo.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/ldo.js') diff --git a/src/ldo.js b/src/ldo.js index 54d1ac0..6a74cad 100644 --- a/src/ldo.js +++ b/src/ldo.js @@ -519,8 +519,8 @@ class SParser { } const checkmode = function(L, mode, x) { - if (mode && mode.indexOf(x.charCodeAt(0)) === -1) { - lapi.lua_pushstring(L, lua.to_luastring(`attempt to load a ${lobject.jsstring(x)} chunk (mode is '${mode}')`)); + if (mode && mode.indexOf(x[0]) === -1) { + lapi.lua_pushstring(L, lua.to_luastring(`attempt to load a ${lobject.jsstring(x)} chunk (mode is '${lobject.jsstring(mode)}')`)); luaD_throw(L, TS.LUA_ERRSYNTAX); } }; @@ -528,11 +528,11 @@ const checkmode = function(L, mode, x) { const f_parser = function(L, p) { let cl; let c = p.z.getc(); /* read first character */ - if (String.fromCharCode(c) === lua.LUA_SIGNATURE.charAt(0)) { - checkmode(L, p.mode, "binary"); + if (c === lua.LUA_SIGNATURE.charCodeAt(0)) { + checkmode(L, p.mode, lua.to_luastring("binary")); cl = new BytecodeParser(L, p.z.buffer).luaU_undump(); } else { - checkmode(L, p.mode, "text"); + checkmode(L, p.mode, lua.to_luastring("text")); cl = lparser.luaY_parser(L, p.z, p.buff, p.dyd, p.name, c); } -- cgit v1.2.3-54-g00ecf