From db6b7a609a27062098e90d56e0415a6fb8c4d4bc Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Thu, 3 Oct 2019 02:24:19 +0200 Subject: [PATCH 1/2] tools: prohibit Error.prepareStackTrace usage This eslint rule makes sure that `prepareStackTrace` is not used in Node.js core. --- lib/.eslintrc.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml index 824bd32980da8c..4863c380f68766 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -30,6 +30,8 @@ rules: message: "Use an error exported by the internal/errors module." - selector: "CallExpression[callee.object.name='Error'][callee.property.name='captureStackTrace']" message: "Please use `require('internal/errors').hideStackFrames()` instead." + - selector: "AssignmentExpression:matches([left.name='prepareStackTrace'], [left.property.name='prepareStackTrace'])" + message: "Please use 'internalOverriddenErrors' from 'lib/internal/errors.js' instead of 'Error.prepareStackTrace'." # Custom rules in tools/eslint-rules node-core/lowercase-name-for-primitive: error node-core/non-ascii-character: error From 620cd3059b000aa7e1401aee75a8b4dc75a87510 Mon Sep 17 00:00:00 2001 From: Ruben Bridgewater Date: Thu, 3 Oct 2019 13:25:41 +0200 Subject: [PATCH 2/2] fixup --- lib/.eslintrc.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/.eslintrc.yaml b/lib/.eslintrc.yaml index 4863c380f68766..f0d67756a514ee 100644 --- a/lib/.eslintrc.yaml +++ b/lib/.eslintrc.yaml @@ -31,7 +31,7 @@ rules: - selector: "CallExpression[callee.object.name='Error'][callee.property.name='captureStackTrace']" message: "Please use `require('internal/errors').hideStackFrames()` instead." - selector: "AssignmentExpression:matches([left.name='prepareStackTrace'], [left.property.name='prepareStackTrace'])" - message: "Please use 'internalOverriddenErrors' from 'lib/internal/errors.js' instead of 'Error.prepareStackTrace'." + message: "Use 'overrideStackTrace' from 'lib/internal/errors.js' instead of 'Error.prepareStackTrace'." # Custom rules in tools/eslint-rules node-core/lowercase-name-for-primitive: error node-core/non-ascii-character: error