Skip to content

Commit f637875

Browse files
committed
Fix coverage threshold, remove perf code not needed on Node >= 16
1 parent 6e16492 commit f637875

File tree

1 file changed

+10
-28
lines changed

1 file changed

+10
-28
lines changed

src/parsing/tylasu-parser.ts

+10-28
Original file line numberDiff line numberDiff line change
@@ -28,24 +28,6 @@ import {
2828
} from "./parsing";
2929
import {ASTParser} from "./ast-parser";
3030

31-
let now: () => number;
32-
try {
33-
// Web
34-
performance.now();
35-
now = () => performance.now();
36-
} catch (e) {
37-
try {
38-
// Node.js
39-
if (global) {
40-
const { performance } = global['require']('perf_hooks');
41-
now = () => performance.now();
42-
}
43-
} catch (e) {
44-
// Fallback
45-
now = () => new Date().getTime();
46-
}
47-
}
48-
4931
export abstract class TokenFactory<T extends TylasuToken> {
5032
// eslint-disable-next-line @typescript-eslint/no-unused-vars
5133
categoryOf(t: Token): TokenCategory {
@@ -101,7 +83,7 @@ export abstract class TylasuANTLRLexer<T extends TylasuToken> implements TylasuL
10183
lex(inputStream: CharStream, onlyFromDefaultChannel = true): LexingResult<T> {
10284
const issues: Issue[] = [];
10385
const tokens: T[] = [];
104-
const time = now();
86+
const time = performance.now();
10587
const lexer = this.createANTLRLexer(inputStream)!;
10688
this.injectErrorCollectorInLexer(lexer, issues);
10789
let t: Token;
@@ -122,7 +104,7 @@ export abstract class TylasuANTLRLexer<T extends TylasuToken> implements TylasuL
122104
}
123105

124106
const code = inputStream.getText(Interval.of(0, inputStream.size - 1));
125-
return new LexingResult(code, tokens, issues, now() - time);
107+
return new LexingResult(code, tokens, issues, performance.now() - time);
126108
}
127109

128110
protected injectErrorCollectorInLexer(lexer: Lexer, issues: Issue[]): void {
@@ -220,23 +202,23 @@ export abstract class TylasuParser<
220202
parseFirstStage(inputStream: CharStream, measureLexingTime = false): FirstStageParsingResult<C> {
221203
const issues: Issue[] = [];
222204
let lexingTime: number | undefined = undefined;
223-
const time = now();
205+
const time = performance.now();
224206
const parser = this.createParser(inputStream, issues);
225207
if (measureLexingTime) {
226208
const tokenStream = parser.inputStream;
227209
if (tokenStream instanceof CommonTokenStream) {
228-
lexingTime = now();
210+
lexingTime = performance.now();
229211
tokenStream.fill();
230212
tokenStream.seek(0);
231-
lexingTime = lexingTime - now();
213+
lexingTime = lexingTime - performance.now();
232214
}
233215
}
234216
const root = this.invokeRootRule(parser);
235217
if (root != null) {
236218
this.verifyParseTree(parser, issues, root);
237219
}
238220
const code = inputStream.getText(Interval.of(0, inputStream.size - 1));
239-
return new FirstStageParsingResult(code, root, issues, parser, now() - time, lexingTime);
221+
return new FirstStageParsingResult(code, root, issues, parser, performance.now() - time, lexingTime);
240222
}
241223

242224
// eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -254,7 +236,7 @@ export abstract class TylasuParser<
254236
}
255237
code = new CharStream(code);
256238
}
257-
const start = now()
239+
const start = performance.now();
258240
const firstStage = this.parseFirstStage(code, measureLexingTime);
259241
const issues = firstStage.issues;
260242
let ast = this.parseTreeToAst(firstStage.root!, considerPosition, issues, source);
@@ -270,7 +252,7 @@ export abstract class TylasuParser<
270252
}
271253
}
272254
const text = code.getText(Interval.of(0, code.size - 1));
273-
return new ParsingResult(text, ast, issues, undefined, firstStage, now() - start);
255+
return new ParsingResult(text, ast, issues, undefined, firstStage, performance.now() - start);
274256
}
275257

276258
/**
@@ -302,8 +284,8 @@ export abstract class TylasuParser<
302284

303285
function processDescendantsAndErrors(
304286
self: ParserRuleContext,
305-
operationOnParserRuleContext: (ParserRuleContext) => void,
306-
operationOnError: (ErrorNode) => void,
287+
operationOnParserRuleContext: (c: ParserRuleContext) => void,
288+
operationOnError: (e: ErrorNode) => void,
307289
includingMe = true
308290
) {
309291
if (includingMe) {

0 commit comments

Comments
 (0)