result = 0,\r
functionque = [],\r
se = setTimeout,\r
- back, //Previous Function\r
f = function () {\r
var s = functionque.shift();\r
- s.back = function() {\r
- return (back.pop());\r
- };\r
result = s && s.call(s, result);\r
if (functionque.length > 0) {\r
- back.push(s);\r
se(f, num.shift());\r
} else { //Time Loop End\r
result = 0; //Reset the result\r
functionque.push(this);\r
num.push((arguments[0] || 0));\r
if (functionque.length === 1) {\r
- back = [];\r
se(f, 0);\r
+ } else if ((this !== functionque[functionque.length-2]) && functionque.length > 1){\r
+ /*back\83v\83\8d\83p\83e\83B\82É\82Í\81A\91O\82É\93o\98^\82µ\82Ä\82¨\82¢\82½\8aÖ\90\94\82ª\93ü\82é*/\r
+ this.back = functionque[functionque.length-2];\r
}\r
}; \r
})();\r
\r
+\r
function fn (result) {\r
var that = this;\r
- describe("Async::sleep", function() {\r
+ describe("Async::sleep2", function() {\r
it("default action", function() {\r
expect(result).toEqual(0);\r
expect(that).toEqual(fn)\r
\r
(function (result) {\r
var that = this;\r
- describe("Async::sleep2", function() {\r
+ describe("Async::sleep3", function() {\r
it("default action2", function() {\r
expect(result).toEqual(1);\r
- expect(that.back()).toEqual(fn);\r
+ expect(that.back).toEqual(fn);\r
});\r
});\r
__start_();\r