mirror of
https://github.com/tc39/test262.git
synced 2025-09-25 19:18:48 +02:00
Remove unnecessary checks for functions
This commit is contained in:
parent
b096b30f60
commit
47ba37f098
@ -212,12 +212,10 @@ TestGenerator(
|
|||||||
["fee", "fi", "fo", "fum", undefined]);
|
["fee", "fi", "fo", "fum", undefined]);
|
||||||
|
|
||||||
// GC.
|
// GC.
|
||||||
if (typeof gc == 'function') {
|
TestGenerator(function* g16() { yield "baz"; $262.gc(); yield "qux"; },
|
||||||
TestGenerator(function* g16() { yield "baz"; $262.gc(); yield "qux"; },
|
|
||||||
["baz", "qux", undefined],
|
["baz", "qux", undefined],
|
||||||
"foo",
|
"foo",
|
||||||
["baz", "qux", undefined]);
|
["baz", "qux", undefined]);
|
||||||
}
|
|
||||||
|
|
||||||
// Receivers.
|
// Receivers.
|
||||||
TestGenerator(
|
TestGenerator(
|
||||||
|
@ -13,77 +13,77 @@ esid: pending
|
|||||||
features: [Symbol]
|
features: [Symbol]
|
||||||
---*/
|
---*/
|
||||||
|
|
||||||
if ("entries" in Object) {
|
assert.sameValue("entries" in Object, true);
|
||||||
assert.sameValue(Object.entries.length, 1);
|
assert.sameValue(Object.entries.length, 1);
|
||||||
|
|
||||||
var o, entries;
|
var o, entries;
|
||||||
|
|
||||||
o = { a: 3, b: 2 };
|
o = { a: 3, b: 2 };
|
||||||
entries = Object.entries(o);
|
entries = Object.entries(o);
|
||||||
assert.deepEqual(entries, [["a", 3], ["b", 2]]);
|
assert.deepEqual(entries, [["a", 3], ["b", 2]]);
|
||||||
|
|
||||||
o = { get a() { return 17; }, b: 2 };
|
o = { get a() { return 17; }, b: 2 };
|
||||||
entries = Object.entries(o),
|
entries = Object.entries(o),
|
||||||
assert.deepEqual(entries, [["a", 17], ["b", 2]]);
|
assert.deepEqual(entries, [["a", 17], ["b", 2]]);
|
||||||
|
|
||||||
o = { __iterator__: function() { throw new Error("non-standard __iterator__ called?"); } };
|
o = { __iterator__: function() { throw new Error("non-standard __iterator__ called?"); } };
|
||||||
entries = Object.entries(o);
|
entries = Object.entries(o);
|
||||||
assert.deepEqual(entries, [["__iterator__", o.__iterator__]]);
|
assert.deepEqual(entries, [["__iterator__", o.__iterator__]]);
|
||||||
|
|
||||||
o = { a: 1, b: 2 };
|
o = { a: 1, b: 2 };
|
||||||
delete o.a;
|
delete o.a;
|
||||||
o.a = 3;
|
o.a = 3;
|
||||||
entries = Object.entries(o);
|
entries = Object.entries(o);
|
||||||
assert.deepEqual(entries, [["b", 2], ["a", 3]]);
|
assert.deepEqual(entries, [["b", 2], ["a", 3]]);
|
||||||
|
|
||||||
o = [0, 1, 2];
|
o = [0, 1, 2];
|
||||||
entries = Object.entries(o);
|
entries = Object.entries(o);
|
||||||
assert.deepEqual(entries, [["0", 0], ["1", 1], ["2", 2]]);
|
assert.deepEqual(entries, [["0", 0], ["1", 1], ["2", 2]]);
|
||||||
|
|
||||||
o = /./.exec("abc");
|
o = /./.exec("abc");
|
||||||
entries = Object.entries(o);
|
entries = Object.entries(o);
|
||||||
assert.deepEqual(entries, [["0", "a"], ["index", 0], ["input", "abc"], ["groups", undefined]]);
|
assert.deepEqual(entries, [["0", "a"], ["index", 0], ["input", "abc"], ["groups", undefined]]);
|
||||||
|
|
||||||
o = { a: 1, b: 2, c: 3 };
|
o = { a: 1, b: 2, c: 3 };
|
||||||
delete o.b;
|
delete o.b;
|
||||||
o.b = 5;
|
o.b = 5;
|
||||||
entries = Object.entries(o);
|
entries = Object.entries(o);
|
||||||
assert.deepEqual(entries, [["a", 1], ["c", 3], ["b", 5]]);
|
assert.deepEqual(entries, [["a", 1], ["c", 3], ["b", 5]]);
|
||||||
|
|
||||||
function f() { }
|
function f() { }
|
||||||
f.prototype.p = 1;
|
f.prototype.p = 1;
|
||||||
o = new f();
|
o = new f();
|
||||||
o.g = 1;
|
o.g = 1;
|
||||||
entries = Object.entries(o);
|
entries = Object.entries(o);
|
||||||
assert.deepEqual(entries, [["g", 1]]);
|
assert.deepEqual(entries, [["g", 1]]);
|
||||||
|
|
||||||
var o = {get a() {delete this.b; return 1}, b: 2, c: 3};
|
var o = {get a() {delete this.b; return 1}, b: 2, c: 3};
|
||||||
entries = Object.entries(o);
|
entries = Object.entries(o);
|
||||||
assert.deepEqual(entries, [["a", 1], ["c", 3]]);
|
assert.deepEqual(entries, [["a", 1], ["c", 3]]);
|
||||||
|
|
||||||
assert.throws(TypeError, () => Object.entries());
|
assert.throws(TypeError, () => Object.entries());
|
||||||
assert.throws(TypeError, () => Object.entries(undefined));
|
assert.throws(TypeError, () => Object.entries(undefined));
|
||||||
assert.throws(TypeError, () => Object.entries(null));
|
assert.throws(TypeError, () => Object.entries(null));
|
||||||
|
|
||||||
assert.deepEqual(Object.entries(1), []);
|
assert.deepEqual(Object.entries(1), []);
|
||||||
assert.deepEqual(Object.entries(true), []);
|
assert.deepEqual(Object.entries(true), []);
|
||||||
assert.deepEqual(Object.entries(Symbol("foo")), []);
|
assert.deepEqual(Object.entries(Symbol("foo")), []);
|
||||||
|
|
||||||
assert.deepEqual(Object.entries("foo"), [["0", "f"], ["1", "o"], ["2", "o"]]);
|
assert.deepEqual(Object.entries("foo"), [["0", "f"], ["1", "o"], ["2", "o"]]);
|
||||||
|
|
||||||
entries = Object.entries({
|
entries = Object.entries({
|
||||||
get a(){
|
get a(){
|
||||||
Object.defineProperty(this, "b", {enumerable: false});
|
Object.defineProperty(this, "b", {enumerable: false});
|
||||||
return "A";
|
return "A";
|
||||||
},
|
},
|
||||||
b: "B"
|
b: "B"
|
||||||
});
|
});
|
||||||
assert.deepEqual(entries, [["a", "A"]]);
|
assert.deepEqual(entries, [["a", "A"]]);
|
||||||
|
|
||||||
let ownKeysCallCount = 0;
|
let ownKeysCallCount = 0;
|
||||||
let getOwnPropertyDescriptorCalls = [];
|
let getOwnPropertyDescriptorCalls = [];
|
||||||
let target = { a: 1, b: 2, c: 3 };
|
let target = { a: 1, b: 2, c: 3 };
|
||||||
o = new Proxy(target, {
|
o = new Proxy(target, {
|
||||||
ownKeys() {
|
ownKeys() {
|
||||||
ownKeysCallCount++;
|
ownKeysCallCount++;
|
||||||
return ["c", "a"];
|
return ["c", "a"];
|
||||||
@ -92,10 +92,8 @@ if ("entries" in Object) {
|
|||||||
getOwnPropertyDescriptorCalls.push(key);
|
getOwnPropertyDescriptorCalls.push(key);
|
||||||
return Object.getOwnPropertyDescriptor(target, key);
|
return Object.getOwnPropertyDescriptor(target, key);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
entries = Object.entries(o);
|
entries = Object.entries(o);
|
||||||
assert.sameValue(ownKeysCallCount, 1);
|
assert.sameValue(ownKeysCallCount, 1);
|
||||||
assert.deepEqual(entries, [["c", 3], ["a", 1]]);
|
assert.deepEqual(entries, [["c", 3], ["a", 1]]);
|
||||||
assert.deepEqual(getOwnPropertyDescriptorCalls, ["c", "a"]);
|
assert.deepEqual(getOwnPropertyDescriptorCalls, ["c", "a"]);
|
||||||
}
|
|
||||||
|
|
||||||
|
@ -12,77 +12,78 @@ description: |
|
|||||||
esid: pending
|
esid: pending
|
||||||
features: [Symbol]
|
features: [Symbol]
|
||||||
---*/
|
---*/
|
||||||
if ("values" in Object) {
|
|
||||||
assert.sameValue(Object.values.length, 1);
|
|
||||||
|
|
||||||
var o, values;
|
assert.sameValue("values" in Object, true);
|
||||||
|
assert.sameValue(Object.values.length, 1);
|
||||||
|
|
||||||
o = { a: 3, b: 2 };
|
var o, values;
|
||||||
values = Object.values(o);
|
|
||||||
assert.compareArray(values, [3, 2]);
|
|
||||||
|
|
||||||
o = { get a() { return 17; }, b: 2 };
|
o = { a: 3, b: 2 };
|
||||||
values = Object.values(o),
|
values = Object.values(o);
|
||||||
assert.compareArray(values, [17, 2]);
|
assert.compareArray(values, [3, 2]);
|
||||||
|
|
||||||
o = { __iterator__: function() { throw new Error("non-standard __iterator__ called?"); } };
|
o = { get a() { return 17; }, b: 2 };
|
||||||
values = Object.values(o);
|
values = Object.values(o),
|
||||||
assert.compareArray(values, [o.__iterator__]);
|
assert.compareArray(values, [17, 2]);
|
||||||
|
|
||||||
o = { a: 1, b: 2 };
|
o = { __iterator__: function() { throw new Error("non-standard __iterator__ called?"); } };
|
||||||
delete o.a;
|
values = Object.values(o);
|
||||||
o.a = 3;
|
assert.compareArray(values, [o.__iterator__]);
|
||||||
values = Object.values(o);
|
|
||||||
assert.compareArray(values, [2, 3]);
|
|
||||||
|
|
||||||
o = [0, 1, 2];
|
o = { a: 1, b: 2 };
|
||||||
values = Object.values(o);
|
delete o.a;
|
||||||
assert.compareArray(values, [0, 1, 2]);
|
o.a = 3;
|
||||||
|
values = Object.values(o);
|
||||||
|
assert.compareArray(values, [2, 3]);
|
||||||
|
|
||||||
o = /./.exec("abc");
|
o = [0, 1, 2];
|
||||||
values = Object.values(o);
|
values = Object.values(o);
|
||||||
assert.compareArray(values, ["a", 0, "abc", undefined]);
|
assert.compareArray(values, [0, 1, 2]);
|
||||||
|
|
||||||
o = { a: 1, b: 2, c: 3 };
|
o = /./.exec("abc");
|
||||||
delete o.b;
|
values = Object.values(o);
|
||||||
o.b = 5;
|
assert.compareArray(values, ["a", 0, "abc", undefined]);
|
||||||
values = Object.values(o);
|
|
||||||
assert.compareArray(values, [1, 3, 5]);
|
|
||||||
|
|
||||||
function f() { }
|
o = { a: 1, b: 2, c: 3 };
|
||||||
f.prototype.p = 1;
|
delete o.b;
|
||||||
o = new f();
|
o.b = 5;
|
||||||
o.g = 1;
|
values = Object.values(o);
|
||||||
values = Object.values(o);
|
assert.compareArray(values, [1, 3, 5]);
|
||||||
assert.compareArray(values, [1]);
|
|
||||||
|
|
||||||
var o = {get a() {delete this.b; return 1}, b: 2, c: 3};
|
function f() { }
|
||||||
values = Object.values(o);
|
f.prototype.p = 1;
|
||||||
assert.compareArray(values, [1, 3]);
|
o = new f();
|
||||||
|
o.g = 1;
|
||||||
|
values = Object.values(o);
|
||||||
|
assert.compareArray(values, [1]);
|
||||||
|
|
||||||
assert.throws(TypeError, () => Object.values());
|
var o = {get a() {delete this.b; return 1}, b: 2, c: 3};
|
||||||
assert.throws(TypeError, () => Object.values(undefined));
|
values = Object.values(o);
|
||||||
assert.throws(TypeError, () => Object.values(null));
|
assert.compareArray(values, [1, 3]);
|
||||||
|
|
||||||
assert.compareArray(Object.values(1), []);
|
assert.throws(TypeError, () => Object.values());
|
||||||
assert.compareArray(Object.values(true), []);
|
assert.throws(TypeError, () => Object.values(undefined));
|
||||||
assert.compareArray(Object.values(Symbol("foo")), []);
|
assert.throws(TypeError, () => Object.values(null));
|
||||||
|
|
||||||
assert.compareArray(Object.values("foo"), ["f", "o", "o"]);
|
assert.compareArray(Object.values(1), []);
|
||||||
|
assert.compareArray(Object.values(true), []);
|
||||||
|
assert.compareArray(Object.values(Symbol("foo")), []);
|
||||||
|
|
||||||
values = Object.values({
|
assert.compareArray(Object.values("foo"), ["f", "o", "o"]);
|
||||||
|
|
||||||
|
values = Object.values({
|
||||||
get a(){
|
get a(){
|
||||||
Object.defineProperty(this, "b", {enumerable: false});
|
Object.defineProperty(this, "b", {enumerable: false});
|
||||||
return "A";
|
return "A";
|
||||||
},
|
},
|
||||||
b: "B"
|
b: "B"
|
||||||
});
|
});
|
||||||
assert.compareArray(values, ["A"]);
|
assert.compareArray(values, ["A"]);
|
||||||
|
|
||||||
let ownKeysCallCount = 0;
|
let ownKeysCallCount = 0;
|
||||||
let getOwnPropertyDescriptorCalls = [];
|
let getOwnPropertyDescriptorCalls = [];
|
||||||
let target = { a: 1, b: 2, c: 3 };
|
let target = { a: 1, b: 2, c: 3 };
|
||||||
o = new Proxy(target, {
|
o = new Proxy(target, {
|
||||||
ownKeys() {
|
ownKeys() {
|
||||||
ownKeysCallCount++;
|
ownKeysCallCount++;
|
||||||
return ["c", "a"];
|
return ["c", "a"];
|
||||||
@ -91,10 +92,8 @@ if ("values" in Object) {
|
|||||||
getOwnPropertyDescriptorCalls.push(key);
|
getOwnPropertyDescriptorCalls.push(key);
|
||||||
return Object.getOwnPropertyDescriptor(target, key);
|
return Object.getOwnPropertyDescriptor(target, key);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
values = Object.values(o);
|
values = Object.values(o);
|
||||||
assert.sameValue(ownKeysCallCount, 1);
|
assert.sameValue(ownKeysCallCount, 1);
|
||||||
assert.compareArray(values, [3, 1]);
|
assert.compareArray(values, [3, 1]);
|
||||||
assert.compareArray(getOwnPropertyDescriptorCalls, ["c", "a"]);
|
assert.compareArray(getOwnPropertyDescriptorCalls, ["c", "a"]);
|
||||||
}
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user