remedial.js/tests/array-wtf.js

88 lines
1.5 KiB
JavaScript
Raw Normal View History

2010-11-05 17:01:37 +00:00
// Firefox was tested using persevere's global-es5 for es5 emulation
2010-11-05 16:50:17 +00:00
(function () {
require('../lib/remedial');
2010-11-05 16:50:17 +00:00
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));
2010-11-30 08:59:29 +00:00
// Expected: Object (with Flanagan / Miller device or jQuery's type)
// Node/V8/FF: array (with Crockford's original)
2010-11-05 16:50:17 +00:00
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
2010-11-05 16:50:17 +00:00
// Node/V8/FF: object
2010-11-05 16:57:41 +00:00
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
2010-11-05 16:57:41 +00:00
// Node/V8: object
2010-11-05 16:50:17 +00:00
}());
/*
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
*/