luaur_compiler/methods/
compiler_get_export_table_reg.rs1use crate::records::compiler::Compiler;
2use luaur_ast::records::ast_node::AstNode;
3use luaur_common::enums::luau_opcode::LuauOpcode;
4
5impl Compiler {
6 pub fn get_export_table_reg(&mut self, node: *mut AstNode) -> u8 {
7 let local_ptr = &mut self.export_table_local as *mut _;
8 let reg = self.get_local_reg(local_ptr);
9 if reg >= 0 {
10 return reg as u8;
11 }
12
13 let upval = self.get_upval(local_ptr);
14 let reg = self.alloc_reg(node, 1);
15 unsafe {
16 (*self.bytecode).emit_abc(LuauOpcode::LOP_GETUPVAL, reg, upval, 0);
17 }
18 reg
19 }
20}