add esid to array/prototype/pop tests (#1115)

This commit is contained in:
Sue Lockwood 2017-06-30 07:42:52 -07:00 committed by Leo Balter
parent a6a3cf74c4
commit d6b492205d
13 changed files with 58 additions and 45 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.pop
es5id: 15.4.4.6_A1.1_T1 es5id: 15.4.4.6_A1.1_T1
description: Checking this algorithm description: Checking this algorithm
---*/ ---*/
@ -14,12 +15,12 @@ var x = new Array();
var pop = x.pop(); var pop = x.pop();
if (pop !== undefined) { if (pop !== undefined) {
$ERROR('#1: var x = new Array(); x.pop() === undefined. Actual: ' + (pop)); $ERROR('#1: var x = new Array(); x.pop() === undefined. Actual: ' + (pop));
} }
//CHECK#2 //CHECK#2
if (x.length !== 0) { if (x.length !== 0) {
$ERROR('#2: var x = new Array(); x.pop(); x.length === 0. Actual: ' + (x.length)); $ERROR('#2: var x = new Array(); x.pop(); 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 pop = x.pop(); var pop = x.pop();
if (pop !== undefined) { if (pop !== undefined) {
$ERROR('#2: var x = Array(1,2,3); x.length = 0; x.pop() === undefined. Actual: ' + (pop)); $ERROR('#2: var x = Array(1,2,3); x.length = 0; x.pop() === undefined. Actual: ' + (pop));
} }
//CHECK#4 //CHECK#4
if (x.length !== 0) { if (x.length !== 0) {

View File

@ -5,6 +5,7 @@
info: > info: >
The last element of the array is removed from the array The last element of the array is removed from the array
and returned and returned
esid: sec-array.prototype.pop
es5id: 15.4.4.6_A1.2_T1 es5id: 15.4.4.6_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 pop function is intentionally generic. The pop 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.pop
es5id: 15.4.4.6_A2_T1 es5id: 15.4.4.6_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.pop = Array.prototype.pop;
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 pop = obj.pop(); var pop = obj.pop();
if (pop !== undefined) { if (pop !== undefined) {
$ERROR('#1: var obj = {}; obj.pop = Array.prototype.pop; obj.pop() === undefined. Actual: ' + (pop)); $ERROR('#1: var obj = {}; obj.pop = Array.prototype.pop; obj.pop() === undefined. Actual: ' + (pop));
@ -26,14 +27,14 @@ if (pop !== undefined) {
if (obj.length !== 0) { if (obj.length !== 0) {
$ERROR('#2: var obj = {}; obj.pop = Array.prototype.pop; obj.pop(); obj.length === 0. Actual: ' + (obj.length)); $ERROR('#2: var obj = {}; obj.pop = Array.prototype.pop; obj.pop(); obj.length === 0. Actual: ' + (obj.length));
} }
} }
//CHECK#3 //CHECK#3
obj.length = undefined; obj.length = undefined;
var pop = obj.pop(); var pop = obj.pop();
if (pop !== undefined) { if (pop !== undefined) {
$ERROR('#3: var obj = {}; obj.length = undefined; obj.pop = Array.prototype.pop; obj.pop() === undefined. Actual: ' + (pop)); $ERROR('#3: var obj = {}; obj.length = undefined; obj.pop = Array.prototype.pop; obj.pop() === undefined. Actual: ' + (pop));
} }
//CHECK#4 //CHECK#4
if (obj.length !== 0) { if (obj.length !== 0) {
@ -45,7 +46,7 @@ obj.length = null
var pop = obj.pop(); var pop = obj.pop();
if (pop !== undefined) { if (pop !== undefined) {
$ERROR('#5: var obj = {}; obj.length = null; obj.pop = Array.prototype.pop; obj.pop() === undefined. Actual: ' + (pop)); $ERROR('#5: var obj = {}; obj.length = null; obj.pop = Array.prototype.pop; obj.pop() === undefined. Actual: ' + (pop));
} }
//CHECK#6 //CHECK#6
if (obj.length !== 0) { if (obj.length !== 0) {

View File

@ -5,6 +5,7 @@
info: > info: >
The pop function is intentionally generic. The pop 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.pop
es5id: 15.4.4.6_A2_T2 es5id: 15.4.4.6_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
@ -55,7 +56,7 @@ obj.length = -0;
var pop = obj.pop(); var pop = obj.pop();
if (pop !== undefined) { if (pop !== undefined) {
$ERROR('#7: var obj = {}; obj.length = -0; obj.pop = Array.prototype.pop; obj.pop() === undefined. Actual: ' + (pop)); $ERROR('#7: var obj = {}; obj.length = -0; obj.pop = Array.prototype.pop; obj.pop() === undefined. Actual: ' + (pop));
} }
//CHECK#8 //CHECK#8
if (obj.length !== 0) { if (obj.length !== 0) {
@ -63,8 +64,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.pop = Array.prototype.pop; obj.pop(); obj.length === +0. Actual: ' + (obj.length)); $ERROR('#8: var obj = {}; obj.length = -0; obj.pop = Array.prototype.pop; obj.pop(); obj.length === +0. Actual: ' + (obj.length));
} }
} }
//CHECK#9 //CHECK#9
obj.length = 0.5; obj.length = 0.5;
@ -76,7 +77,7 @@ if (pop !== undefined) {
//CHECK#10 //CHECK#10
if (obj.length !== 0) { if (obj.length !== 0) {
$ERROR('#10: var obj = {}; obj.length = 0.5; obj.pop = Array.prototype.pop; obj.pop(); obj.length === 0. Actual: ' + (obj.length)); $ERROR('#10: var obj = {}; obj.length = 0.5; obj.pop = Array.prototype.pop; obj.pop(); 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 pop function is intentionally generic. The pop 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.pop
es5id: 15.4.4.6_A2_T3 es5id: 15.4.4.6_A2_T3
description: > description: >
The last element ToUint32(length) - 1 of the array is removed from The last element ToUint32(length) - 1 of the array is removed from
@ -24,7 +25,7 @@ if (pop !== undefined) {
//CHECK#2 //CHECK#2
if (obj.length !== 1) { if (obj.length !== 1) {
$ERROR('#2: var obj = {}; obj.length = 2.5; obj.pop = Array.prototype.pop; obj.pop(); obj.length === 1. Actual: ' + (obj.length)); $ERROR('#2: var obj = {}; obj.length = 2.5; obj.pop = Array.prototype.pop; obj.pop(); 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 pop function is intentionally generic. The pop 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.pop
es5id: 15.4.4.6_A2_T4 es5id: 15.4.4.6_A2_T4
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 pop = obj.pop(); var pop = obj.pop();
if (pop !== -1) { if (pop !== -1) {
$ERROR('#0: obj[0] = -1; obj.length = {valueOf: function() {return 1}, toString: function() {return 0}} obj.pop() === -1. Actual: ' + (pop)); $ERROR('#0: obj[0] = -1; obj.length = {valueOf: function() {return 1}, toString: function() {return 0}} obj.pop() === -1. Actual: ' + (pop));
} }
//CHECK#3 //CHECK#3
obj[0] = -1; obj[0] = -1;
@ -39,9 +40,9 @@ if (pop !== -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 pop = obj.pop(); var pop = obj.pop();
if (pop !== -1) { if (pop !== -1) {
$ERROR('#4.1: obj[0] = -1; obj.length = {valueOf: function() {return 1}, toString: function() {throw "error"}}; obj.pop() === ",". Actual: ' + (pop)); $ERROR('#4.1: obj[0] = -1; obj.length = {valueOf: function() {return 1}, toString: function() {throw "error"}}; obj.pop() === ",". Actual: ' + (pop));
@ -74,14 +75,14 @@ if (pop !== 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 pop = obj.pop(); var pop = obj.pop();
$ERROR('#7.1: obj[0] = -1; obj.length = {valueOf: function() {throw "error"}, toString: function() {return 0}}; obj.pop() throw "error". Actual: ' + (pop)); $ERROR('#7.1: obj[0] = -1; obj.length = {valueOf: function() {throw "error"}, toString: function() {return 0}}; obj.pop() throw "error". Actual: ' + (pop));
} }
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.pop() throw "error". Actual: ' + (e)); $ERROR('#7.2: obj[0] = -1; obj.length = {valueOf: function() {throw "error"}, toString: function() {return 0}}; obj.pop() 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 pop = obj.pop(); var pop = obj.pop();
$ERROR('#8.1: obj[0] = -1; obj.length = {valueOf: function() {return {}}, toString: function() {return {}}} obj.pop() throw TypeError. Actual: ' + (pop)); $ERROR('#8.1: obj[0] = -1; obj.length = {valueOf: function() {return {}}, toString: function() {return {}}} obj.pop() throw TypeError. Actual: ' + (pop));
} }
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.pop() throw TypeError. Actual: ' + (e)); $ERROR('#8.2: obj[0] = -1; obj.length = {valueOf: function() {return {}}, toString: function() {return {}}} obj.pop() 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.pop
es5id: 15.4.4.6_A3_T1 es5id: 15.4.4.6_A3_T1
description: length = 4294967296 description: length = 4294967296
---*/ ---*/
@ -27,7 +28,7 @@ if (obj.length !== 4294967295) {
//CHECK#3 //CHECK#3
if (obj[0] !== "x") { if (obj[0] !== "x") {
$ERROR('#3: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.pop(); obj[0] === "x". Actual: ' + (obj[0])); $ERROR('#3: var obj = {}; obj.pop = Array.prototype.pop; obj[0] = "x"; obj[4294967295] = "y"; obj.length = 4294967296; obj.pop(); obj[0] === "x". Actual: ' + (obj[0]));
} }
//CHECK#4 //CHECK#4
if (obj[4294967295] !== undefined) { if (obj[4294967295] !== undefined) {

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.pop
es5id: 15.4.4.6_A3_T2 es5id: 15.4.4.6_A3_T2
description: length = 4294967297 description: length = 4294967297
---*/ ---*/

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.pop
es5id: 15.4.4.6_A3_T3 es5id: 15.4.4.6_A3_T3
description: length = -1 description: length = -1
---*/ ---*/

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.pop
es5id: 15.4.4.6_A4_T1 es5id: 15.4.4.6_A4_T1
description: > description: >
[[Prototype]] of Array instance is Array.prototype, [[Prototype] [[Prototype]] of Array instance is Array.prototype, [[Prototype]
@ -15,13 +16,13 @@ x.length = 2;
//CHECK#1 //CHECK#1
var pop = x.pop(); var pop = x.pop();
if (pop !== 1) { if (pop !== 1) {
$ERROR('#1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.pop() === 1. Actual: ' + (pop)); $ERROR('#1: Array.prototype[1] = 1; x = [0]; x.length = 2; x.pop() === 1. Actual: ' + (pop));
} }
//CHECK#2 //CHECK#2
if (x[1] !== 1) { if (x[1] !== 1) {
$ERROR('#2: Array.prototype[1] = 1; x = [0]; x.length = 2; x.pop(); x[1] === 1. Actual: ' + (x[1])); $ERROR('#2: Array.prototype[1] = 1; x = [0]; x.length = 2; x.pop(); x[1] === 1. Actual: ' + (x[1]));
} }
Object.prototype[1] = 1; Object.prototype[1] = 1;
@ -31,22 +32,22 @@ x = {0:0};
//CHECK#3 //CHECK#3
var pop = x.pop(); var pop = x.pop();
if (pop !== 1) { if (pop !== 1) {
$ERROR('#3: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0}; x.pop() === 1. Actual: ' + (pop)); $ERROR('#3: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0}; x.pop() === 1. Actual: ' + (pop));
} }
//CHECK#4 //CHECK#4
if (x[1] !== 1) { if (x[1] !== 1) {
$ERROR('#4: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0}; x.pop(); x[1] === 1. Actual: ' + (x[1])); $ERROR('#4: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0}; x.pop(); x[1] === 1. Actual: ' + (x[1]));
} }
//CHECK#6 //CHECK#6
if (x.length !== 1) { if (x.length !== 1) {
$ERROR('#6: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0}; x.pop(); x.length === 1. Actual: ' + (x.length)); $ERROR('#6: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0}; x.pop(); x.length === 1. Actual: ' + (x.length));
} }
//CHECK#7 //CHECK#7
delete x.length; delete x.length;
if (x.length !== 2) { if (x.length !== 2) {
$ERROR('#7: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0}; x.pop(); delete x; x.length === 2. Actual: ' + (x.length)); $ERROR('#7: Object.prototype[1] = 1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0}; x.pop(); 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.pop
es5id: 15.4.4.6_A4_T2 es5id: 15.4.4.6_A4_T2
description: > description: >
[[Prototype]] of Array instance is Array.prototype, [[Prototype] [[Prototype]] of Array instance is Array.prototype, [[Prototype]
@ -15,13 +16,13 @@ x.length = 2;
//CHECK#1 //CHECK#1
var pop = x.pop(); var pop = x.pop();
if (pop !== 1) { if (pop !== 1) {
$ERROR('#1: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.pop() === 1. Actual: ' + (pop)); $ERROR('#1: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.pop() === 1. Actual: ' + (pop));
} }
//CHECK#2 //CHECK#2
if (x[1] !== -1) { if (x[1] !== -1) {
$ERROR('#2: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.pop(); x[1] === -1. Actual: ' + (x[1])); $ERROR('#2: Array.prototype[1] = -1; x = [0,1]; x.length = 2; x.pop(); x[1] === -1. Actual: ' + (x[1]));
} }
Object.prototype[1] = -1; Object.prototype[1] = -1;
@ -31,22 +32,22 @@ x = {0:0,1:1};
//CHECK#3 //CHECK#3
var pop = x.pop(); var pop = x.pop();
if (pop !== 1) { if (pop !== 1) {
$ERROR('#3: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0,1:1}; x.pop() === 1. Actual: ' + (pop)); $ERROR('#3: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0,1:1}; x.pop() === 1. Actual: ' + (pop));
} }
//CHECK#4 //CHECK#4
if (x[1] !== -1) { if (x[1] !== -1) {
$ERROR('#4: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0,1:1}; x.pop(); x[1] === -1. Actual: ' + (x[1])); $ERROR('#4: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0,1:1}; x.pop(); x[1] === -1. Actual: ' + (x[1]));
} }
//CHECK#6 //CHECK#6
if (x.length !== 1) { if (x.length !== 1) {
$ERROR('#6: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0,1:1}; x.pop(); x.length === 1. Actual: ' + (x.length)); $ERROR('#6: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0,1:1}; x.pop(); x.length === 1. Actual: ' + (x.length));
} }
//CHECK#7 //CHECK#7
delete x.length; delete x.length;
if (x.length !== 2) { if (x.length !== 2) {
$ERROR('#7: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0,1:1}; x.pop(); delete x; x.length === 2. Actual: ' + (x.length)); $ERROR('#7: Object.prototype[1] = -1; Object.prototype.length = 2; Object.prototype.pop = Array.prototype.pop; x = {0:0,1:1}; x.pop(); delete x; x.length === 2. Actual: ' + (x.length));
} }

View File

@ -3,6 +3,7 @@
/*--- /*---
info: The pop property of Array can't be used as constructor info: The pop property of Array can't be used as constructor
esid: sec-array.prototype.pop
es5id: 15.4.4.6_A5.7 es5id: 15.4.4.6_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.pop
es6id: 22.1.3.16 es6id: 22.1.3.16
description: > description: >
Array.prototype.pop.name is "pop". Array.prototype.pop.name is "pop".