@awayfl/avm2
Version:
Virtual machine for executing AS3 code
27 lines (26 loc) • 1.16 kB
JavaScript
import { IndentingWriter, dumpLine, release, registerDebugMethod } from '@awayfl/swf-loader';
import { WriterFlags } from './WriterFlags';
var writer = new IndentingWriter(false, function (x) { dumpLine(x); });
export var runtimeWriter = null;
export var executionWriter = null;
export var interpreterWriter = null;
export function sliceArguments(args, offset) {
return Array.prototype.slice.call(args, offset);
}
export function setWriters(flags, output) {
if (output === void 0) { output = writer; }
if (typeof output === 'function') {
output = new IndentingWriter(false, output);
}
runtimeWriter = (flags & WriterFlags.Runtime) ? output : null;
executionWriter = (flags & (WriterFlags.Execution | WriterFlags.Interpreter)) ? output : null;
interpreterWriter = (flags & WriterFlags.Interpreter) ? output : null;
}
// export WRITER API for capture AVM2 reports
if (!release) {
registerDebugMethod(setWriters, {
name: 'registerWriter',
description: 'Registering a writer function for capturing logs',
declaration: [{ name: 'flags', type: 'string' }, { name: 'func', type: 'function' }]
});
}