'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
function Stack(){
    Object.defineProperties(
        this,
        {
            add:{
                enumerable:true,
                writable:false,
                value:addToStack
            },
            next:{
                enumerable:true,
                writable:false,
                value:run
            },
            clear:{
                enumerable:true,
                writable:false,
                value:clearStack
            },
            contents:{
                enumerable:false,
                get:getStack,
                set:setStack
            },
            autoRun:{
                enumerable:true,
                writable:true,
                value:true
            },
            stop:{
                enumerable:true,
                writable:true,
                value:false
            }
        }
    );
 
    var stack=[];
    var running=false;
    var stop=false;
 
    function clearStack(){
        stack=[];
        return stack;
    }
 
    function getStack(){
        return stack;
    }
 
    function setStack(val){
        stack=val;
        return stack;
    }
 
    function addToStack(){
        for(var i in arguments){
            stack.unshift(arguments[i]);
        }
        if(!running && !this.stop && this.autoRun){
            this.next();
        }
    }
 
    function run(){
        running=true;
        if(stack.length<1 || this.stop){
            running=false;
            return;
        }
 
        stack.shift().bind(this)();
    }
}