Browse Source

make use strict optional

contingency-plan
Rich-Harris 9 years ago
parent
commit
1fea163ccc
  1. 3
      src/finalisers/amd.js
  2. 4
      src/finalisers/cjs.js
  3. 3
      src/finalisers/iife.js
  4. 4
      src/finalisers/umd.js

3
src/finalisers/amd.js

@ -15,7 +15,8 @@ export default function amd ( bundle, magicString, { exportMode, indentString },
( options.moduleId ? `'${options.moduleId}', ` : `` ) +
( deps.length ? `[${deps.join( ', ' )}], ` : `` );
const intro = `define(${params}function (${args.join( ', ' )}) { 'use strict';\n\n`;
const useStrict = options.useStrict !== false ? ` 'use strict';` : ``;
const intro = `define(${params}function (${args.join( ', ' )}) {${useStrict}\n\n`;
// var foo__default = 'default' in foo ? foo['default'] : foo;
const interopBlock = getInteropBlock( bundle );

4
src/finalisers/cjs.js

@ -1,7 +1,7 @@
import getExportBlock from './shared/getExportBlock';
export default function cjs ( bundle, magicString, { exportMode }) {
let intro = `'use strict';\n\n`;
export default function cjs ( bundle, magicString, { exportMode }, options ) {
let intro = options.useStrict === false ? `` : `'use strict';\n\n`;
// TODO handle empty imports, once they're supported
const importBlock = bundle.externalModules

3
src/finalisers/iife.js

@ -21,7 +21,8 @@ export default function iife ( bundle, magicString, { exportMode, indentString }
args.unshift( 'exports' );
}
let intro = `(function (${args}) { 'use strict';\n\n`;
const useStrict = options.useStrict !== false ? ` 'use strict';` : ``;
let intro = `(function (${args}) {${useStrict}\n\n`;
let outro = `\n\n})(${dependencies});`;
if ( exportMode === 'default' ) {

4
src/finalisers/umd.js

@ -33,12 +33,14 @@ export default function umd ( bundle, magicString, { exportMode, indentString },
const cjsExport = exportMode === 'default' ? `module.exports = ` : ``;
const defaultExport = exportMode === 'default' ? `global.${options.moduleName} = ` : '';
const useStrict = options.useStrict !== false ? ` 'use strict';` : ``;
const intro =
`(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? ${cjsExport}factory(${cjsDeps.join( ', ' )}) :
typeof define === 'function' && define.amd ? define(${amdParams}factory) :
${defaultExport}factory(${globalDeps});
}(this, function (${args}) { 'use strict';
}(this, function (${args}) {${useStrict}
`.replace( /^\t\t/gm, '' ).replace( /^\t/gm, magicString.getIndentString() );

Loading…
Cancel
Save