/* demonstrate some bugs in ejs tridge */ /**************************************** demo a bug in constructing arrays fix at http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7124 *****************************************/ function arraybug() { var a; println("First with 3 elements"); a = new Array("one", "two", "three"); printVars(a); assert(a.length == 3); assert(a[0] == "one"); assert(a[1] == "two"); assert(a[2] == "three"); println("with a array length"); a = new Array(5); printVars(a); assert(a.length == 5); println("\nNow with 1 element"); a = new Array("one"); printVars(a); assert(a.length == 1); assert(a[0] == "one"); println("ALL OK"); } /**************************************** demo a bug in variable arguments fix at http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7085 *****************************************/ function argsbug() { println("we should have been called with 3 arguments"); assert(arguments.length == 3); assert(arguments[0] == "one"); assert(arguments[1] == "two"); assert(arguments[2] == "three"); } /**************************************** demo a bug in constructing objects no fix available yet *****************************************/ function MyObj() { var o = new Object(); o.test = 42; return o; } function objbug() { println("the docs say you should use 'new'"); var o1 = new MyObj(); var o2 = MyObj(); printVars(o1); printVars(o2); assert(o1.test == 42); assert(o2.test == 42); } /* run the tests */ arraybug(); argsbug("one", "two", "three"); objbug()