diff --git a/mithril.js b/mithril.js index 290d0232..f429a659 100644 --- a/mithril.js +++ b/mithril.js @@ -586,9 +586,13 @@ Mithril = m = new function app(window, undefined) { var deferred = m.deferred() var outstanding = args.length var results = new Array(outstanding) - for (var i = 0; i < args.length; i++) { - args[i].then(synchronizer(i, true), synchronizer(i, false)) + if (args.length > 0) { + for (var i = 0; i < args.length; i++) { + args[i].then(synchronizer(i, true), synchronizer(i, false)) + } } + else deferred.resolve() + return deferred.promise } function identity(value) {return value} diff --git a/tests/mithril-tests.js b/tests/mithril-tests.js index 53323b88..7e6ebbda 100644 --- a/tests/mithril-tests.js +++ b/tests/mithril-tests.js @@ -1517,6 +1517,11 @@ function testMithril(mock) { deferred1.resolve("test") return value[0] === "test" && value[1] === "foo" }) + test(function() { + var value = 1 + m.sync([]).then(function() {value = 2}) + return value == 2 + }) //m.startComputation/m.endComputation test(function() {