diff options
author | daurnimator <quae@daurnimator.com> | 2017-05-15 17:20:06 +1000 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2017-05-15 17:20:06 +1000 |
commit | f7e5203a20ef41cf9bc59d339b4f85007a7f3764 (patch) | |
tree | 3c6f0907231588f528902eec3b2b1d09d19a53e1 | |
parent | 3947c2cb2fa6193645ac30898064e3d335a63545 (diff) | |
download | fengari-f7e5203a20ef41cf9bc59d339b4f85007a7f3764.tar.gz fengari-f7e5203a20ef41cf9bc59d339b4f85007a7f3764.tar.bz2 fengari-f7e5203a20ef41cf9bc59d339b4f85007a7f3764.zip |
Separate ZIO and MBuffer data structures
- lua_load no longer takes a null reader function
-rw-r--r-- | src/lapi.js | 4 | ||||
-rw-r--r-- | src/lauxlib.js | 13 | ||||
-rw-r--r-- | src/ldo.js | 30 | ||||
-rw-r--r-- | src/llex.js | 64 | ||||
-rw-r--r-- | src/lundump.js | 62 | ||||
-rw-r--r-- | src/lzio.js | 81 | ||||
-rw-r--r-- | tests/lapi.js | 6 | ||||
-rw-r--r-- | tests/lbaselib.js | 71 | ||||
-rw-r--r-- | tests/lcorolib.js | 23 | ||||
-rw-r--r-- | tests/ldebug.js | 31 | ||||
-rw-r--r-- | tests/lmathlib.js | 55 | ||||
-rw-r--r-- | tests/lstrlib.js | 2 | ||||
-rw-r--r-- | tests/ltablib.js | 35 | ||||
-rw-r--r-- | tests/ltm.js | 71 |
14 files changed, 193 insertions, 355 deletions
diff --git a/src/lapi.js b/src/lapi.js index 8897fb2..885dd8f 100644 --- a/src/lapi.js +++ b/src/lapi.js @@ -7,7 +7,6 @@ const ldebug = require('./ldebug.js'); const ldo = require('./ldo.js'); const ldump = require('./ldump.js'); const lfunc = require('./lfunc.js'); -const llex = require('./llex.js'); const lobject = require('./lobject.js'); const lstate = require('./lstate.js'); const lstring = require('./lstring.js'); @@ -15,6 +14,7 @@ const ltm = require('./ltm.js'); const luaconf = require('./luaconf.js'); const lvm = require('./lvm.js'); const ltable = require('./ltable.js'); +const lzio = require('./lzio.js'); const MAXUPVAL = lfunc.MAXUPVAL; const CT = defs.constant_types; const TS = defs.thread_status; @@ -891,8 +891,8 @@ const lua_arith = function(L, op) { const lua_load = function(L, reader, data, chunckname, mode) { assert(Array.isArray(chunckname), "lua_load expect an array of byte as chunckname"); assert(mode ? Array.isArray(mode) : true, "lua_load expect an array of byte as mode"); - let z = new llex.MBuffer(L, data, reader); if (!chunckname) chunckname = [defs.char["?"]]; + let z = new lzio.ZIO(L, reader, data); let status = ldo.luaD_protectedparser(L, z, chunckname, mode); if (status === TS.LUA_OK) { /* no errors? */ let f = L.stack[L.top - 1].value; /* get newly created function */ diff --git a/src/lauxlib.js b/src/lauxlib.js index 3019bf3..c5a3b21 100644 --- a/src/lauxlib.js +++ b/src/lauxlib.js @@ -691,18 +691,9 @@ if (!WEB) { this.f = null; /* file being read */ this.buff = new Buffer(1024); /* area for reading file */ this.pos = 0; /* current position in file */ - this.binary = false; } } - const toDataView = function(buffer, bytes) { - let ab = new ArrayBuffer(bytes); - let au = new Uint8Array(ab); - for (let i = 0; i < bytes; i++) - au[i] = buffer[i]; - return new DataView(ab); - }; - const getF = function(L, ud) { let lf = ud; let bytes = 0; @@ -715,7 +706,7 @@ if (!WEB) { lf.pos += bytes; } if (bytes > 0) - return lf.binary ? toDataView(lf.buff, bytes) : lf.buff.slice(0, bytes); + return lf.buff.slice(0, bytes); /* slice on a node.js Buffer is 'free' */ else return null; }; @@ -794,7 +785,7 @@ if (!WEB) { let com = skipcomment(lf); /* check for signature first, as we don't want to add line number corrections in binary case */ if (com.c === lua.LUA_SIGNATURE.charCodeAt(0) && filename) { /* binary file? */ - lf.binary = true; + /* no need to re-open in node.js */ } else if (com.skipped) { /* read initial portion */ lf.buff[lf.n++] = '\n'.charCodeAt(0); /* add line to correct line numbers */ } @@ -7,7 +7,6 @@ const defs = require('./defs.js'); const lapi = require('./lapi.js'); const ldebug = require('./ldebug.js'); const lfunc = require('./lfunc.js'); -const llex = require('./llex.js'); const llimit = require('./llimit.js'); const lobject = require('./lobject.js'); const lparser = require('./lparser.js'); @@ -16,6 +15,7 @@ const lstring = require('./lstring.js'); const ltm = require('./ltm.js'); const lundump = require('./lundump.js'); const lvm = require('./lvm.js'); +const lzio = require('./lzio.js'); const CT = defs.constant_types; const TS = defs.thread_status; @@ -527,12 +527,12 @@ const luaD_callnoyield = function(L, off, nResults) { ** Execute a protected parser. */ class SParser { - constructor() { /* data to 'f_parser' */ - this.z = new llex.MBuffer(); - this.buff = new llex.MBuffer(); /* dynamic structure used by the scanner */ + constructor(z, name, mode) { /* data to 'f_parser' */ + this.z = z; + this.buff = new lzio.MBuffer(); /* dynamic structure used by the scanner */ this.dyd = new lparser.Dyndata(); /* dynamic structures used by the parser */ - this.mode = null; - this.name = null; + this.mode = mode; + this.name = name; } } @@ -545,7 +545,7 @@ const checkmode = function(L, mode, x) { const f_parser = function(L, p) { let cl; - let c = p.z.getc(); /* read first character */ + let c = p.z.zgetc(); /* read first character */ if (c === defs.LUA_SIGNATURE.charCodeAt(0)) { checkmode(L, p.mode, defs.to_luastring("binary", true)); cl = lundump.luaU_undump(L, p.z, p.name); @@ -559,24 +559,10 @@ const f_parser = function(L, p) { }; const luaD_protectedparser = function(L, z, name, mode) { - let p = new SParser(); + let p = new SParser(z, name, mode); L.nny++; /* cannot yield during parsing */ - - p.z = z; - p.buff.L = L; - p.name = name; - p.mode = mode; - p.dyd.actvar.arr = []; - p.dyd.actvar.size = 0; - p.dyd.gt.arr = []; - p.dyd.gt.size = 0; - p.dyd.label.arr = []; - p.dyd.label.size = 0; - let status = luaD_pcall(L, f_parser, p, L.top, L.errfunc); - L.nny--; - return status; }; diff --git a/src/llex.js b/src/llex.js index 0825146..41b3ec8 100644 --- a/src/llex.js +++ b/src/llex.js @@ -69,63 +69,6 @@ const luaX_tokens = [ "<number>", "<integer>", "<name>", "<string>" ]; -class MBuffer { - constructor(L, data, reader) { - this.L = L; - this.data = data; - this.n = 0; - this.buffer = null; - this.off = 0; - this.reader = reader ? reader : null; - - if (!this.reader) { - assert(typeof data !== "string", "Should only load binary of array of bytes"); - this.buffer = data ? data : []; - this.n = this.buffer instanceof DataView ? this.buffer.byteLength : this.buffer.length; - this.off = 0; - } - } - - getc() { - if (this.n <= 0) - this.fill(); - if (this.n <= 0) - return -1; - let r; - if (this.buffer instanceof DataView) { - r = this.buffer.getUint8(this.off++, true); - } else { - r = this.buffer[this.off++]; - } - if (this.n-- === 0) // remove reference to input so it can get freed - this.buffer = null; - return r; - } - - read(size) { - let r = []; - - while (size > 0) { - let byte = this.getc(); - if (byte !== -1) r.push(byte); - size--; - } - - return r; - } - - fill() { - if (this.reader) { - this.buffer = this.reader(this.L, this.data); - assert(typeof this.buffer !== "string", "Should only load binary of array of bytes"); - if (this.buffer !== null) { - this.n = ((this.buffer instanceof DataView) ? this.buffer.byteLength : this.buffer.length); - this.off = 0; - } - } - } -} - class SemInfo { constructor() { this.r = NaN; @@ -152,8 +95,8 @@ class LexState { this.lookahead = new Token(); /* look ahead token */ this.fs = null; /* current function (parser) */ this.L = null; - this.z = new MBuffer(); - this.buff = new MBuffer(); /* buffer for tokens */ + this.z = null; /* input stream */ + this.buff = null; /* buffer for tokens */ this.h = null; /* to reuse strings */ this.dyd = null; /* dynamic structures used by the parser */ this.source = null; /* current source name */ @@ -187,7 +130,7 @@ const currIsNewline = function(ls) { }; const next = function(ls) { - ls.current = ls.z.getc(); + ls.current = ls.z.zgetc(); }; const save_and_next = function(ls) { @@ -664,7 +607,6 @@ const luaX_lookahead = function(ls) { module.exports.FIRST_RESERVED = FIRST_RESERVED; module.exports.LexState = LexState; -module.exports.MBuffer = MBuffer; module.exports.RESERVED = RESERVED; module.exports.isreserved = isreserved; module.exports.luaX_lookahead = luaX_lookahead; diff --git a/src/lundump.js b/src/lundump.js index eeb77f4..1891451 100644 --- a/src/lundump.js +++ b/src/lundump.js @@ -9,20 +9,20 @@ const lfunc = require('./lfunc.js'); const lobject = require('./lobject.js'); const lopcodes = require('./lopcodes.js'); const lstring = require('./lstring.js'); -const llex = require('./llex.js'); +const lzio = require('./lzio.js'); let LUAC_DATA = [0x19, 0x93, defs.char["\r"], defs.char["\n"], 0x1a, defs.char["\n"]]; class BytecodeParser { - constructor(L, buffer, name) { + constructor(L, Z, name) { this.intSize = 4; this.size_tSize = 8; this.instructionSize = 4; this.integerSize = 4; this.numberSize = 8; - assert(buffer instanceof llex.MBuffer, "BytecodeParser only operates on a MBuffer"); + assert(Z instanceof lzio.ZIO, "BytecodeParser only operates on a ZIO"); assert(Array.isArray(name)); if (name[0] == defs.char["@"] || name[0] == defs.char["="]) @@ -33,32 +33,32 @@ class BytecodeParser { this.name = name; this.L = L; - this.buffer = buffer; + this.Z = Z; // Used to do buffer to number conversions - this.dv = new DataView( - new ArrayBuffer( - Math.max(this.intSize, this.size_tSize, this.instructionSize, this.integerSize, this.numberSize) - ) + this.arraybuffer = new ArrayBuffer( + Math.max(this.intSize, this.size_tSize, this.instructionSize, this.integerSize, this.numberSize) ); + this.dv = new DataView(this.arraybuffer); + this.u8 = new Uint8Array(this.arraybuffer); } read(size) { - let buffer = this.buffer.read(size); - assert(Array.isArray(buffer)); - if (buffer.length < size) this.error("truncated"); - return buffer; + let u8 = new Uint8Array(size); + if(lzio.luaZ_read(this.Z, u8, 0, size) !== 0) + this.error("truncated"); + return Array.from(u8); } readByte() { - return this.read(1)[0]; + if (lzio.luaZ_read(this.Z, this.u8, 0, 1) !== 0) + this.error("truncated"); + return this.u8[0]; } readInteger() { - let buffer = this.read(this.integerSize); - for (let i = 0; i < buffer.length; i++) - this.dv.setUint8(i, buffer[i]); - + if (lzio.luaZ_read(this.Z, this.u8, 0, this.integerSize) !== 0) + this.error("truncated"); return this.dv.getInt32(0, true); } @@ -67,20 +67,14 @@ class BytecodeParser { } readInt() { - let buffer = this.read(this.intSize); - - for (let i = 0; i < buffer.length; i++) - this.dv.setUint8(i, buffer[i]); - + if (lzio.luaZ_read(this.Z, this.u8, 0, this.intSize) !== 0) + this.error("truncated"); return this.dv.getInt32(0, true); } readNumber() { - let buffer = this.read(this.numberSize); - - for (let i = 0; i < buffer.length; i++) - this.dv.setUint8(i, buffer[i]); - + if (lzio.luaZ_read(this.Z, this.u8, 0, this.numberSize) !== 0) + this.error("truncated"); return this.dv.getFloat64(0, true); } @@ -94,7 +88,7 @@ class BytecodeParser { return null; } - return lstring.luaS_new(this.L, this.read(size)); + return lstring.luaS_bless(this.L, this.read(size)); } /* creates a mask with 'n' 1 bits at position 'p' */ @@ -108,11 +102,9 @@ class BytecodeParser { } readInstruction() { - let ins = new DataView(new ArrayBuffer(this.instructionSize)); - for (let i = 0; i < this.instructionSize; i++) - ins.setUint8(i, this.readByte()); - - return ins.getUint32(0, true); + if (lzio.luaZ_read(this.Z, this.u8, 0, this.instructionSize) !== 0) + this.error("truncated"); + return this.dv.getUint32(0, true); } readCode(f) { @@ -269,8 +261,8 @@ class BytecodeParser { } } -const luaU_undump = function(L, buffer, name) { - let S = new BytecodeParser(L, buffer, name); +const luaU_undump = function(L, Z, name) { + let S = new BytecodeParser(L, Z, name); S.checkHeader(); let cl = lfunc.luaF_newLclosure(L, S.readByte()); L.stack[L.top++] = new lobject.TValue(defs.CT.LUA_TLCL, cl); diff --git a/src/lzio.js b/src/lzio.js new file mode 100644 index 0000000..919ed44 --- /dev/null +++ b/src/lzio.js @@ -0,0 +1,81 @@ +"use strict"; + +const assert = require('assert'); + + +class MBuffer { + constructor() { + this.buffer = null; + this.n = 0; + } +} + +class ZIO { + constructor(L, reader, data) { + this.L = L; /* Lua state (for reader) */ + assert(typeof reader == "function", "ZIO requires a reader"); + this.reader = reader; /* reader function */ + this.data = data; /* additional data */ + this.n = 0; /* bytes still unread */ + this.buffer = null; + this.off = 0; /* current position in buffer */ + } + + zgetc () { + return ((this.n--) > 0) ? this.buffer[this.off++] : luaZ_fill(this); + } +} + +const EOZ = -1; + +const luaZ_fill = function(z) { + let size; + let buff = z.reader(z.L, z.data); + if (buff === null) + return EOZ; + if (buff instanceof DataView) { + z.buffer = new Uint8Array(buff.buffer, buff.byteOffset, buff.byteLength); + z.off = 0; + size = buff.byteLength - buff.byteOffset; + } else { + assert(typeof buff !== "string", "Should only load binary of array of bytes"); + z.buffer = buff; + z.off = 0; + size = buff.length; + } + if (size === 0) + return EOZ; + z.n = size - 1; + return z.buffer[z.off++]; +}; + +/* b should be an array-like that will be set to bytes + * b_offset is the offset at which to start filling */ +const luaZ_read = function(z, b, b_offset, n) { + while (n) { + if (z.n === 0) { /* no bytes in buffer? */ + if (luaZ_fill(z) === EOZ) + return n; /* no more input; return number of missing bytes */ + else { + z.n++; /* luaZ_fill consumed first byte; put it back */ + z.off--; + } + } + let m = (n <= z.n) ? n : z.n; /* min. between n and z->n */ + for (let i=0; i<m; i++) { + b[b_offset++] = z.buffer[z.off++]; + } + z.n -= m; + if (z.n === 0) // remove reference to input so it can get freed + z.buffer = null; + n -= m; + } + + return 0; +}; + +module.exports.EOZ = EOZ; +module.exports.luaZ_fill = luaZ_fill; +module.exports.luaZ_read = luaZ_read; +module.exports.MBuffer = MBuffer; +module.exports.ZIO = ZIO; diff --git a/tests/lapi.js b/tests/lapi.js index 8b269b1..b739860 100644 --- a/tests/lapi.js +++ b/tests/lapi.js @@ -375,7 +375,7 @@ test('lua_load and lua_call it', function (t) { L = lauxlib.luaL_newstate(); - lua.lua_load(L, null, bc, lua.to_luastring("test-lua_load"), lua.to_luastring("binary")); + lua.lua_load(L, function(L, s) { let r = s.bc; s.bc = null; return r; }, {bc: bc}, lua.to_luastring("test-lua_load"), lua.to_luastring("binary")); lua.lua_call(L, 0, 1); @@ -398,11 +398,9 @@ test('lua script reads js upvalues', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); - lua.lua_load(L, null, bc, lua.to_luastring("test-lua_load"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pushliteral(L, "hello"); lua.lua_setglobal(L, lua.to_luastring("js")); diff --git a/tests/lbaselib.js b/tests/lbaselib.js index bfaac9c..2594cd9 100644 --- a/tests/lbaselib.js +++ b/tests/lbaselib.js @@ -2,9 +2,6 @@ const test = require('tape'); -const tests = require("./tests.js"); -const toByteCode = tests.toByteCode; - const lua = require('../src/lua.js'); const lauxlib = require('../src/lauxlib.js'); const lualib = require('../src/lualib.js'); @@ -19,13 +16,11 @@ test('print', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-print"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -53,13 +48,11 @@ test('setmetatable, getmetatable', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-setmetatable-getmetatable"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -98,13 +91,11 @@ test('rawequal', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-rawequal"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -144,13 +135,11 @@ test('rawset, rawget', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-rawequal"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -191,13 +180,11 @@ test('type', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-type"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -244,13 +231,11 @@ test('error', function (t) { t.throws(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-error"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -267,13 +252,11 @@ test('error, protected', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-error"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pcall(L, 0, -1, 0); @@ -299,13 +282,11 @@ test('pcall', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-pcall"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -335,13 +316,11 @@ test('xpcall', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-pcall"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -377,13 +356,11 @@ test('ipairs', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-ipairs"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -406,13 +383,11 @@ test('select', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-select"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -451,13 +426,11 @@ test('tonumber', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-tonumber"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -503,13 +476,11 @@ test('assert', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-assert"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pcall(L, 0, -1, 0); @@ -531,13 +502,11 @@ test('rawlen', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-rawlen"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -578,13 +547,11 @@ test('next', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-next"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -619,13 +586,11 @@ test('pairs', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-pairs"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -669,13 +634,11 @@ test('pairs with __pairs', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-pairs"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); diff --git a/tests/lcorolib.js b/tests/lcorolib.js index 342b560..4faf13b 100644 --- a/tests/lcorolib.js +++ b/tests/lcorolib.js @@ -2,9 +2,6 @@ const test = require('tape'); -const tests = require("./tests.js"); -const toByteCode = tests.toByteCode; - const lua = require('../src/lua.js'); const lauxlib = require('../src/lauxlib.js'); const lualib = require('../src/lualib.js'); @@ -28,13 +25,11 @@ test('coroutine.create, coroutine.yield, coroutine.resume', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-coroutine"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -71,13 +66,11 @@ test('coroutine.status', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-coroutine.status"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -112,13 +105,11 @@ test('coroutine.isyieldable', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-coroutine.isyieldable"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -153,13 +144,11 @@ test('coroutine.running', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-coroutine.running"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -194,13 +183,11 @@ test('coroutine.wrap', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-coroutine.wrap"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); diff --git a/tests/ldebug.js b/tests/ldebug.js index 99e37d9..8809bde 100644 --- a/tests/ldebug.js +++ b/tests/ldebug.js @@ -2,9 +2,6 @@ const test = require('tape'); -const tests = require("./tests.js"); -const toByteCode = tests.toByteCode; - const lua = require('../src/lua.js'); const lauxlib = require('../src/lauxlib.js'); const lualib = require('../src/lualib.js'); @@ -19,13 +16,11 @@ test('luaG_typeerror', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-typeerror"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pcall(L, 0, -1, 0); @@ -49,13 +44,11 @@ test('luaG_typeerror', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-typeerror"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pcall(L, 0, -1, 0); @@ -78,13 +71,11 @@ test('luaG_typeerror', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-typeerror"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pcall(L, 0, -1, 0); @@ -107,13 +98,11 @@ test('luaG_typeerror', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-typeerror"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pcall(L, 0, -1, 0); @@ -135,13 +124,11 @@ test('luaG_concaterror', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-typeerror"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pcall(L, 0, -1, 0); @@ -163,13 +150,11 @@ test('luaG_opinterror', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-typeerror"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pcall(L, 0, -1, 0); @@ -191,13 +176,11 @@ test('luaG_tointerror', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-typeerror"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_pcall(L, 0, -1, 0); diff --git a/tests/lmathlib.js b/tests/lmathlib.js index 8fcd9a8..b227af0 100644 --- a/tests/lmathlib.js +++ b/tests/lmathlib.js @@ -2,9 +2,6 @@ const test = require('tape'); -const tests = require("./tests.js"); -const toByteCode = tests.toByteCode; - const lua = require('../src/lua.js'); const lauxlib = require('../src/lauxlib.js'); const lualib = require('../src/lualib.js'); @@ -20,13 +17,11 @@ test('math.abs, math.sin, math.cos, math.tan, math.asin, math.acos, math.atan', t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -85,13 +80,11 @@ test('math.ceil, math.floor', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -121,13 +114,11 @@ test('math.deg, math.rad', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -157,13 +148,11 @@ test('math.log', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -199,13 +188,11 @@ test('math.exp', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -229,13 +216,11 @@ test('math.min, math.max', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -265,13 +250,11 @@ test('math.random', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -299,13 +282,11 @@ test('math.sqrt', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -329,13 +310,11 @@ test('math.tointeger', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -359,13 +338,11 @@ test('math.type', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -401,13 +378,11 @@ test('math.ult', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -431,13 +406,11 @@ test('math.fmod', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -461,13 +434,11 @@ test('math.modf', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-math"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); diff --git a/tests/lstrlib.js b/tests/lstrlib.js index dbd27d9..817ebcb 100644 --- a/tests/lstrlib.js +++ b/tests/lstrlib.js @@ -444,7 +444,7 @@ test('string.dump', function (t) { let dv = lua.lua_todataview(L, -1); - lua.lua_load(L, null, dv, lua.to_luastring("test"), lua.to_luastring("binary")); + lua.lua_load(L, function(L, s) { let r = s.dv; s.dv = null; return r; }, {dv: dv}, lua.to_luastring("test"), lua.to_luastring("binary")); lua.lua_call(L, 0, -1); diff --git a/tests/ltablib.js b/tests/ltablib.js index 43e742b..e2e8825 100644 --- a/tests/ltablib.js +++ b/tests/ltablib.js @@ -2,9 +2,6 @@ const test = require('tape'); -const tests = require("./tests.js"); -const toByteCode = tests.toByteCode; - const lua = require('../src/lua.js'); const lauxlib = require('../src/lauxlib.js'); const lualib = require('../src/lualib.js'); @@ -30,13 +27,11 @@ test('table.concat', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-table.concat"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -59,13 +54,11 @@ test('table.pack', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-table.pack"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -90,13 +83,11 @@ test('table.unpack', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-table.unpack"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -134,13 +125,11 @@ test('table.insert', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-table.insert"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -168,13 +157,11 @@ test('table.remove', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-table.remove"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -201,13 +188,11 @@ test('table.move', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-table.move"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -234,13 +219,11 @@ test('table.sort (<)', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-table.sort"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); @@ -267,13 +250,11 @@ test('table.sort with cmp function', function (t) { t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test-table.sort"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); diff --git a/tests/ltm.js b/tests/ltm.js index b1150e7..86fa52c 100644 --- a/tests/ltm.js +++ b/tests/ltm.js @@ -2,9 +2,6 @@ const test = require('tape'); -const tests = require("./tests.js"); -const toByteCode = tests.toByteCode; - const lua = require('../src/lua.js'); const lauxlib = require('../src/lauxlib.js'); const lualib = require('../src/lualib.js'); @@ -19,13 +16,11 @@ test('__index, __newindex: with actual table', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); lua.lua_call(L, 0, -1); }, "Program executed without errors"); @@ -51,13 +46,11 @@ test('__newindex: with non table', function (t) { t.plan(2); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.throws(function () { @@ -84,13 +77,11 @@ test('__index function in metatable', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); @@ -126,13 +117,11 @@ test('__newindex function in metatable', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -166,13 +155,11 @@ test('__index table in metatable', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -209,13 +196,11 @@ test('__newindex table in metatable', function (t) { t.plan(4); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -263,13 +248,11 @@ test('__index table with own metatable', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -316,13 +299,11 @@ test('__newindex table with own metatable', function (t) { t.plan(4); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -417,13 +398,11 @@ test('binary __xxx functions in metatable', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -469,13 +448,11 @@ test('__eq', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -507,13 +484,11 @@ test('__lt', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -545,13 +520,11 @@ test('__le', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -583,13 +556,11 @@ test('__le that uses __lt', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -625,13 +596,11 @@ test('__unm, __bnot', function (t) { t.plan(4); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -670,13 +639,11 @@ test('__len', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -709,13 +676,11 @@ test('__concat', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { @@ -748,13 +713,11 @@ test('__call', function (t) { t.plan(3); t.doesNotThrow(function () { - let bc = toByteCode(luaCode); - L = lauxlib.luaL_newstate(); lualib.luaL_openlibs(L); - lua.lua_load(L, null, bc, lua.to_luastring("test"), lua.to_luastring("binary")); + lauxlib.luaL_loadstring(L, lua.to_luastring(luaCode)); }, "Bytecode parsed without errors"); t.doesNotThrow(function () { |