mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-04 21:53:42 -06:00
Merge pull request #29860 from RyanCavanaugh/noEval
Enable no-eval rule
This commit is contained in:
commit
75101d4b72
@ -56,6 +56,7 @@ namespace evaluator {
|
||||
}
|
||||
|
||||
const evaluateText = `(function (module, exports, require, __dirname, __filename, ${globalNames.join(", ")}) { ${output.text} })`;
|
||||
// tslint:disable-next-line:no-eval
|
||||
const evaluateThunk = eval(evaluateText) as (module: any, exports: any, require: (id: string) => any, dirname: string, filename: string, ...globalArgs: any[]) => void;
|
||||
const module: { exports: any; } = { exports: {} };
|
||||
evaluateThunk.call(globals, module, module.exports, noRequire, vpath.dirname(output.file), output.file, FakeSymbol, ...globalArgs);
|
||||
|
||||
@ -3159,6 +3159,7 @@ ${code}
|
||||
const debug = new FourSlashInterface.Debug(state);
|
||||
const format = new FourSlashInterface.Format(state);
|
||||
const cancellation = new FourSlashInterface.Cancellation(state);
|
||||
// tslint:disable-next-line:no-eval
|
||||
const f = eval(wrappedCode);
|
||||
f(test, goTo, plugins, verify, edit, debug, format, cancellation, FourSlashInterface.Classification, FourSlashInterface.Completion, verifyOperationIsCancelled);
|
||||
}
|
||||
|
||||
@ -77,6 +77,7 @@ namespace Utils {
|
||||
const environment = getExecutionEnvironment();
|
||||
switch (environment) {
|
||||
case ExecutionEnvironment.Browser:
|
||||
// tslint:disable-next-line:no-eval
|
||||
eval(fileContents);
|
||||
break;
|
||||
case ExecutionEnvironment.Node:
|
||||
|
||||
@ -766,6 +766,7 @@ namespace Harness.LanguageService {
|
||||
}
|
||||
|
||||
setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): any {
|
||||
// tslint:disable-next-line:ban
|
||||
return setTimeout(callback, ms, args);
|
||||
}
|
||||
|
||||
|
||||
@ -302,6 +302,7 @@ namespace Harness.Parallel.Host {
|
||||
worker.timer = undefined;
|
||||
}
|
||||
else {
|
||||
// tslint:disable-next-line:ban
|
||||
worker.timer = setTimeout(killChild, data.payload.duration, data.payload);
|
||||
}
|
||||
break;
|
||||
@ -623,6 +624,7 @@ namespace Harness.Parallel.Host {
|
||||
shimNoopTestInterface(global);
|
||||
}
|
||||
|
||||
// tslint:disable-next-line:ban
|
||||
setTimeout(() => startDelayed(perfData, totalCost), 0); // Do real startup on next tick, so all unit tests have been collected
|
||||
}
|
||||
}
|
||||
|
||||
@ -705,6 +705,7 @@ namespace ts.server {
|
||||
// stat due to inconsistencies of fs.watch
|
||||
// and efficiency of stat on modern filesystems
|
||||
function startWatchTimer() {
|
||||
// tslint:disable-next-line:ban
|
||||
setInterval(() => {
|
||||
let count = 0;
|
||||
let nextToCheck = nextFileToCheck;
|
||||
|
||||
@ -5,6 +5,11 @@
|
||||
"no-unnecessary-type-assertion": true,
|
||||
|
||||
"array-type": [true, "array"],
|
||||
"ban": [
|
||||
true,
|
||||
"setInterval",
|
||||
"setTimeout"
|
||||
],
|
||||
"ban-types": {
|
||||
"options": [
|
||||
["Object", "Avoid using the `Object` type. Did you mean `object`?"],
|
||||
@ -34,6 +39,7 @@
|
||||
],
|
||||
"no-bom": true,
|
||||
"no-double-space": true,
|
||||
"no-eval": true,
|
||||
"no-in-operator": true,
|
||||
"no-increment-decrement": true,
|
||||
"no-inferrable-types": true,
|
||||
@ -100,7 +106,6 @@
|
||||
"no-console": false,
|
||||
"no-debugger": false,
|
||||
"no-empty-interface": false,
|
||||
"no-eval": false,
|
||||
"no-object-literal-type-assertion": false,
|
||||
"no-shadowed-variable": false,
|
||||
"no-submodule-imports": false,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user