diff --git a/src/babel/transformation/templates/ludicrous-in.js b/src/babel/transformation/templates/ludicrous-in.js new file mode 100644 index 0000000000..80348f0da7 --- /dev/null +++ b/src/babel/transformation/templates/ludicrous-in.js @@ -0,0 +1 @@ +Object(RIGHT)[LEFT] !== undefined; diff --git a/src/babel/transformation/transformers/es1/ludicrous.js b/src/babel/transformation/transformers/es1/ludicrous.js deleted file mode 100644 index 27d9045c11..0000000000 --- a/src/babel/transformation/transformers/es1/ludicrous.js +++ /dev/null @@ -1,5 +0,0 @@ -import * as t from "../../../types"; - -export var metadata = { - optional: true -}; diff --git a/src/babel/transformation/transformers/index.js b/src/babel/transformation/transformers/index.js index 80570ae174..373c956936 100644 --- a/src/babel/transformation/transformers/index.js +++ b/src/babel/transformation/transformers/index.js @@ -101,8 +101,8 @@ export default { "es7.doExpressions": require("./es7/do-expressions"), "es6.spec.symbols": require("./es6/spec.symbols"), + ludicrous: require("./other/ludicrous"), "spec.undefinedToVoid": require("./spec/undefined-to-void"), - "es1.ludicrous": require("./es1/ludicrous"), _strict: require("./internal/strict"), _moduleFormatter: require("./internal/module-formatter"), diff --git a/src/babel/transformation/transformers/other/ludicrous.js b/src/babel/transformation/transformers/other/ludicrous.js new file mode 100644 index 0000000000..e240018e47 --- /dev/null +++ b/src/babel/transformation/transformers/other/ludicrous.js @@ -0,0 +1,29 @@ +import * as t from "../../../types"; +import * as util from "../../../util"; + +export var metadata = { + optional: true +}; + +export function BinaryExpression(node) { + if (node.operator === "in") { + return util.template("ludicrous-in", { + LEFT: node.left, + RIGHT: node.right + }); + } +} + +export function Property(node) { + var key = node.key; + if (t.isLiteral(key) && typeof key.value === "number") { + key.value = "" + key.value; + } +} + +export function Literal(node) { + if (node.regex) { + node.regex.pattern = "foobar"; + node.regex.flags = ""; + } +}