siphon-cli
Version:
Simple bundler for web applications. 📦🔧🧡
30 lines (29 loc) • 2.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var types_1 = require("../../../../../../types");
var creator_1 = require("../../helpers/creator");
var prototype_1 = require("./prototype");
var String_prototype_includes = (0, creator_1.memberExpression)(prototype_1.default, (0, creator_1.newIdentifier)("includes"));
var searchString = (0, creator_1.newIdentifier)("searchString");
var position = (0, creator_1.newIdentifier)("position");
var regexQuery = new types_1.IfStatement(0);
regexQuery.test = (0, creator_1.binaryExpression)(searchString, "instanceof", (0, creator_1.newIdentifier)("RegexEp"));
var throwstat = new types_1.ThrowStatement(0);
throwstat.argument = (0, creator_1.callExpression)((0, creator_1.newIdentifier)("TypeError"), [
(0, creator_1.newString)('"First argument must not be a RegExp"'),
]);
regexQuery.consequent = throwstat;
regexQuery.alternate = null;
var posUndefined = new types_1.IfStatement(0);
posUndefined.test = (0, creator_1.binaryExpression)(position, "===", creator_1.undefined_);
posUndefined.consequent = (0, creator_1.expressionStatement)((0, creator_1.assignmentExpression)(position, "=", (0, creator_1.numberLiteral)(0)));
posUndefined.alternate = null;
var retstat = new types_1.ReturnStatement(0);
retstat.argument = (0, creator_1.binaryExpression)((0, creator_1.callExpression)((0, creator_1.memberExpression)(creator_1.this_, (0, creator_1.newIdentifier)("indexOf")), [searchString, position]), "!==", (0, creator_1.unaryExpression)("-", (0, creator_1.numberLiteral)(1)));
var includes = new types_1.IfStatement(0);
includes.test = (0, creator_1.binaryExpression)(String_prototype_includes, "===", creator_1.undefined_);
includes.consequent = (0, creator_1.blockStatement)([
(0, creator_1.expressionStatement)((0, creator_1.assignmentExpression)(String_prototype_includes, "=", (0, creator_1.newFunctionExp)(null, [searchString, position], (0, creator_1.blockStatement)([creator_1.use_strict, regexQuery, posUndefined, retstat])))),
]);
includes.alternate = null;
exports.default = includes;