Manipulating objects
Reading and writing slots, growing arrays, iterating containers, and freezing them.
Everything here follows the language's own rules: sq_get consults a _get metamethod, sq_set consults _set, and a frozen container refuses a write. The sq_raw* family on Raw object handling skips the metamethods. A frozen container still refuses a raw write.
sq_next is the iteration primitive. Push a null to start. Each step leaves the key and the value on the stack.
Pushes the current root table in the stack.
Pushes the registry table in the stack.
Pushes the current const table in the stack.
Pops a table from the stack and set it as root table.
Pops a table from the stack and set it as const table.
Pops a key and a value and creates that slot on the table or class at idx, as <- does in script.
Pops a key and removes that slot from the table at idx. Does nothing when the slot is absent.
Pops a key and a value and writes that slot of the value at idx. Consults a _set metamethod.
Pops a key and reads that slot of the value at idx, pushing the result. Consults a _get metamethod.
Pops a key from the stack and performs a get operation on the object at position idx in the stack, without employing delegation or metamethods.
Pops a key and a value from the stack and performs a set operation on the object at position idx in the stack, without employing delegation or metamethods.
Deletes a slot from a table without employing the _delslot metamethod. Pops a key from the stack and delete the slot indexed by it from the table at position idx in the stack; if the slot does not exist nothing happens.
Pops a key and a value from the stack and performs a new slot operation on the class that is at position idx in the stack; if the slot does not exist, it will be created.
Pops a value from the stack and pushes it in the back of the array at the position idx in the stack.
Pops a value from the back of the array at the position idx in the stack.
Resizes the array at the position idx in the stack.
Reverses an array in place.
Removes an item from an array.
Pops a value from the stack and inserts it in an array at the specified position.
Pops a table from the stack and sets it as the delegate of the object at the position idx in the stack.
Pushes the current delegate of the object at the position idx in the stack.
Pushes a clone of the table, array, or class instance at the position idx.
Pops a value from the stack and sets it as a free variable of the closure at the position idx in the stack.
Advances an iteration. Push a null to start; each call replaces it with an iterator and pushes the key and value. Pop those two before the next call, leave the iterator. Fails when the container is exhausted.
Pushes the object pointed by the weak reference at position idx in the stack.
Clears all the elements of the table/array at position idx in the stack.
Pushes an immutable reference to the value at idx. The original is left alone.
Makes the value at idx itself immutable.
Marks a closure pure, which lets the compiler fold calls to it.
Reports whether a closure is marked pure.