88 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| // Firefox was tested using persevere's global-es5 for es5 emulation
 | |
| (function () {
 | |
|   require('../lib/remedial');
 | |
| 
 | |
|   a = [];
 | |
|   a[2] = 27;
 | |
|   console.log(a);
 | |
|   // Expected: [undefined, undefined, 27];
 | |
|   // Node/V8: [ 27 ];
 | |
|   // FF3: [undefined, undefined, 27];
 | |
|   console.log(a.length);
 | |
|   // 3
 | |
|   console.log(typeOf(a));
 | |
|   // array
 | |
|   
 | |
| 
 | |
| 
 | |
|   b = Object.create([]);
 | |
|   b[2] = 27;
 | |
|   console.log(b);
 | |
|   // Expected: [undefined, undefined, 27];
 | |
|   // Node/V8: [ 27 ]
 | |
|   console.log(b.length);
 | |
|   // Expected: 3
 | |
|   // Node/V8/FF: 0
 | |
|   console.log(typeOf(b));
 | |
|   // Expected: Object (with Flanagan / Miller device or jQuery's type)
 | |
|   // Node/V8/FF: array (with Crockford's original)
 | |
| 
 | |
| 
 | |
|   c = Object.create([]);
 | |
|   c.push();
 | |
|   c.push();
 | |
|   c.push(27);
 | |
|   console.log(c);
 | |
|   // Expected: [undefined, undefined, 27]
 | |
|   // Node: [ 27, length: 1 ]
 | |
|   // FF: []
 | |
|   console.log(c.length);
 | |
|   // Expected: 3
 | |
|   // Node/V8/FF: 1
 | |
|   console.log(typeOf(c));
 | |
|   // Expected: object
 | |
|   // Node/V8/FF: object
 | |
| 
 | |
| 
 | |
|   d = Object.create(Array);
 | |
|   // FF: Error: typeof prototype[function] != 'object'
 | |
|   d[2] = 27;
 | |
|   console.log(d);
 | |
|   // Expected: [undefined, undefined, 27];
 | |
|   // Node/V8: { '2': 27 }
 | |
|   console.log(d.length);
 | |
|   // Expected: 3
 | |
|   // Node/V8/FF: 1
 | |
|   console.log(typeOf(d));
 | |
|   // Expected: object
 | |
|   // Node/V8: object
 | |
| }());
 | |
| 
 | |
| /*
 | |
|   Exact Node Output:
 | |
|   [ 27 ]
 | |
|   3
 | |
|   array
 | |
|   [ 27 ]
 | |
|   0
 | |
|   array
 | |
|   [ 27, length: 1 ]
 | |
|   1
 | |
|   object
 | |
| 
 | |
|   Exact FF (firebug) Output (expanded):
 | |
|   [undefined, undefined, 27]
 | |
|     >   2         27
 | |
|   3
 | |
|   array
 | |
|   []
 | |
|     >   2         27
 | |
|   0
 | |
|   array
 | |
|   [27]
 | |
|     >   0         27
 | |
|         length    1
 | |
|   1
 | |
|   object
 | |
| */
 |