clone method

Environment clone({
  1. LuaRuntime? interpreter,
})

Creates a clone of this environment

Implementation

Environment clone({LuaRuntime? interpreter}) {
  final cloned = Environment(
    parent: parent,
    interpreter: interpreter ?? this.interpreter,
  );

  // Copy all values
  for (final entry in values.entries) {
    cloned.values[entry.key] = entry.value;
  }

  // Copy to-be-closed variables
  cloned.toBeClosedVars.addAll(toBeClosedVars);

  cloned._updateCredits();

  return cloned;
}