happy-dom
Version:
Happy DOM is a JavaScript implementation of a web browser without its graphical user interface. It includes many web standards from WHATWG DOM and HTML.
23 lines (21 loc) • 632 B
text/typescript
import IBrowserFrame from '../types/IBrowserFrame.js';
import { Script } from 'vm';
/**
* Browser frame script evaluator.
*/
export default class BrowserFrameScriptEvaluator {
/**
* Evaluates code or a VM Script in the frame's context.
*
* @param frame Frame.
* @param script Script.
* @returns Result.
*/
public static evaluate(frame: IBrowserFrame, script: string | Script): any {
if (!frame.window) {
throw new Error('The frame has been destroyed, the "window" property is not set.');
}
script = typeof script === 'string' ? new Script(script) : script;
return script.runInContext(frame.window);
}
}