From eeec26988e3468dbc5bc67448195dacb7e2ebe2a Mon Sep 17 00:00:00 2001 From: Stefan Penner Date: Wed, 1 Mar 2017 09:14:36 -0800 Subject: [PATCH] remove "no use strict" step see: * https://github.com/emberjs/ember.js/pull/14976 * https://github.com/emberjs/ember.js/pull/14624 --- .../conditional-use-strict-babel-plugin.js | 62 ------------------- lib/utils/transpile-es6.js | 2 - tests/utils/transpile-es6-test.js | 31 ---------- 3 files changed, 95 deletions(-) delete mode 100644 lib/utils/conditional-use-strict-babel-plugin.js diff --git a/lib/utils/conditional-use-strict-babel-plugin.js b/lib/utils/conditional-use-strict-babel-plugin.js deleted file mode 100644 index d3d0c8f..0000000 --- a/lib/utils/conditional-use-strict-babel-plugin.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; - -var path = require('path'); -var THIS_BREAK_KEYS = ['FunctionExpression', 'FunctionDeclaration', 'ClassProperty']; - -function conditionalUseStrict(babel) { - var t = babel.types; - - function isStrictDirective(node) { - if (!t.isLiteral(node)) { - return false; - } - - var value; - if (node.raw && node.rawValue === node.value) { - value = node.rawValue; - } else { - value = node.value; - } - - return value === 'use strict' || value === 'no use strict'; - } - - return new babel.Plugin('conditional-use-strict', { - visitor: { - Program: { - enter: function(program) { - var first = program.body[0]; - - var directive; - if (t.isExpressionStatement(first) && isStrictDirective(first.expression)) { - directive = first; - } else { - directive = t.expressionStatement(t.literal('use strict')); - this.unshiftContainer('body', directive); - if (first) { - directive.leadingComments = first.leadingComments; - first.leadingComments = []; - } - } - directive._blockHoist = Infinity; - } - }, - - ThisExpression: function() { - var foundParent = this.findParent(function(path) { - return !path.is('shadow') && THIS_BREAK_KEYS.indexOf(path.type) >= 0; - }); - - if (!foundParent){ - return t.identifier('undefined'); - } - } - } - }); -} - -conditionalUseStrict.baseDir = function() { - return path.join(__dirname, '..', '..'); -}; - -module.exports = conditionalUseStrict; diff --git a/lib/utils/transpile-es6.js b/lib/utils/transpile-es6.js index 3cdfdc4..663634d 100644 --- a/lib/utils/transpile-es6.js +++ b/lib/utils/transpile-es6.js @@ -3,7 +3,6 @@ var Babel = require('broccoli-babel-transpiler'); var assign = require('lodash/object/assign'); var config = require('../config/build-config'); -var conditionalUseStrict = require('./conditional-use-strict-babel-plugin'); var enifedFormatter = require('./babel-enifed-module-formatter'); var stripClassCallCheck = require('./babel-strip-class-call-check'); var resolveModules = require('amd-name-resolver').resolveModules; @@ -51,7 +50,6 @@ module.exports = function(tree, description, _options) { options.plugins = options.plugins.slice(); } - options.plugins.push(conditionalUseStrict); if (options.avoidDefine) { options.plugins.push({ transformer: enifedFormatter, position: 'after' }); } diff --git a/tests/utils/transpile-es6-test.js b/tests/utils/transpile-es6-test.js index dfe5092..5d93c17 100644 --- a/tests/utils/transpile-es6-test.js +++ b/tests/utils/transpile-es6-test.js @@ -47,35 +47,4 @@ describe('transpileES6', function() { .to.equal(file(transpileExpected + '/classes/some-file.js').content.trim()); }); }); - - describe('`conditional-use-strict` plugin', function() { - var results; - - beforeEach(function() { - var strictDirectiveFixture = path.join(transpileFixtures, 'conditional-use-strict'); - - var tree = transpileES6(strictDirectiveFixture); - - builder = new broccoli.Builder(tree); - - return builder.build().then(function(r) { - results = r; - }); - }); - - it('adds `use strict` if it is not present', function() { - expect(file(results.directory + '/without-directive.js')) - .to.equal(file(transpileExpected + '/conditional-use-strict/without-directive.js').content.trim()); - }); - - it('keeps `no use strict` if it is present', function() { - expect(file(results.directory + '/with-no-use-strict-directive.js')) - .to.equal(file(transpileExpected + '/conditional-use-strict/with-no-use-strict-directive.js').content.trim()); - }); - - it('keeps `use strict` if it is present', function() { - expect(file(results.directory + '/with-use-strict-directive.js')) - .to.equal(file(transpileExpected + '/conditional-use-strict/with-use-strict-directive.js').content.trim()); - }); - }); });