add esid to array/prototype/shift tests

This commit is contained in:
deathbearbrown 2017-06-30 10:29:17 -07:00 committed by Rick Waldron
parent a62da2b499
commit da291ca3b1
12 changed files with 67 additions and 55 deletions

View File

@ -5,6 +5,7 @@
info: > info: >
If length equal zero, call the [[Put]] method of this object If length equal zero, call the [[Put]] method of this object
with arguments "length" and 0 and return undefined with arguments "length" and 0 and return undefined
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A1.1_T1 es5id: 15.4.4.9_A1.1_T1
description: Checking this algorithm description: Checking this algorithm
---*/ ---*/
@ -14,12 +15,12 @@ var x = new Array();
var shift = x.shift(); var shift = x.shift();
if (shift !== undefined) { if (shift !== undefined) {
$ERROR('#1: var x = new Array(); x.shift() === undefined. Actual: ' + (shift)); $ERROR('#1: var x = new Array(); x.shift() === undefined. Actual: ' + (shift));
} }
//CHECK#2 //CHECK#2
if (x.length !== 0) { if (x.length !== 0) {
$ERROR('#2: var x = new Array(); x.shift(); x.length === 0. Actual: ' + (x.length)); $ERROR('#2: var x = new Array(); x.shift(); x.length === 0. Actual: ' + (x.length));
} }
//CHECK#3 //CHECK#3
var x = Array(1,2,3); var x = Array(1,2,3);
@ -27,7 +28,7 @@ x.length = 0;
var shift = x.shift(); var shift = x.shift();
if (shift !== undefined) { if (shift !== undefined) {
$ERROR('#2: var x = Array(1,2,3); x.length = 0; x.shift() === undefined. Actual: ' + (shift)); $ERROR('#2: var x = Array(1,2,3); x.length = 0; x.shift() === undefined. Actual: ' + (shift));
} }
//CHECK#4 //CHECK#4
if (x.length !== 0) { if (x.length !== 0) {

View File

@ -5,6 +5,7 @@
info: > info: >
The first element of the array is removed from the array and The first element of the array is removed from the array and
returned returned
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A1.2_T1 es5id: 15.4.4.9_A1.2_T1
description: Checking this use new Array() and [] description: Checking this use new Array() and []
---*/ ---*/

View File

@ -5,6 +5,7 @@
info: > info: >
The shift function is intentionally generic. The shift function is intentionally generic.
It does not require that its this value be an Array object It does not require that its this value be an Array object
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A2_T1 es5id: 15.4.4.9_A2_T1
description: > description: >
If ToUint32(length) equal zero, call the [[Put]] method of this If ToUint32(length) equal zero, call the [[Put]] method of this
@ -17,7 +18,7 @@ obj.shift = Array.prototype.shift;
if (obj.length !== undefined) { if (obj.length !== undefined) {
$ERROR('#0: var obj = {}; obj.length === undefined. Actual: ' + (obj.length)); $ERROR('#0: var obj = {}; obj.length === undefined. Actual: ' + (obj.length));
} else { } else {
//CHECK#1 //CHECK#1
var shift = obj.shift(); var shift = obj.shift();
if (shift !== undefined) { if (shift !== undefined) {
$ERROR('#1: var obj = {}; obj.shift = Array.prototype.shift; obj.shift() === undefined. Actual: ' + (shift)); $ERROR('#1: var obj = {}; obj.shift = Array.prototype.shift; obj.shift() === undefined. Actual: ' + (shift));
@ -26,14 +27,14 @@ if (shift !== undefined) {
if (obj.length !== 0) { if (obj.length !== 0) {
$ERROR('#2: var obj = {}; obj.shift = Array.prototype.shift; obj.shift(); obj.length === 0. Actual: ' + (obj.length)); $ERROR('#2: var obj = {}; obj.shift = Array.prototype.shift; obj.shift(); obj.length === 0. Actual: ' + (obj.length));
} }
} }
//CHECK#3 //CHECK#3
obj.length = undefined; obj.length = undefined;
var shift = obj.shift(); var shift = obj.shift();
if (shift !== undefined) { if (shift !== undefined) {
$ERROR('#3: var obj = {}; obj.length = undefined; obj.shift = Array.prototype.shift; obj.shift() === undefined. Actual: ' + (shift)); $ERROR('#3: var obj = {}; obj.length = undefined; obj.shift = Array.prototype.shift; obj.shift() === undefined. Actual: ' + (shift));
} }
//CHECK#4 //CHECK#4
if (obj.length !== 0) { if (obj.length !== 0) {
@ -45,7 +46,7 @@ obj.length = null
var shift = obj.shift(); var shift = obj.shift();
if (shift !== undefined) { if (shift !== undefined) {
$ERROR('#5: var obj = {}; obj.length = null; obj.shift = Array.prototype.shift; obj.shift() === undefined. Actual: ' + (shift)); $ERROR('#5: var obj = {}; obj.length = null; obj.shift = Array.prototype.shift; obj.shift() === undefined. Actual: ' + (shift));
} }
//CHECK#6 //CHECK#6
if (obj.length !== 0) { if (obj.length !== 0) {

View File

@ -5,6 +5,7 @@
info: > info: >
The shift function is intentionally generic. The shift function is intentionally generic.
It does not require that its this value be an Array object It does not require that its this value be an Array object
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A2_T2 es5id: 15.4.4.9_A2_T2
description: > description: >
If ToUint32(length) equal zero, call the [[Put]] method of this If ToUint32(length) equal zero, call the [[Put]] method of this
@ -43,7 +44,7 @@ obj.length = -0;
var shift = obj.shift(); var shift = obj.shift();
if (shift !== undefined) { if (shift !== undefined) {
$ERROR('#7: var obj = {}; obj.length = -0; obj.shift = Array.prototype.shift; obj.shift() === undefined. Actual: ' + (shift)); $ERROR('#7: var obj = {}; obj.length = -0; obj.shift = Array.prototype.shift; obj.shift() === undefined. Actual: ' + (shift));
} }
//CHECK#8 //CHECK#8
if (obj.length !== 0) { if (obj.length !== 0) {
@ -51,8 +52,8 @@ if (obj.length !== 0) {
} else { } else {
if (1/obj.length !== Number.POSITIVE_INFINITY) { if (1/obj.length !== Number.POSITIVE_INFINITY) {
$ERROR('#8: var obj = {}; obj.length = -0; obj.shift = Array.prototype.shift; obj.shift(); obj.length === +0. Actual: ' + (obj.length)); $ERROR('#8: var obj = {}; obj.length = -0; obj.shift = Array.prototype.shift; obj.shift(); obj.length === +0. Actual: ' + (obj.length));
} }
} }
//CHECK#9 //CHECK#9
obj.length = 0.5; obj.length = 0.5;
@ -64,7 +65,7 @@ if (shift !== undefined) {
//CHECK#10 //CHECK#10
if (obj.length !== 0) { if (obj.length !== 0) {
$ERROR('#10: var obj = {}; obj.length = 0.5; obj.shift = Array.prototype.shift; obj.shift(); obj.length === 0. Actual: ' + (obj.length)); $ERROR('#10: var obj = {}; obj.length = 0.5; obj.shift = Array.prototype.shift; obj.shift(); obj.length === 0. Actual: ' + (obj.length));
} }
//CHECK#11 //CHECK#11
obj.length = new Number(0); obj.length = new Number(0);

View File

@ -5,6 +5,7 @@
info: > info: >
The shift function is intentionally generic. The shift function is intentionally generic.
It does not require that its this value be an Array object It does not require that its this value be an Array object
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A2_T3 es5id: 15.4.4.9_A2_T3
description: > description: >
The first element of the array is removed from the array and The first element of the array is removed from the array and
@ -24,7 +25,7 @@ if (shift !== undefined) {
//CHECK#2 //CHECK#2
if (obj.length !== 1) { if (obj.length !== 1) {
$ERROR('#2: var obj = {}; obj.length = 2.5; obj.shift = Array.prototype.shift; obj.shift(); obj.length === 1. Actual: ' + (obj.length)); $ERROR('#2: var obj = {}; obj.length = 2.5; obj.shift = Array.prototype.shift; obj.shift(); obj.length === 1. Actual: ' + (obj.length));
} }
//CHECK#3 //CHECK#3
obj.length = new Number(2); obj.length = new Number(2);

View File

@ -5,6 +5,7 @@
info: > info: >
The shift function is intentionally generic. The shift function is intentionally generic.
It does not require that its this value be an Array object It does not require that its this value be an Array object
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A2_T4 es5id: 15.4.4.9_A2_T4
description: > description: >
The first element of the array is removed from the array and The first element of the array is removed from the array and
@ -21,7 +22,7 @@ obj.length = 4;
var shift = obj.shift(); var shift = obj.shift();
if (shift !== 0) { if (shift !== 0) {
$ERROR('#1: var obj = {}; obj["0"] = 0; obj["3"] = 3; obj.length = 4; obj.shift = Array.prototype.shift; obj.shift() === 0. Actual: ' + (shift)); $ERROR('#1: var obj = {}; obj["0"] = 0; obj["3"] = 3; obj.length = 4; obj.shift = Array.prototype.shift; obj.shift() === 0. Actual: ' + (shift));
} }
//CHECK#2 //CHECK#2
if (obj.length !== 3) { if (obj.length !== 3) {
@ -32,7 +33,7 @@ if (obj.length !== 3) {
var shift = obj.shift(); var shift = obj.shift();
if (shift !== undefined) { if (shift !== undefined) {
$ERROR('#3: var obj = {}; obj["0"] = 0; obj["3"] = 3; obj.length = 4; obj.shift = Array.prototype.shift; obj.shift(); obj.shift() === undefined. Actual: ' + (shift)); $ERROR('#3: var obj = {}; obj["0"] = 0; obj["3"] = 3; obj.length = 4; obj.shift = Array.prototype.shift; obj.shift(); obj.shift() === undefined. Actual: ' + (shift));
} }
//CHECK#4 //CHECK#4
if (obj.length !== 2) { if (obj.length !== 2) {
@ -44,7 +45,7 @@ obj.length = 1;
var shift = obj.shift(); var shift = obj.shift();
if (shift !== undefined) { if (shift !== undefined) {
$ERROR('#5: var obj = {}; obj["0"] = 0; obj["3"] = 3; obj.length = 4; obj.shift = Array.prototype.shift; obj.shift(); obj.shift(); obj.length = 1; obj.shift() === undefined. Actual: ' + (shift)); $ERROR('#5: var obj = {}; obj["0"] = 0; obj["3"] = 3; obj.length = 4; obj.shift = Array.prototype.shift; obj.shift(); obj.shift(); obj.length = 1; obj.shift() === undefined. Actual: ' + (shift));
} }
//CHECK#6 //CHECK#6
if (obj.length !== 0) { if (obj.length !== 0) {

View File

@ -5,6 +5,7 @@
info: > info: >
The shift function is intentionally generic. The shift function is intentionally generic.
It does not require that its this value be an Array object It does not require that its this value be an Array object
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A2_T5 es5id: 15.4.4.9_A2_T5
description: > description: >
Operator use ToNumber from length. If Type(value) is Object, Operator use ToNumber from length. If Type(value) is Object,
@ -28,7 +29,7 @@ obj.length = {valueOf: function() {return 1}, toString: function() {return 0}};
var shift = obj.shift(); var shift = obj.shift();
if (shift !== -1) { if (shift !== -1) {
$ERROR('#0: obj[0] = -1; obj.length = {valueOf: function() {return 1}, toString: function() {return 0}} obj.shift() === -1. Actual: ' + (shift)); $ERROR('#0: obj[0] = -1; obj.length = {valueOf: function() {return 1}, toString: function() {return 0}} obj.shift() === -1. Actual: ' + (shift));
} }
//CHECK#3 //CHECK#3
obj[0] = -1; obj[0] = -1;
@ -39,9 +40,9 @@ if (shift !== -1) {
} }
//CHECK#4 //CHECK#4
try { try {
obj[0] = -1; obj[0] = -1;
obj.length = {valueOf: function() {return 1}, toString: function() {throw "error"}}; obj.length = {valueOf: function() {return 1}, toString: function() {throw "error"}};
var shift = obj.shift(); var shift = obj.shift();
if (shift !== -1) { if (shift !== -1) {
$ERROR('#4.1: obj[0] = -1; obj.length = {valueOf: function() {return 1}, toString: function() {throw "error"}}; obj.shift() === ",". Actual: ' + (shift)); $ERROR('#4.1: obj[0] = -1; obj.length = {valueOf: function() {return 1}, toString: function() {throw "error"}}; obj.shift() === ",". Actual: ' + (shift));
@ -74,14 +75,14 @@ if (shift !== undefined) {
//CHECK#7 //CHECK#7
try { try {
obj[0] = -1; obj[0] = -1;
obj.length = {valueOf: function() {throw "error"}, toString: function() {return 0}}; obj.length = {valueOf: function() {throw "error"}, toString: function() {return 0}};
var shift = obj.shift(); var shift = obj.shift();
$ERROR('#7.1: obj[0] = -1; obj.length = {valueOf: function() {throw "error"}, toString: function() {return 0}}; obj.shift() throw "error". Actual: ' + (shift)); $ERROR('#7.1: obj[0] = -1; obj.length = {valueOf: function() {throw "error"}, toString: function() {return 0}}; obj.shift() throw "error". Actual: ' + (shift));
} }
catch (e) { catch (e) {
if (e !== "error") { if (e !== "error") {
$ERROR('#7.2: obj[0] = -1; obj.length = {valueOf: function() {throw "error"}, toString: function() {return 0}}; obj.shift() throw "error". Actual: ' + (e)); $ERROR('#7.2: obj[0] = -1; obj.length = {valueOf: function() {throw "error"}, toString: function() {return 0}}; obj.shift() throw "error". Actual: ' + (e));
} }
} }
//CHECK#8 //CHECK#8
@ -90,9 +91,9 @@ try {
obj.length = {valueOf: function() {return {}}, toString: function() {return {}}}; obj.length = {valueOf: function() {return {}}, toString: function() {return {}}};
var shift = obj.shift(); var shift = obj.shift();
$ERROR('#8.1: obj[0] = -1; obj.length = {valueOf: function() {return {}}, toString: function() {return {}}} obj.shift() throw TypeError. Actual: ' + (shift)); $ERROR('#8.1: obj[0] = -1; obj.length = {valueOf: function() {return {}}, toString: function() {return {}}} obj.shift() throw TypeError. Actual: ' + (shift));
} }
catch (e) { catch (e) {
if ((e instanceof TypeError) !== true) { if ((e instanceof TypeError) !== true) {
$ERROR('#8.2: obj[0] = -1; obj.length = {valueOf: function() {return {}}, toString: function() {return {}}} obj.shift() throw TypeError. Actual: ' + (e)); $ERROR('#8.2: obj[0] = -1; obj.length = {valueOf: function() {return {}}, toString: function() {return {}}} obj.shift() throw TypeError. Actual: ' + (e));
} }
} }

View File

@ -3,6 +3,7 @@
/*--- /*---
info: Check ToLength(length) for non Array objects info: Check ToLength(length) for non Array objects
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A3_T3 es5id: 15.4.4.9_A3_T3
description: length is arbitrarily description: length is arbitrarily
---*/ ---*/

View File

@ -3,6 +3,7 @@
/*--- /*---
info: "[[Get]], [[Delete]] from not an inherited property" info: "[[Get]], [[Delete]] from not an inherited property"
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A4_T1 es5id: 15.4.4.9_A4_T1
description: > description: >
[[Prototype]] of Array instance is Array.prototype, [[Prototype] [[Prototype]] of Array instance is Array.prototype, [[Prototype]
@ -15,18 +16,18 @@ x.length = 2;
//CHECK#1 //CHECK#1
var shift = x.shift(); var shift = x.shift();
if (shift !== 0) { if (shift !== 0) {
$ERROR('#1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.shift() === 0. Actual: ' + (shift)); $ERROR('#1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.shift() === 0. Actual: ' + (shift));
} }
//CHECK#2 //CHECK#2
if (x[0] !== 1) { if (x[0] !== 1) {
$ERROR('#2: Array.prototype[1] = 1; x = [0]; x.length = 2; x.shift(); x[0] === 1. Actual: ' + (x[0])); $ERROR('#2: Array.prototype[1] = 1; x = [0]; x.length = 2; x.shift(); x[0] === 1. Actual: ' + (x[0]));
} }
//CHECK#3 //CHECK#3
if (x[1] !== 1) { if (x[1] !== 1) {
$ERROR('#3: Array.prototype[1] = 1; x = [0]; x.length = 2; x.shift(); x[1] === 1. Actual: ' + (x[1])); $ERROR('#3: Array.prototype[1] = 1; x = [0]; x.length = 2; x.shift(); x[1] === 1. Actual: ' + (x[1]));
} }
Object.prototype[1] = 1; Object.prototype[1] = 1;
@ -36,27 +37,27 @@ x = {0:0};
//CHECK#4 //CHECK#4
var shift = x.shift(); var shift = x.shift();
if (shift !== 0) { if (shift !== 0) {
$ERROR('#4: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift() === 0. Actual: ' + (shift)); $ERROR('#4: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift() === 0. Actual: ' + (shift));
} }
//CHECK#5 //CHECK#5
if (x[0] !== 1) { if (x[0] !== 1) {
$ERROR('#5: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift(); x[0] === 1. Actual: ' + (x[0])); $ERROR('#5: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift(); x[0] === 1. Actual: ' + (x[0]));
} }
//CHECK#6 //CHECK#6
if (x[1] !== 1) { if (x[1] !== 1) {
$ERROR('#6: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift(); x[1] === 1. Actual: ' + (x[1])); $ERROR('#6: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift(); x[1] === 1. Actual: ' + (x[1]));
} }
//CHECK#7 //CHECK#7
if (x.length !== 1) { if (x.length !== 1) {
$ERROR('#7: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift(); x.length === 1. Actual: ' + (x.length)); $ERROR('#7: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift(); x.length === 1. Actual: ' + (x.length));
} }
//CHECK#8 //CHECK#8
delete x.length; delete x.length;
if (x.length !== 2) { if (x.length !== 2) {
$ERROR('#8: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift(); delete x; x.length === 2. Actual: ' + (x.length)); $ERROR('#8: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0}; x.shift(); delete x; x.length === 2. Actual: ' + (x.length));
} }

View File

@ -3,6 +3,7 @@
/*--- /*---
info: "[[Get]], [[Delete]] from not an inherited property" info: "[[Get]], [[Delete]] from not an inherited property"
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A4_T2 es5id: 15.4.4.9_A4_T2
description: > description: >
[[Prototype]] of Array instance is Array.prototype, [[Prototype] [[Prototype]] of Array instance is Array.prototype, [[Prototype]
@ -15,18 +16,18 @@ x.length = 2;
//CHECK#1 //CHECK#1
var shift = x.shift(); var shift = x.shift();
if (shift !== 0) { if (shift !== 0) {
$ERROR('#1: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.shift() === 0. Actual: ' + (shift)); $ERROR('#1: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.shift() === 0. Actual: ' + (shift));
} }
//CHECK#2 //CHECK#2
if (x[0] !== 1) { if (x[0] !== 1) {
$ERROR('#2: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.shift(); x[0] === 1. Actual: ' + (x[0])); $ERROR('#2: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.shift(); x[0] === 1. Actual: ' + (x[0]));
} }
//CHECK#3 //CHECK#3
if (x[1] !== -1) { if (x[1] !== -1) {
$ERROR('#3: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.shift(); x[1] === -1. Actual: ' + (x[1])); $ERROR('#3: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.shift(); x[1] === -1. Actual: ' + (x[1]));
} }
Object.prototype[1] = -1; Object.prototype[1] = -1;
@ -36,27 +37,27 @@ x = {0:0,1:1};
//CHECK#4 //CHECK#4
var shift = x.shift(); var shift = x.shift();
if (shift !== 0) { if (shift !== 0) {
$ERROR('#4: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift() === 0. Actual: ' + (shift)); $ERROR('#4: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift() === 0. Actual: ' + (shift));
} }
//CHECK#5 //CHECK#5
if (x[0] !== 1) { if (x[0] !== 1) {
$ERROR('#5: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift(); x[0] === 1. Actual: ' + (x[0])); $ERROR('#5: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift(); x[0] === 1. Actual: ' + (x[0]));
} }
//CHECK#6 //CHECK#6
if (x[1] !== -1) { if (x[1] !== -1) {
$ERROR('#6: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift(); x[1] === -1. Actual: ' + (x[1])); $ERROR('#6: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift(); x[1] === -1. Actual: ' + (x[1]));
} }
//CHECK#7 //CHECK#7
if (x.length !== 1) { if (x.length !== 1) {
$ERROR('#7: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift(); x.length === 1. Actual: ' + (x.length)); $ERROR('#7: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift(); x.length === 1. Actual: ' + (x.length));
} }
//CHECK#8 //CHECK#8
delete x.length; delete x.length;
if (x.length !== 2) { if (x.length !== 2) {
$ERROR('#8: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift(); delete x; x.length === 2. Actual: ' + (x.length)); $ERROR('#8: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.shift = Array.prototype.shift; x = {0:0,1:1}; x.shift(); delete x; x.length === 2. Actual: ' + (x.length));
} }

View File

@ -3,6 +3,7 @@
/*--- /*---
info: The shift property of Array can't be used as constructor info: The shift property of Array can't be used as constructor
esid: sec-array.prototype.shift
es5id: 15.4.4.9_A5.7 es5id: 15.4.4.9_A5.7
description: > description: >
If property does not implement the internal [[Construct]] method, If property does not implement the internal [[Construct]] method,

View File

@ -2,6 +2,7 @@
// This code is governed by the BSD license found in the LICENSE file. // This code is governed by the BSD license found in the LICENSE file.
/*--- /*---
esid: sec-array.prototype.shift
es6id: 22.1.3.21 es6id: 22.1.3.21
description: > description: >
Array.prototype.shift.name is "shift". Array.prototype.shift.name is "shift".