MCPcopy Create free account
hub / github.com/CashScript/cashscript / optimiseBytecodeOld

Function optimiseBytecodeOld

packages/utils/src/script.ts:217–240  ·  view source on GitHub ↗
(script: Script, runs: number = 1000)

Source from the content-addressed store, hash-verified

215}
216
217export function optimiseBytecodeOld(script: Script, runs: number = 1000): Script {
218 const optimisations = OptimisationsEquivFile
219 // Split by line and filter all line comments (#)
220 .split('\n')
221 .map((equiv) => equiv.trim())
222 .filter((equiv) => !equiv.startsWith('#'))
223 // Join back the lines, and split on semicolon
224 .join('')
225 .split(';')
226 // Parse all optimisations in .equiv file
227 .map((equiv) => equiv.trim())
228 .map((equiv) => equiv.split('<=>').map((part) => part.trim()))
229 .filter((equiv) => equiv.length === 2);
230
231 for (let i = 0; i < runs; i += 1) {
232 const oldScript = script;
233 script = replaceOpsOld(script, optimisations);
234
235 // Break on fixed point
236 if (scriptToAsm(oldScript) === scriptToAsm(script)) break;
237 }
238
239 return script;
240}
241
242function replaceOpsOld(script: Script, optimisations: string[][]): Script {
243 let asm = scriptToAsm(script);

Callers 1

compileStringFunction · 0.90

Calls 2

replaceOpsOldFunction · 0.85
scriptToAsmFunction · 0.85

Tested by

no test coverage detected