aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/compress/functions.js150
1 files changed, 150 insertions, 0 deletions
diff --git a/test/compress/functions.js b/test/compress/functions.js
index 83a27a06..888c6e3c 100644
--- a/test/compress/functions.js
+++ b/test/compress/functions.js
@@ -1496,3 +1496,153 @@ issue_2657: {
}
expect_stdout: "42"
}
+
+issue_2663_1: {
+ options = {
+ inline: true,
+ reduce_vars: true,
+ unused: true,
+ }
+ input: {
+ (function() {
+ var i, o = {};
+ function createFn(j) {
+ return function() {
+ console.log(j);
+ };
+ }
+ for (i in { a: 1, b: 2, c: 3 })
+ o[i] = createFn(i);
+ for (i in o)
+ o[i]();
+ })();
+ }
+ expect: {
+ (function() {
+ var i, o = {};
+ function createFn(j) {
+ return function() {
+ console.log(j);
+ };
+ }
+ for (i in { a: 1, b: 2, c: 3 })
+ o[i] = createFn(i);
+ for (i in o)
+ o[i]();
+ })();
+ }
+ expect_stdout: [
+ "a",
+ "b",
+ "c",
+ ]
+}
+
+issue_2663_2: {
+ options = {
+ inline: true,
+ reduce_vars: true,
+ side_effects: true,
+ unused: true,
+ }
+ input: {
+ (function() {
+ var i;
+ function fn(j) {
+ return function() {
+ console.log(j);
+ }();
+ }
+ for (i in { a: 1, b: 2, c: 3 })
+ fn(i);
+ })();
+ }
+ expect: {
+ (function() {
+ var i;
+ for (i in { a: 1, b: 2, c: 3 })
+ j = i, console.log(j);
+ var j;
+ })();
+ }
+ expect_stdout: [
+ "a",
+ "b",
+ "c",
+ ]
+}
+
+issue_2663_3: {
+ options = {
+ inline: true,
+ reduce_vars: true,
+ unused: true,
+ }
+ input: {
+ (function () {
+ var outputs = [
+ { type: 0, target: null, eventName: "ngSubmit", propName: null },
+ { type: 0, target: null, eventName: "submit", propName: null },
+ { type: 0, target: null, eventName: "reset", propName: null },
+ ];
+ function listenToElementOutputs(outputs) {
+ var handlers = [];
+ for (var i = 0; i < outputs.length; i++) {
+ var output = outputs[i];
+ var handleEventClosure = renderEventHandlerClosure(output.eventName);
+ handlers.push(handleEventClosure)
+ }
+ var target, name;
+ return handlers;
+ }
+ function renderEventHandlerClosure(eventName) {
+ return function () {
+ return console.log(eventName);
+ };
+ }
+ listenToElementOutputs(outputs).forEach(function (handler) {
+ return handler()
+ });
+ })();
+ }
+ expect: {
+ (function() {
+ function renderEventHandlerClosure(eventName) {
+ return function() {
+ return console.log(eventName);
+ };
+ }
+ (function(outputs) {
+ var handlers = [];
+ for (var i = 0; i < outputs.length; i++) {
+ var output = outputs[i];
+ var handleEventClosure = renderEventHandlerClosure(output.eventName);
+ handlers.push(handleEventClosure);
+ }
+ return handlers;
+ })([ {
+ type: 0,
+ target: null,
+ eventName: "ngSubmit",
+ propName: null
+ }, {
+ type: 0,
+ target: null,
+ eventName: "submit",
+ propName: null
+ }, {
+ type: 0,
+ target: null,
+ eventName: "reset",
+ propName: null
+ } ]).forEach(function(handler) {
+ return handler();
+ });
+ })();
+ }
+ expect_stdout: [
+ "ngSubmit",
+ "submit",
+ "reset",
+ ]
+}