📄 bugs.js
字号:
/* demonstrate some bugs in ejs tridge <appweb@tridgell.net>*//****************************************demo a bug in constructing arraysfix at http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7124status: FIXED*****************************************/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 argumentsfix at http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7085status: FIXED*****************************************/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 objectsno fix available yetstatus: SUBMITTED*****************************************/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);}/* demo a expression handling bug status: FIXED*/function exprbug() { var a = new Array(10); var i; for (i=0;i<4;i++) { a[1+(i*2)] = i; a[2+(i*2)] = i*2; }}/****************************************demo lack of recursionfix in http://build.samba.org/build.pl?function=diff;tree=samba4;revision=7127status: FIXED*****************************************/function fibonacci(n) { if (n < 3) { return 1; } return fibonacci(n-1) + fibonacci(n-2);}function recursebug() { println("First 10 fibonacci numbers:"); for (i=0;i<10;i++) { println("fibonacci(" + i + ")=" + fibonacci(i)); }}/****************************************demo lack of function variables inside functionsstatus: FIXED IN SAMBA*****************************************/function callback(){ return "testing";}function fnbug(c){ s = c(); assert(s == "testing");}/****************************************demo incorrect handling of reserved words in stringsstatus: SUBMITTED*****************************************/function reservedbug(){ assert("funct" + "ion" == 'function');}/****************************************demo incorrect handling of boolean functionsstatus: SUBMITTED*****************************************/function no(){ return false;}function boolbug(){ assert(false == no()); assert(!no());}/* run the tests */arraybug();argsbug("one", "two", "three");recursebug();exprbug();fnbug(callback);reservedbug();boolbug();objbug();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -