2 demonstrate some bugs in ejs
4 tridge <appweb@tridgell.net>
8 /****************************************
9 demo a bug in constructing arrays
10 fix at http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7124
12 *****************************************/
16 println("First with 3 elements");
17 a = new Array("one", "two", "three");
19 assert(a.length == 3);
20 assert(a[0] == "one");
21 assert(a[1] == "two");
22 assert(a[2] == "three");
24 println("with a array length");
27 assert(a.length == 5);
29 println("\nNow with 1 element");
32 assert(a.length == 1);
33 assert(a[0] == "one");
39 /****************************************
40 demo a bug in variable arguments
41 fix at http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7085
43 *****************************************/
45 println("we should have been called with 3 arguments");
46 assert(arguments.length == 3);
47 assert(arguments[0] == "one");
48 assert(arguments[1] == "two");
49 assert(arguments[2] == "three");
53 /****************************************
54 demo a bug in constructing objects
57 *****************************************/
65 println("the docs say you should use 'new'");
70 assert(o1.test == 42);
71 assert(o2.test == 42);
75 demo a expression handling bug
79 var a = new Array(10);
87 /****************************************
88 demo lack of recursion
89 fix in http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7127
91 *****************************************/
92 function fibonacci(n) {
96 return fibonacci(n-1) + fibonacci(n-2);
99 function recursebug() {
100 println("First 10 fibonacci numbers:");
102 println("fibonacci(" + i + ")=" + fibonacci(i));
106 /****************************************
107 demo lack of function variables inside functions
108 status: FIXED IN SAMBA
109 *****************************************/
118 assert(s == "testing");
121 /****************************************
122 demo incorrect handling of reserved words in strings
124 *****************************************/
125 function reservedbug()
127 assert("funct" + "ion" == 'function');
131 /****************************************
132 demo incorrect handling of boolean functions
134 *****************************************/
142 assert(false == no());
149 argsbug("one", "two", "three");