in src/mockDebug.ts [428:451]
protected async variablesRequest(response: DebugProtocol.VariablesResponse, args: DebugProtocol.VariablesArguments, request?: DebugProtocol.Request): Promise<void> {
let vs: RuntimeVariable[] = [];
const v = this._variableHandles.get(args.variablesReference);
if (v === 'locals') {
vs = this._runtime.getLocalVariables();
} else if (v === 'globals') {
if (request) {
this._cancellationTokens.set(request.seq, false);
vs = await this._runtime.getGlobalVariables(() => !!this._cancellationTokens.get(request.seq));
this._cancellationTokens.delete(request.seq);
} else {
vs = await this._runtime.getGlobalVariables();
}
} else if (v && Array.isArray(v.value)) {
vs = v.value;
}
response.body = {
variables: vs.map(v => this.convertFromRuntime(v))
};
this.sendResponse(response);
}