1- function comparer ( result , should ) {
1+ function comparer ( result , should ) {
2+ var valid = true ;
23
3- var valid = [ 1 , 'OK' ] ;
4-
5- if ( result === null || result === false || result === undefined ) {
4+ if ( result === null || result === false || result === undefined ) {
65 if ( result != should ) {
7- return [ - 3 , 'Got nothing' ] ;
6+ return false ;
87 }
9- } else if ( result . constructor === Array || result . constructor === Object ) {
8+ } else if ( result . constructor === Array || result . constructor === Object ) {
109 for ( key in result ) {
11- // recurse
10+ // Recurse
1211 subres = comparer ( result [ key ] , should [ key ] ) ;
1312 if ( subres [ 0 ] < 1 ) {
14- return [ subres [ 0 ] , subres [ 1 ] ] ;
13+ return subres ;
1514 }
1615 }
17- } else {
16+ } else {
1817 if ( should != result ) {
19- return [ - 99 , 'General mismatch' ] ;
18+ return false ;
2019 }
2120 }
2221
2322 return valid ;
23+ }
24+
25+ function trim ( str , charlist ) {
26+ // http://kevin.vanzonneveld.net
27+ // + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
28+ // + improved by: mdsjack (http://www.mdsjack.bo.it)
29+ // + improved by: Alexander Ermolaev (http://snippets.dzone.com/user/AlexanderErmolaev)
30+ // + input by: Erkekjetter
31+ // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
32+ // + input by: DxGx
33+ // + improved by: Steven Levithan (http://blog.stevenlevithan.com)
34+ // * example 1: trim(' Kevin van Zonneveld ');
35+ // * returns 1: 'Kevin van Zonneveld'
36+ // * example 2: trim('Hello World', 'Hdle');
37+ // * returns 2: 'o Wor'
38+
39+ var whitespace ;
40+
41+ if ( ! charlist ) {
42+ whitespace = ' \n\r\t\f\x0b\xa0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000' ;
43+ } else {
44+ whitespace = charlist . replace ( / ( [ \[ \] \( \) \. \? \/ \* \{ \} \+ \$ \^ \: ] ) / g, '\$1' ) ;
45+ }
46+
47+ for ( var i = 0 ; i < str . length ; i ++ ) {
48+ if ( whitespace . indexOf ( str . charAt ( i ) ) === - 1 ) {
49+ str = str . substring ( i ) ;
50+ break ;
51+ }
52+ }
53+ for ( i = str . length - 1 ; i >= 0 ; i -- ) {
54+ if ( whitespace . indexOf ( str . charAt ( i ) ) === - 1 ) {
55+ str = str . substring ( 0 , i + 1 ) ;
56+ break ;
57+ }
58+ }
59+ return whitespace . indexOf ( str . charAt ( 0 ) ) === - 1 ? str : '' ;
60+ }
61+
62+ function print_r ( array , return_val ) {
63+ // http://kevin.vanzonneveld.net
64+ // + original by: Michael White (http://crestidg.com)
65+ // + improved by: Ben Bryan
66+ // * example 1: print_r(1, true);
67+ // * returns 1: 1
68+
69+ var output = "" , pad_char = " " , pad_val = 4 ;
70+
71+ var formatArray = function ( obj , cur_depth , pad_val , pad_char ) {
72+ if ( cur_depth > 0 ) {
73+ cur_depth ++ ;
74+ }
75+
76+ var base_pad = repeat_char ( pad_val * cur_depth , pad_char ) ;
77+ var thick_pad = repeat_char ( pad_val * ( cur_depth + 1 ) , pad_char ) ;
78+ var str = "" ;
79+
80+ if ( obj instanceof Array || obj instanceof Object ) {
81+ str += "Array\n" + base_pad + "(\n" ;
82+ for ( var key in obj ) {
83+ if ( obj [ key ] instanceof Array ) {
84+ str += thick_pad + "[" + key + "] => " + formatArray ( obj [ key ] , cur_depth + 1 , pad_val , pad_char ) ;
85+ } else {
86+ str += thick_pad + "[" + key + "] => " + obj [ key ] + "\n" ;
87+ }
88+ }
89+ str += base_pad + ")\n" ;
90+ } else {
91+ str = obj . toString ( ) ;
92+ }
93+
94+ return str ;
95+ } ;
96+
97+ var repeat_char = function ( len , pad_char ) {
98+ var str = "" ;
99+ for ( var i = 0 ; i < len ; i ++ ) {
100+ str += pad_char ;
101+ } ;
102+ return str ;
103+ } ;
104+ output = formatArray ( array , 0 , pad_val , pad_char ) ;
105+
106+ if ( return_val !== true ) {
107+ document . write ( "<pre>" + output + "</pre>" ) ;
108+ return true ;
109+ } else {
110+ return output ;
111+ }
24112}
0 commit comments