mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-26 09:33:49 +01:00
Merge pull request #1629 from danielyxie/dev
dont run inf loop check on ns1 scripts
This commit is contained in:
commit
12207ab106
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -234,7 +234,6 @@ export function checkInfiniteLoop(code: string): number {
|
|||||||
{
|
{
|
||||||
WhileStatement: (node: acorn.Node, st: any, walkDeeper: walk.WalkerCallback<any>) => {
|
WhileStatement: (node: acorn.Node, st: any, walkDeeper: walk.WalkerCallback<any>) => {
|
||||||
if (nodeHasTrueTest((node as any).test) && !hasAwait(node)) {
|
if (nodeHasTrueTest((node as any).test) && !hasAwait(node)) {
|
||||||
console.log(node);
|
|
||||||
missingAwaitLine = (code.slice(0, node.start).match(/\n/g) || []).length + 1;
|
missingAwaitLine = (code.slice(0, node.start).match(/\n/g) || []).length + 1;
|
||||||
} else {
|
} else {
|
||||||
(node as any).body && walkDeeper((node as any).body, st);
|
(node as any).body && walkDeeper((node as any).body, st);
|
||||||
|
@ -227,35 +227,41 @@ export function Root(props: IProps): React.ReactElement {
|
|||||||
setFilename(event.target.value);
|
setFilename(event.target.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function infLoop(newCode: string): void {
|
||||||
|
if (editorRef.current === null) return;
|
||||||
|
if (!filename.endsWith(".ns") && !filename.endsWith(".js")) return;
|
||||||
|
const awaitWarning = checkInfiniteLoop(newCode);
|
||||||
|
if (awaitWarning !== -1) {
|
||||||
|
const newDecorations = editorRef.current.deltaDecorations(decorations, [
|
||||||
|
{
|
||||||
|
range: {
|
||||||
|
startLineNumber: awaitWarning,
|
||||||
|
startColumn: 1,
|
||||||
|
endLineNumber: awaitWarning,
|
||||||
|
endColumn: 10,
|
||||||
|
},
|
||||||
|
options: {
|
||||||
|
isWholeLine: true,
|
||||||
|
glyphMarginClassName: "myGlyphMarginClass",
|
||||||
|
glyphMarginHoverMessage: {
|
||||||
|
value: "Possible infinite loop, await something.",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
setDecorations(newDecorations);
|
||||||
|
} else {
|
||||||
|
const newDecorations = editorRef.current.deltaDecorations(decorations, []);
|
||||||
|
setDecorations(newDecorations);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function updateCode(newCode?: string): void {
|
function updateCode(newCode?: string): void {
|
||||||
if (newCode === undefined) return;
|
if (newCode === undefined) return;
|
||||||
lastCode = newCode;
|
lastCode = newCode;
|
||||||
if (editorRef.current !== null) {
|
if (editorRef.current !== null) {
|
||||||
lastPosition = editorRef.current.getPosition();
|
lastPosition = editorRef.current.getPosition();
|
||||||
const awaitWarning = checkInfiniteLoop(newCode);
|
infLoop(newCode);
|
||||||
if (awaitWarning !== -1) {
|
|
||||||
const newDecorations = editorRef.current.deltaDecorations(decorations, [
|
|
||||||
{
|
|
||||||
range: {
|
|
||||||
startLineNumber: awaitWarning,
|
|
||||||
startColumn: 1,
|
|
||||||
endLineNumber: awaitWarning,
|
|
||||||
endColumn: 10,
|
|
||||||
},
|
|
||||||
options: {
|
|
||||||
isWholeLine: true,
|
|
||||||
glyphMarginClassName: "myGlyphMarginClass",
|
|
||||||
glyphMarginHoverMessage: {
|
|
||||||
value: "Possible infinite loop, await something.",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]);
|
|
||||||
setDecorations(newDecorations);
|
|
||||||
} else {
|
|
||||||
const newDecorations = editorRef.current.deltaDecorations(decorations, []);
|
|
||||||
setDecorations(newDecorations);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
setCode(newCode);
|
setCode(newCode);
|
||||||
updateRAM(newCode);
|
updateRAM(newCode);
|
||||||
|
Loading…
Reference in New Issue
Block a user