assign method

void assign(
  1. String id,
  2. dynamic value, {
  3. String? namespace,
  4. String? module,
  5. bool defineIfAbsent = false,
})

Assign value to a top level variable defined in a certain namespace in the interpreter.

Implementation

void assign(String id, dynamic value,
    {String? namespace, String? module, bool defineIfAbsent = false}) {
  try {
    final savedModuleName = _currentBytecodeModule.id;
    final nsp = _fetchNamespace(namespace: namespace, module: module);
    nsp.memberSet(id, value, defineIfAbsent: defineIfAbsent);
    if (_currentBytecodeModule.id != savedModuleName) {
      _currentBytecodeModule = cachedModules[savedModuleName]!;
    }
  } catch (error, stackTrace) {
    if (config.processError) {
      processError(error, stackTrace);
    } else {
      rethrow;
    }
  }
}