summaryrefslogtreecommitdiff
path: root/node_modules/babel-plugin-minify-constant-folding/lib/replacements.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/babel-plugin-minify-constant-folding/lib/replacements.js')
-rw-r--r--node_modules/babel-plugin-minify-constant-folding/lib/replacements.js160
1 files changed, 0 insertions, 160 deletions
diff --git a/node_modules/babel-plugin-minify-constant-folding/lib/replacements.js b/node_modules/babel-plugin-minify-constant-folding/lib/replacements.js
deleted file mode 100644
index 652c3d9c..00000000
--- a/node_modules/babel-plugin-minify-constant-folding/lib/replacements.js
+++ /dev/null
@@ -1,160 +0,0 @@
-"use strict";
-
-const FALLBACK_HANDLER = Symbol("fallback handler");
-
-module.exports = ({
- types: t
-}) => {
- const undef = t.unaryExpression("void", t.numericLiteral(0));
-
- function isUndef(ob) {
- return ob === undefined || t.isIdentifier(ob, {
- name: "undefined"
- }) || t.isUnaryExpression(ob, {
- operator: "void"
- });
- }
-
- function defaultZero(cb) {
- return function (i = t.numericLiteral(0), ...args) {
- if (t.isNumericLiteral(i)) {
- return cb.call(this.node, this.node, i.value, ...args);
- }
- };
- }
-
- function hasSpread(node) {
- return node.elements.some(el => t.isSpreadElement(el));
- }
-
- return {
- ArrayExpression: {
- canReplace() {
- return !hasSpread(this.node);
- },
-
- members: {
- length() {
- if (hasSpread(this.node)) {
- return;
- }
-
- return t.numericLiteral(this.node.elements.length);
- },
-
- [FALLBACK_HANDLER](i) {
- if (hasSpread(this.node)) {
- return;
- }
-
- if (typeof i === "number" || i.match(/^\d+$/)) {
- return this.node.elements[i] || undef;
- }
- }
-
- },
- calls: {
- join(sep = t.stringLiteral(",")) {
- if (!t.isStringLiteral(sep)) return;
- let bad = false;
- const str = this.get("elements").map(el => {
- const evaled = el.evaluate();
-
- if (!evaled.confident) {
- bad = true;
- return;
- }
-
- return evaled.value;
- }).join(sep.value);
- return bad ? void 0 : t.stringLiteral(str);
- },
-
- push(...args) {
- return t.numericLiteral(this.node.elements.length + args.length);
- },
-
- shift() {
- if (this.node.elements.length === 0) {
- return undef;
- }
-
- return t.numericLiteral(this.node.elements.length - 1);
- },
-
- slice(start = t.numericLiteral(0), end) {
- if (!t.isNumericLiteral(start) || end && !t.isNumericLiteral(end)) {
- return;
- }
-
- return t.arrayExpression(this.node.elements.slice(start.value, end && end.value));
- },
-
- pop() {
- return this.node.elements[this.node.elements.length - 1] || undef;
- },
-
- reverse() {
- return t.arrayExpression(this.node.elements.reverse());
- },
-
- splice(start, end, ...args) {
- if (!t.isNumericLiteral(start) || end && !t.isNumericLiteral(end)) {
- return;
- }
-
- if (end) {
- args.unshift(end.value);
- }
-
- return t.arrayExpression(this.node.elements.slice().splice(start.value, ...args));
- }
-
- }
- },
- StringLiteral: {
- members: {
- length() {
- return t.numericLiteral(this.node.value.length);
- },
-
- [FALLBACK_HANDLER](i) {
- if (typeof i === "number" || i.match(/^\d+$/)) {
- const ch = this.node.value[i];
- return ch ? t.stringLiteral(ch) : undef;
- }
- }
-
- },
- calls: {
- split(sep = undef) {
- let realSep = null;
-
- if (t.isStringLiteral(sep)) {
- realSep = sep.value;
- }
-
- if (isUndef(sep)) {
- realSep = sep;
- }
-
- if (realSep !== null) {
- return t.arrayExpression(this.node.value.split(realSep).map(str => t.stringLiteral(str)));
- }
- },
-
- charAt: defaultZero(({
- value
- }, i) => t.stringLiteral(value.charAt(i))),
- charCodeAt: defaultZero(({
- value
- }, i) => t.numericLiteral(value.charCodeAt(i))),
- codePointAt: defaultZero(({
- value
- }, i) => t.numericLiteral(value.codePointAt(i)))
- }
- }
- };
-};
-
-module.exports.FALLBACK_HANDLER = FALLBACK_HANDLER; \ No newline at end of file