diff --git a/test/form/side-effect-m/_config.js b/test/form/side-effect-m/_config.js new file mode 100644 index 0000000..5fc4d8c --- /dev/null +++ b/test/form/side-effect-m/_config.js @@ -0,0 +1,4 @@ +module.exports = { + solo: true, + description: 'detects side-effects with cyclical dependencies' +}; diff --git a/test/form/side-effect-m/_expected/amd.js b/test/form/side-effect-m/_expected/amd.js new file mode 100644 index 0000000..763d466 --- /dev/null +++ b/test/form/side-effect-m/_expected/amd.js @@ -0,0 +1,21 @@ +define(function () { 'use strict'; + + function odd ( n ) { + return n !== 0 && even( n - 1 ); + } + + var counter = 0; + + // This should be in the output + export var foo = odd( 12 ); + + function even ( n ) { + alert( counter++ ) + return n === 0 || odd( n - 1 ); + } + + console.log( even( 5 ) ); + + console.log( counter ); + +}); diff --git a/test/form/side-effect-m/_expected/cjs.js b/test/form/side-effect-m/_expected/cjs.js new file mode 100644 index 0000000..8aeebd5 --- /dev/null +++ b/test/form/side-effect-m/_expected/cjs.js @@ -0,0 +1,19 @@ +'use strict'; + +function odd ( n ) { + return n !== 0 && even( n - 1 ); +} + +var counter = 0; + +// This should be in the output +export var foo = odd( 12 ); + +function even ( n ) { + alert( counter++ ) + return n === 0 || odd( n - 1 ); +} + +console.log( even( 5 ) ); + +console.log( counter ); diff --git a/test/form/side-effect-m/_expected/es6.js b/test/form/side-effect-m/_expected/es6.js new file mode 100644 index 0000000..f1bc219 --- /dev/null +++ b/test/form/side-effect-m/_expected/es6.js @@ -0,0 +1,17 @@ +function odd ( n ) { + return n !== 0 && even( n - 1 ); +} + +var counter = 0; + +// This should be in the output +export var foo = odd( 12 ); + +function even ( n ) { + alert( counter++ ) + return n === 0 || odd( n - 1 ); +} + +console.log( even( 5 ) ); + +console.log( counter ); diff --git a/test/form/side-effect-m/_expected/iife.js b/test/form/side-effect-m/_expected/iife.js new file mode 100644 index 0000000..b507ec9 --- /dev/null +++ b/test/form/side-effect-m/_expected/iife.js @@ -0,0 +1,21 @@ +(function () { 'use strict'; + + function odd ( n ) { + return n !== 0 && even( n - 1 ); + } + + var counter = 0; + + // This should be in the output + export var foo = odd( 12 ); + + function even ( n ) { + alert( counter++ ) + return n === 0 || odd( n - 1 ); + } + + console.log( even( 5 ) ); + + console.log( counter ); + +})(); diff --git a/test/form/side-effect-m/_expected/umd.js b/test/form/side-effect-m/_expected/umd.js new file mode 100644 index 0000000..45f0a07 --- /dev/null +++ b/test/form/side-effect-m/_expected/umd.js @@ -0,0 +1,25 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory() : + typeof define === 'function' && define.amd ? define(factory) : + (factory()); +}(this, function () { 'use strict'; + + function odd ( n ) { + return n !== 0 && even( n - 1 ); + } + + var counter = 0; + + // This should be in the output + export var foo = odd( 12 ); + + function even ( n ) { + alert( counter++ ) + return n === 0 || odd( n - 1 ); + } + + console.log( even( 5 ) ); + + console.log( counter ); + +})); diff --git a/test/form/side-effect-m/even.js b/test/form/side-effect-m/even.js new file mode 100644 index 0000000..5b16c01 --- /dev/null +++ b/test/form/side-effect-m/even.js @@ -0,0 +1,11 @@ +import { odd } from './odd.js' + +export var counter = 0; + +// This should be in the output +export var foo = odd( 12 ); + +export function even ( n ) { + alert( counter++ ) + return n === 0 || odd( n - 1 ); +} diff --git a/test/form/side-effect-m/main.js b/test/form/side-effect-m/main.js new file mode 100644 index 0000000..a7adf02 --- /dev/null +++ b/test/form/side-effect-m/main.js @@ -0,0 +1,5 @@ +import { counter, even } from './even.js'; + +console.log( even( 5 ) ); + +console.log( counter ); diff --git a/test/form/side-effect-m/odd.js b/test/form/side-effect-m/odd.js new file mode 100644 index 0000000..0293a7b --- /dev/null +++ b/test/form/side-effect-m/odd.js @@ -0,0 +1,5 @@ +import { even } from './even.js'; + +export function odd ( n ) { + return n !== 0 && even( n - 1 ); +}