summaryrefslogtreecommitdiffstats
path: root/chromium/third_party/node/node_modules/@babel/types/lib/converters/toStatement.js
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/node/node_modules/@babel/types/lib/converters/toStatement.js')
-rw-r--r--chromium/third_party/node/node_modules/@babel/types/lib/converters/toStatement.js47
1 files changed, 47 insertions, 0 deletions
diff --git a/chromium/third_party/node/node_modules/@babel/types/lib/converters/toStatement.js b/chromium/third_party/node/node_modules/@babel/types/lib/converters/toStatement.js
new file mode 100644
index 00000000000..da020a61a01
--- /dev/null
+++ b/chromium/third_party/node/node_modules/@babel/types/lib/converters/toStatement.js
@@ -0,0 +1,47 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = void 0;
+
+var _generated = require("../validators/generated");
+
+var _generated2 = require("../builders/generated");
+
+var _default = toStatement;
+exports.default = _default;
+
+function toStatement(node, ignore) {
+ if ((0, _generated.isStatement)(node)) {
+ return node;
+ }
+
+ let mustHaveId = false;
+ let newType;
+
+ if ((0, _generated.isClass)(node)) {
+ mustHaveId = true;
+ newType = "ClassDeclaration";
+ } else if ((0, _generated.isFunction)(node)) {
+ mustHaveId = true;
+ newType = "FunctionDeclaration";
+ } else if ((0, _generated.isAssignmentExpression)(node)) {
+ return (0, _generated2.expressionStatement)(node);
+ }
+
+ if (mustHaveId && !node.id) {
+ newType = false;
+ }
+
+ if (!newType) {
+ if (ignore) {
+ return false;
+ } else {
+ throw new Error(`cannot turn ${node.type} to a statement`);
+ }
+ }
+
+ node.type = newType;
+ return node;
+} \ No newline at end of file