@energy8platform/game-engine 0.10.6 → 0.10.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/debug.cjs.js +11 -7
- package/dist/debug.cjs.js.map +1 -1
- package/dist/debug.esm.js +11 -7
- package/dist/debug.esm.js.map +1 -1
- package/dist/index.cjs.js +11 -7
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.esm.js +11 -7
- package/dist/index.esm.js.map +1 -1
- package/dist/lua.cjs.js +182 -111
- package/dist/lua.cjs.js.map +1 -1
- package/dist/lua.d.ts +32 -27
- package/dist/lua.esm.js +182 -111
- package/dist/lua.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/debug/DevBridge.ts +12 -8
- package/src/lua/LuaEngine.ts +120 -67
- package/src/lua/SessionManager.ts +74 -29
- package/src/lua/SimulationRunner.ts +11 -19
- package/src/lua/types.ts +2 -0
package/dist/lua.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lua.esm.js","sources":["../src/lua/LuaEngineAPI.ts","../src/lua/ActionRouter.ts","../src/lua/SessionManager.ts","../src/lua/PersistentState.ts","../src/lua/LuaEngine.ts","../src/lua/SimulationRunner.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["lua","lauxlib","to_luastring","to_jsstring"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lua.esm.js","sources":["../src/lua/LuaEngineAPI.ts","../src/lua/ActionRouter.ts","../src/lua/SessionManager.ts","../src/lua/PersistentState.ts","../src/lua/LuaEngine.ts","../src/lua/SimulationRunner.ts"],"sourcesContent":[null,null,null,null,null,null],"names":["lua","lauxlib","to_luastring","to_jsstring"],"mappings":"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"}
|
package/package.json
CHANGED
package/src/debug/DevBridge.ts
CHANGED
|
@@ -176,20 +176,19 @@ export class DevBridge {
|
|
|
176
176
|
id?: string,
|
|
177
177
|
): void {
|
|
178
178
|
const { action, bet, roundId, params } = payload;
|
|
179
|
-
|
|
180
|
-
// Deduct bet
|
|
181
|
-
this._balance -= bet;
|
|
182
179
|
this._roundCounter++;
|
|
183
180
|
|
|
184
181
|
if (this._useLuaServer) {
|
|
185
|
-
//
|
|
182
|
+
// Debit bet (server deducts before Lua execution)
|
|
183
|
+
// For session actions (free spins), debit is 0 — LuaEngine handles bet from session
|
|
184
|
+
this._balance -= bet;
|
|
185
|
+
|
|
186
186
|
this.executeLuaOnServer({ action, bet, roundId, params })
|
|
187
187
|
.then((result) => {
|
|
188
188
|
this._bridge?.send('PLAY_RESULT', result, id);
|
|
189
189
|
})
|
|
190
190
|
.catch((err) => {
|
|
191
191
|
console.error('[DevBridge] Lua server error:', err);
|
|
192
|
-
// Refund bet on error
|
|
193
192
|
this._balance += bet;
|
|
194
193
|
this._bridge?.send('PLAY_RESULT', this.buildFallbackResult(action, bet, roundId), id);
|
|
195
194
|
});
|
|
@@ -232,8 +231,13 @@ export class DevBridge {
|
|
|
232
231
|
|
|
233
232
|
const luaResult = await response.json();
|
|
234
233
|
|
|
235
|
-
|
|
236
|
-
|
|
234
|
+
// Server credit logic:
|
|
235
|
+
// shouldCredit = (no session) OR (session.completed)
|
|
236
|
+
// creditAmount = result.totalWin
|
|
237
|
+
const shouldCredit = !luaResult.session || luaResult.session.completed;
|
|
238
|
+
if (shouldCredit && luaResult.totalWin > 0) {
|
|
239
|
+
this._balance += luaResult.totalWin;
|
|
240
|
+
}
|
|
237
241
|
|
|
238
242
|
return {
|
|
239
243
|
roundId: params.roundId ?? `dev-round-${this._roundCounter}`,
|
|
@@ -243,7 +247,7 @@ export class DevBridge {
|
|
|
243
247
|
data: luaResult.data,
|
|
244
248
|
nextActions: luaResult.nextActions,
|
|
245
249
|
session: luaResult.session,
|
|
246
|
-
creditPending:
|
|
250
|
+
creditPending: !shouldCredit,
|
|
247
251
|
bonusFreeSpin: null,
|
|
248
252
|
currency: this._config.currency,
|
|
249
253
|
gameId: this._config.gameConfig?.id ?? 'dev-game',
|
package/src/lua/LuaEngine.ts
CHANGED
|
@@ -11,22 +11,21 @@ import fengari from 'fengari';
|
|
|
11
11
|
const { lua, lauxlib, lualib } = fengari;
|
|
12
12
|
const { to_luastring, to_jsstring } = fengari;
|
|
13
13
|
|
|
14
|
+
/** Default engine variables matching the server's NewGameState() */
|
|
15
|
+
const DEFAULT_VARIABLES: Record<string, number> = {
|
|
16
|
+
multiplier: 1,
|
|
17
|
+
total_multiplier: 1,
|
|
18
|
+
global_multiplier: 1,
|
|
19
|
+
last_win_amount: 0,
|
|
20
|
+
free_spins_awarded: 0,
|
|
21
|
+
};
|
|
22
|
+
|
|
14
23
|
/**
|
|
15
24
|
* Runs Lua game scripts locally, replicating the platform's server-side execution.
|
|
16
25
|
*
|
|
17
|
-
* Implements the full lifecycle
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```ts
|
|
22
|
-
* const engine = new LuaEngine({
|
|
23
|
-
* script: luaSource,
|
|
24
|
-
* gameDefinition: { id: 'my-slot', type: 'SLOT', actions: { ... } },
|
|
25
|
-
* });
|
|
26
|
-
*
|
|
27
|
-
* const result = engine.execute({ action: 'spin', bet: 1.0 });
|
|
28
|
-
* // result.data.matrix, result.totalWin, result.nextActions, etc.
|
|
29
|
-
* ```
|
|
26
|
+
* Implements the full lifecycle matching `casino_platform/internal/usecase/game_usecase.go`:
|
|
27
|
+
* action routing → state assembly → Lua execute() → result extraction →
|
|
28
|
+
* transition evaluation → session management.
|
|
30
29
|
*/
|
|
31
30
|
export class LuaEngine {
|
|
32
31
|
private L: any;
|
|
@@ -36,27 +35,25 @@ export class LuaEngine {
|
|
|
36
35
|
private persistentState: PersistentState;
|
|
37
36
|
private gameDefinition: GameDefinition;
|
|
38
37
|
private variables: Record<string, number> = {};
|
|
38
|
+
private simulationMode: boolean;
|
|
39
39
|
|
|
40
40
|
constructor(config: LuaEngineConfig) {
|
|
41
41
|
this.gameDefinition = config.gameDefinition;
|
|
42
|
+
this.simulationMode = config.simulationMode ?? false;
|
|
42
43
|
|
|
43
|
-
// Set up RNG
|
|
44
44
|
const rng = config.seed !== undefined
|
|
45
45
|
? createSeededRng(config.seed)
|
|
46
46
|
: undefined;
|
|
47
47
|
|
|
48
|
-
// Initialize sub-managers
|
|
49
48
|
this.api = new LuaEngineAPI(config.gameDefinition, rng, config.logger);
|
|
50
49
|
this.actionRouter = new ActionRouter(config.gameDefinition);
|
|
51
50
|
this.sessionManager = new SessionManager();
|
|
52
51
|
this.persistentState = new PersistentState(config.gameDefinition.persistent_state);
|
|
53
52
|
|
|
54
|
-
// Create Lua state and load standard libraries
|
|
55
53
|
this.L = lauxlib.luaL_newstate();
|
|
56
54
|
lualib.luaL_openlibs(this.L);
|
|
57
55
|
|
|
58
|
-
// Polyfill Lua 5.1/5.2 functions removed in 5.3
|
|
59
|
-
// Platform server may use gopher-lua (5.1) — these ensure compatibility.
|
|
56
|
+
// Polyfill Lua 5.1/5.2 functions removed in 5.3
|
|
60
57
|
lauxlib.luaL_dostring(this.L, to_luastring(`
|
|
61
58
|
math.pow = function(a, b) return a ^ b end
|
|
62
59
|
math.atan2 = math.atan2 or function(y, x) return math.atan(y, x) end
|
|
@@ -75,43 +72,47 @@ export class LuaEngine {
|
|
|
75
72
|
table.getn = table.getn or function(t) return #t end
|
|
76
73
|
`));
|
|
77
74
|
|
|
78
|
-
// Register engine.* API
|
|
79
75
|
this.api.register(this.L);
|
|
80
|
-
|
|
81
|
-
// Load and compile the script
|
|
82
76
|
this.loadScript(config.script);
|
|
83
77
|
}
|
|
84
78
|
|
|
85
|
-
/** Current session data (if any) */
|
|
86
79
|
get session(): SessionData | null {
|
|
87
80
|
return this.sessionManager.current;
|
|
88
81
|
}
|
|
89
82
|
|
|
90
|
-
/** Current persistent state values */
|
|
91
83
|
get persistentVars(): Record<string, number> {
|
|
92
84
|
return { ...this.variables };
|
|
93
85
|
}
|
|
94
86
|
|
|
95
87
|
/**
|
|
96
|
-
* Execute a play action —
|
|
97
|
-
* This is what DevBridge calls on each PLAY_REQUEST.
|
|
88
|
+
* Execute a play action — replicates server's Play() function.
|
|
98
89
|
*/
|
|
99
90
|
execute(params: PlayParams): LuaPlayResult {
|
|
100
|
-
const { action: actionName,
|
|
91
|
+
const { action: actionName, params: clientParams } = params;
|
|
101
92
|
|
|
102
|
-
// 1. Resolve
|
|
93
|
+
// 1. Resolve action
|
|
103
94
|
const action = this.actionRouter.resolveAction(
|
|
104
95
|
actionName,
|
|
105
96
|
this.sessionManager.isActive,
|
|
106
97
|
);
|
|
107
98
|
|
|
108
|
-
// 2.
|
|
109
|
-
|
|
99
|
+
// 2. Determine bet — server uses session bet for session actions
|
|
100
|
+
let bet = params.bet;
|
|
101
|
+
if (this.sessionManager.isActive && this.sessionManager.sessionBet !== undefined) {
|
|
102
|
+
bet = this.sessionManager.sessionBet;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// 3. Build state.variables (matching server's NewGameState + restore)
|
|
106
|
+
const stateVars: Record<string, number> = {
|
|
107
|
+
...DEFAULT_VARIABLES,
|
|
108
|
+
...this.variables,
|
|
109
|
+
bet,
|
|
110
|
+
};
|
|
110
111
|
|
|
111
112
|
// Load cross-spin persistent state
|
|
112
113
|
this.persistentState.loadIntoVariables(stateVars);
|
|
113
114
|
|
|
114
|
-
// Load session persistent vars
|
|
115
|
+
// Load session persistent vars + restore spinsRemaining
|
|
115
116
|
if (this.sessionManager.isActive) {
|
|
116
117
|
const sessionParams = this.sessionManager.getPersistentParams();
|
|
117
118
|
for (const [k, v] of Object.entries(sessionParams)) {
|
|
@@ -119,9 +120,15 @@ export class LuaEngine {
|
|
|
119
120
|
stateVars[k] = v;
|
|
120
121
|
}
|
|
121
122
|
}
|
|
123
|
+
// Restore spinsRemaining into the variable the script reads
|
|
124
|
+
if (this.sessionManager.spinsVarName) {
|
|
125
|
+
stateVars[this.sessionManager.spinsVarName] = this.sessionManager.spinsRemaining;
|
|
126
|
+
}
|
|
127
|
+
// Also set free_spins_remaining for convenience
|
|
128
|
+
stateVars.free_spins_remaining = this.sessionManager.spinsRemaining;
|
|
122
129
|
}
|
|
123
130
|
|
|
124
|
-
//
|
|
131
|
+
// 4. Build state.params
|
|
125
132
|
const stateParams: Record<string, unknown> = { ...clientParams };
|
|
126
133
|
stateParams._action = actionName;
|
|
127
134
|
|
|
@@ -154,18 +161,18 @@ export class LuaEngine {
|
|
|
154
161
|
stateParams.ante_bet = true;
|
|
155
162
|
}
|
|
156
163
|
|
|
157
|
-
//
|
|
158
|
-
const luaResult = this.callLuaExecute(action.stage, stateParams, stateVars);
|
|
164
|
+
// 5. Execute Lua (server: executor.Execute(stage, state))
|
|
165
|
+
const luaResult = this.callLuaExecute(action.stage, actionName, stateParams, stateVars);
|
|
159
166
|
|
|
160
|
-
//
|
|
167
|
+
// 6. Process result (server: ApplyLuaResult)
|
|
161
168
|
const totalWinMultiplier = typeof luaResult.total_win === 'number' ? luaResult.total_win : 0;
|
|
162
169
|
const resultVariables = (luaResult.variables ?? {}) as Record<string, number>;
|
|
163
|
-
const
|
|
170
|
+
const spinWin = Math.round(totalWinMultiplier * bet * 100) / 100;
|
|
164
171
|
|
|
165
172
|
// Merge result variables into engine variables
|
|
166
173
|
Object.assign(stateVars, resultVariables);
|
|
167
174
|
this.variables = { ...stateVars };
|
|
168
|
-
delete this.variables.bet;
|
|
175
|
+
delete this.variables.bet;
|
|
169
176
|
|
|
170
177
|
// Build client data (everything except special keys)
|
|
171
178
|
const data: Record<string, unknown> = {};
|
|
@@ -175,18 +182,6 @@ export class LuaEngine {
|
|
|
175
182
|
}
|
|
176
183
|
}
|
|
177
184
|
|
|
178
|
-
// 6. Apply max win cap
|
|
179
|
-
let cappedWin = totalWin;
|
|
180
|
-
if (this.gameDefinition.max_win) {
|
|
181
|
-
const cap = this.calculateMaxWinCap(bet);
|
|
182
|
-
if (cap !== undefined && totalWin > cap) {
|
|
183
|
-
cappedWin = cap;
|
|
184
|
-
this.variables.max_win_reached = 1;
|
|
185
|
-
data.max_win_reached = true;
|
|
186
|
-
this.sessionManager.markMaxWinReached();
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
|
|
190
185
|
// 7. Handle _persist_* and _persist_game_* keys
|
|
191
186
|
this.sessionManager.storePersistData(data);
|
|
192
187
|
this.persistentState.storeGameData(data);
|
|
@@ -207,35 +202,63 @@ export class LuaEngine {
|
|
|
207
202
|
}
|
|
208
203
|
}
|
|
209
204
|
|
|
210
|
-
// 8. Evaluate transitions
|
|
205
|
+
// 8. Evaluate transitions (server: evaluateTransitions)
|
|
211
206
|
const { rule, nextActions } = this.actionRouter.evaluateTransitions(action, this.variables);
|
|
207
|
+
|
|
208
|
+
// 9. Determine credit behavior (server: creditNow logic)
|
|
212
209
|
let creditDeferred = action.credit === 'defer' || rule.credit_override === 'defer';
|
|
210
|
+
|
|
211
|
+
// 10. Session lifecycle (server: create/update/complete session)
|
|
213
212
|
let session = this.sessionManager.current;
|
|
213
|
+
let resultTotalWin = spinWin;
|
|
214
|
+
let sessionCompleted = false;
|
|
215
|
+
|
|
216
|
+
// Calculate max win cap for session
|
|
217
|
+
const maxWinCap = this.calculateMaxWinCap(bet);
|
|
214
218
|
|
|
215
|
-
// Handle session creation
|
|
216
219
|
if (rule.creates_session && !this.sessionManager.isActive) {
|
|
217
|
-
|
|
220
|
+
// CREATE SESSION — initial spin counted (server: createSession includes spinWin)
|
|
221
|
+
session = this.sessionManager.createSession(rule, this.variables, bet, spinWin, maxWinCap);
|
|
218
222
|
creditDeferred = true;
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
+
resultTotalWin = spinWin;
|
|
224
|
+
|
|
225
|
+
// Clear the trigger variable — it was consumed to set spinsRemaining
|
|
226
|
+
if (rule.session_config?.total_spins_var) {
|
|
227
|
+
delete this.variables[rule.session_config.total_spins_var];
|
|
228
|
+
}
|
|
229
|
+
} else if (this.sessionManager.isActive) {
|
|
230
|
+
// UPDATE SESSION — accumulate win, check completion
|
|
231
|
+
session = this.sessionManager.updateSession(rule, this.variables, spinWin);
|
|
223
232
|
|
|
224
|
-
|
|
225
|
-
|
|
233
|
+
if (session?.completed) {
|
|
234
|
+
// SESSION COMPLETED — server returns session.TotalWin as result.TotalWin
|
|
226
235
|
const completed = this.sessionManager.completeSession();
|
|
227
236
|
session = completed.session;
|
|
237
|
+
resultTotalWin = completed.totalWin;
|
|
238
|
+
sessionCompleted = true;
|
|
228
239
|
creditDeferred = false;
|
|
229
240
|
|
|
230
|
-
// Clean up session-scoped variables
|
|
241
|
+
// Clean up session-scoped variables
|
|
231
242
|
for (const varName of completed.sessionVarNames) {
|
|
232
243
|
delete this.variables[varName];
|
|
233
244
|
}
|
|
245
|
+
} else {
|
|
246
|
+
// Mid-session: totalWin = spinWin, credit deferred
|
|
247
|
+
resultTotalWin = spinWin;
|
|
248
|
+
creditDeferred = true;
|
|
234
249
|
}
|
|
235
250
|
}
|
|
251
|
+
// No session: resultTotalWin = spinWin (already set)
|
|
252
|
+
|
|
253
|
+
// Apply max win cap for non-session spins
|
|
254
|
+
if (!this.sessionManager.isActive && !sessionCompleted && maxWinCap !== undefined && resultTotalWin > maxWinCap) {
|
|
255
|
+
resultTotalWin = maxWinCap;
|
|
256
|
+
this.variables.max_win_reached = 1;
|
|
257
|
+
data.max_win_reached = true;
|
|
258
|
+
}
|
|
236
259
|
|
|
237
260
|
return {
|
|
238
|
-
totalWin:
|
|
261
|
+
totalWin: Math.round(resultTotalWin * 100) / 100,
|
|
239
262
|
data,
|
|
240
263
|
nextActions,
|
|
241
264
|
session,
|
|
@@ -244,14 +267,12 @@ export class LuaEngine {
|
|
|
244
267
|
};
|
|
245
268
|
}
|
|
246
269
|
|
|
247
|
-
/** Reset all state (sessions, persistent vars, variables) */
|
|
248
270
|
reset(): void {
|
|
249
271
|
this.variables = {};
|
|
250
272
|
this.sessionManager.reset();
|
|
251
273
|
this.persistentState.reset();
|
|
252
274
|
}
|
|
253
275
|
|
|
254
|
-
/** Destroy the Lua VM */
|
|
255
276
|
destroy(): void {
|
|
256
277
|
if (this.L) {
|
|
257
278
|
lua.lua_close(this.L);
|
|
@@ -269,7 +290,6 @@ export class LuaEngine {
|
|
|
269
290
|
throw new Error(`Failed to load Lua script: ${err}`);
|
|
270
291
|
}
|
|
271
292
|
|
|
272
|
-
// Verify that execute() function exists
|
|
273
293
|
lua.lua_getglobal(this.L, to_luastring('execute'));
|
|
274
294
|
if (lua.lua_type(this.L, -1) !== lua.LUA_TFUNCTION) {
|
|
275
295
|
lua.lua_pop(this.L, 1);
|
|
@@ -280,19 +300,23 @@ export class LuaEngine {
|
|
|
280
300
|
|
|
281
301
|
private callLuaExecute(
|
|
282
302
|
stage: string,
|
|
303
|
+
action: string,
|
|
283
304
|
params: Record<string, unknown>,
|
|
284
305
|
variables: Record<string, number>,
|
|
285
306
|
): Record<string, unknown> {
|
|
286
|
-
// Push the execute function
|
|
287
307
|
lua.lua_getglobal(this.L, to_luastring('execute'));
|
|
288
308
|
|
|
289
|
-
// Build
|
|
290
|
-
lua.lua_createtable(this.L, 0,
|
|
309
|
+
// Build state table: {stage, action, params, variables}
|
|
310
|
+
lua.lua_createtable(this.L, 0, 4);
|
|
291
311
|
|
|
292
312
|
// state.stage
|
|
293
313
|
lua.lua_pushstring(this.L, to_luastring(stage));
|
|
294
314
|
lua.lua_setfield(this.L, -2, to_luastring('stage'));
|
|
295
315
|
|
|
316
|
+
// state.action (server sets this at top level)
|
|
317
|
+
lua.lua_pushstring(this.L, to_luastring(action));
|
|
318
|
+
lua.lua_setfield(this.L, -2, to_luastring('action'));
|
|
319
|
+
|
|
296
320
|
// state.params
|
|
297
321
|
pushJSValue(this.L, params);
|
|
298
322
|
lua.lua_setfield(this.L, -2, to_luastring('params'));
|
|
@@ -301,7 +325,6 @@ export class LuaEngine {
|
|
|
301
325
|
pushJSValue(this.L, variables);
|
|
302
326
|
lua.lua_setfield(this.L, -2, to_luastring('variables'));
|
|
303
327
|
|
|
304
|
-
// Call execute(state) → 1 result
|
|
305
328
|
const status = lua.lua_pcall(this.L, 1, 1, 0);
|
|
306
329
|
if (status !== lua.LUA_OK) {
|
|
307
330
|
const err = to_jsstring(lua.lua_tostring(this.L, -1));
|
|
@@ -309,7 +332,37 @@ export class LuaEngine {
|
|
|
309
332
|
throw new Error(`Lua execute() failed: ${err}`);
|
|
310
333
|
}
|
|
311
334
|
|
|
312
|
-
|
|
335
|
+
if (this.simulationMode) {
|
|
336
|
+
// Fast path: extract only total_win, variables, _persist_* keys
|
|
337
|
+
const result: Record<string, unknown> = {};
|
|
338
|
+
|
|
339
|
+
lua.lua_getfield(this.L, -1, to_luastring('total_win'));
|
|
340
|
+
result.total_win = lua.lua_type(this.L, -1) === lua.LUA_TNUMBER
|
|
341
|
+
? lua.lua_tonumber(this.L, -1) : 0;
|
|
342
|
+
lua.lua_pop(this.L, 1);
|
|
343
|
+
|
|
344
|
+
lua.lua_getfield(this.L, -1, to_luastring('variables'));
|
|
345
|
+
if (lua.lua_type(this.L, -1) === lua.LUA_TTABLE) {
|
|
346
|
+
result.variables = luaToJS(this.L, -1);
|
|
347
|
+
}
|
|
348
|
+
lua.lua_pop(this.L, 1);
|
|
349
|
+
|
|
350
|
+
lua.lua_pushnil(this.L);
|
|
351
|
+
while (lua.lua_next(this.L, -2) !== 0) {
|
|
352
|
+
if (lua.lua_type(this.L, -2) === lua.LUA_TSTRING) {
|
|
353
|
+
const key = to_jsstring(lua.lua_tostring(this.L, -2));
|
|
354
|
+
if (key.startsWith('_persist_')) {
|
|
355
|
+
result[key] = luaToJS(this.L, -1);
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
lua.lua_pop(this.L, 1);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
lua.lua_pop(this.L, 1);
|
|
362
|
+
return result;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
// Full path
|
|
313
366
|
const result = luaToJS(this.L, -1);
|
|
314
367
|
lua.lua_pop(this.L, 1);
|
|
315
368
|
|