babel/lib/6to5/transformers/use-strict.js
2014-10-30 13:09:12 +11:00

16 lines
458 B
JavaScript

var b = require("../builders");
module.exports = function (ast, file) {
var body = ast.program.body;
var first = body[0];
var noStrict = !first || first.type !== "ExpressionStatement" || first.expression.type !== "Literal" || first.expression.value !== "use strict";
if (noStrict) {
if (file.opts._noStrict) return;
body.unshift(b.expressionStatement(b.literal("use strict")));
} else {
if (file.opts._noStrict) body.shift();
}
};