diff options
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.js | 47 |
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 |