UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 649 B
import*as Platform from"../platform/platform.js";export class WasmDisassembly{lines;#t;#e;constructor(t,e,s){if(t.length!==e.length)throw new Error("Lines and offsets don't match");this.lines=t,this.#t=e,this.#e=s}get lineNumbers(){return this.#t.length}bytecodeOffsetToLineNumber(t){return Platform.ArrayUtilities.upperBound(this.#t,t,Platform.ArrayUtilities.DEFAULT_COMPARATOR)-1}lineNumberToBytecodeOffset(t){return this.#t[t]}*nonBreakableLineNumbers(){let t=0,e=0;for(;t<this.lineNumbers;){if(e<this.#e.length){if(this.lineNumberToBytecodeOffset(t)>=this.#e[e].start){t=this.bytecodeOffsetToLineNumber(this.#e[e++].end)+1;continue}}yield t++}}}