mirror of
https://github.com/tc39/test262.git
synced 2025-07-27 07:54:41 +02:00
Curation for the jsc/es6 tests
This commit is contained in:
parent
d544eacedf
commit
3c726256d1
38
implementation-contributed/curation_logs/es6.md
Normal file
38
implementation-contributed/curation_logs/es6.md
Normal file
@ -0,0 +1,38 @@
|
||||
- well-known_symbols_Symbol.toPrimitive.js
|
||||
- Review coverage for Symbol.toPrimitive calls in many expressions. e.g. addition, subtractiong, comparison, etc
|
||||
- WeakSet_iterator_closing.js
|
||||
- Based in the tests at `built-ins/WeakSet/iterator-*`, add cases for verifying the correct get and call order for the iterator next/return/throw, etc
|
||||
- the same is valid for WeakMap, Set, and Map
|
||||
- Unicode_code_point_escapes_in_identifiers.js / Unicode_code_point_escapes_in_strings.js
|
||||
- Needs coverage for cases using unicode code point escapes in:
|
||||
- `language/identifiers`
|
||||
- `language/reserved-words`
|
||||
- `language/literals`
|
||||
- `language/keywords`
|
||||
- `language/directive-prologue`
|
||||
- `language/white-space`
|
||||
- arguments object?
|
||||
- etc
|
||||
- Symbol_JSON.stringify_ignores_symbols.js
|
||||
- Cover Symbol values in JSON.stringify (`built-ins/JSON/stringify`)
|
||||
- Set_-0_key_converts_to_+0.js
|
||||
- `built-ins/Set/will-not-add-duplicate-entry-normalizes-zero.js`: reconsider verifying -0 normalization fetching the values from the Set.
|
||||
- Similar to Map index? Needs to verify
|
||||
- rest_parameters_new_Function_support.js
|
||||
- Add coverage composing fns through `new Function` using rest operators in strings
|
||||
- expand to other function constructors
|
||||
- rest_parameters_cant_be_used_in_setters.js
|
||||
- Couldn't find coverage for rest parameters disallowed in setters, needs double check
|
||||
- Proxy_JSON.stringify_support.js
|
||||
- Is it worth adding JSON.stringify behavior over Proxied objects?
|
||||
- Proxy_internal_set_calls_Array.prototype.push.js / Proxy_internal_set_calls_*.js / Proxy_internal_get_calls_*.js
|
||||
- It is interesting to verify Array/String/RegExp/etc methods calling internals being observed with exotic proxy objects.
|
||||
- This is a coverage for each method, not Proxy.
|
||||
- Rather than add these operations to each method, but most of the Array methods have malstructured legacy tests.
|
||||
- It's recommended to review the coverage and recreate tests, adding cases where calls to internals are observed like in this example.
|
||||
- prototype_of_bound_functions_arrow_functions.js
|
||||
- Add coverage for bound special functions
|
||||
- Add coverage for checking the prototypes...
|
||||
- Add coverage for bound class methods (include static and private)
|
||||
- Object_static_methods_accept_primitives_Object.freeze.js
|
||||
- Needs Coverage Object static methods - e.g. `Object.freeze` - receiving non object values
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Array.prototype.copyWithin === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Array.prototype.entries === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Array.prototype.fill === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Array.prototype.find === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Array.prototype.findIndex === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Array.prototype.keys === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Array.prototype.values === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Array.prototype[Symbol.iterator] === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,17 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var unscopables = Array.prototype[Symbol.unscopables];
|
||||
if (!unscopables) {
|
||||
return false;
|
||||
}
|
||||
var ns = "find,findIndex,fill,copyWithin,entries,keys,values".split(",");
|
||||
for (var i = 0; i < ns.length; i++) {
|
||||
if (Array.prototype[ns[i]] && !unscopables[ns[i]]) return false;
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,19 +0,0 @@
|
||||
function test() {
|
||||
|
||||
// Iterator instance
|
||||
var iterator = [][Symbol.iterator]();
|
||||
// %ArrayIteratorPrototype%
|
||||
var proto1 = Object.getPrototypeOf(iterator);
|
||||
// %IteratorPrototype%
|
||||
var proto2 = Object.getPrototypeOf(proto1);
|
||||
|
||||
return proto2.hasOwnProperty(Symbol.iterator) &&
|
||||
!proto1 .hasOwnProperty(Symbol.iterator) &&
|
||||
!iterator .hasOwnProperty(Symbol.iterator) &&
|
||||
iterator[Symbol.iterator]() === iterator;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
return C.from({ length: 0 }) instanceof C;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
return Array.isArray(new C());
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
return C.of(0) instanceof C;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
var c = new C();
|
||||
return c.concat(1) instanceof C;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
var c = new C();
|
||||
return c.filter(Boolean) instanceof C;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
var c = new C();
|
||||
return c.map(Boolean) instanceof C;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,12 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
var c = new C();
|
||||
c.push(2,4,6);
|
||||
return c.slice(1,2) instanceof C;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,12 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
var c = new C();
|
||||
c.push(2,4,6);
|
||||
return c.splice(1,2) instanceof C;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
var c = new C();
|
||||
return c instanceof C && c instanceof Array && Object.getPrototypeOf(C) === Array;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,14 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
var c = new C();
|
||||
var len1 = c.length;
|
||||
c[2] = 'foo';
|
||||
var len2 = c.length;
|
||||
return len1 === 0 && len2 === 3;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,13 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Array {}
|
||||
var c = new C();
|
||||
c[2] = 'foo';
|
||||
c.length = 1;
|
||||
return c.length === 1 && !(2 in c);
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return Array.from({ 0: "foo", 1: "bar", length: 2 }) + '' === "foo,bar";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var iterable = (function*(){ yield 1; yield 2; yield 3; }());
|
||||
return Array.from(iterable) + '' === "1,2,3";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,30 +0,0 @@
|
||||
var global = this;
|
||||
|
||||
function __createIterableObject(arr, methods) {
|
||||
methods = methods || {};
|
||||
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
||||
return {};
|
||||
}
|
||||
arr.length++;
|
||||
var iterator = {
|
||||
next: function() {
|
||||
return { value: arr.shift(), done: arr.length <= 0 };
|
||||
},
|
||||
'return': methods['return'],
|
||||
'throw': methods['throw']
|
||||
};
|
||||
var iterable = {};
|
||||
iterable[Symbol.iterator] = function(){ return iterator; }
|
||||
return iterable;
|
||||
}
|
||||
|
||||
function test() {
|
||||
|
||||
var iterable = global.__createIterableObject([1, 2, 3]);
|
||||
return Array.from(iterable) + '' === "1,2,3";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,30 +0,0 @@
|
||||
var global = this;
|
||||
|
||||
function __createIterableObject(arr, methods) {
|
||||
methods = methods || {};
|
||||
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
||||
return {};
|
||||
}
|
||||
arr.length++;
|
||||
var iterator = {
|
||||
next: function() {
|
||||
return { value: arr.shift(), done: arr.length <= 0 };
|
||||
},
|
||||
'return': methods['return'],
|
||||
'throw': methods['throw']
|
||||
};
|
||||
var iterable = {};
|
||||
iterable[Symbol.iterator] = function(){ return iterator; }
|
||||
return iterable;
|
||||
}
|
||||
|
||||
function test() {
|
||||
|
||||
var iterable = global.__createIterableObject([1, 2, 3]);
|
||||
return Array.from(Object.create(iterable)) + '' === "1,2,3";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,36 +0,0 @@
|
||||
var global = this;
|
||||
|
||||
function __createIterableObject(arr, methods) {
|
||||
methods = methods || {};
|
||||
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
||||
return {};
|
||||
}
|
||||
arr.length++;
|
||||
var iterator = {
|
||||
next: function() {
|
||||
return { value: arr.shift(), done: arr.length <= 0 };
|
||||
},
|
||||
'return': methods['return'],
|
||||
'throw': methods['throw']
|
||||
};
|
||||
var iterable = {};
|
||||
iterable[Symbol.iterator] = function(){ return iterator; }
|
||||
return iterable;
|
||||
}
|
||||
|
||||
function test() {
|
||||
|
||||
var closed = false;
|
||||
var iter = global.__createIterableObject([1, 2, 3], {
|
||||
'return': function(){ closed = true; return {}; }
|
||||
});
|
||||
try {
|
||||
Array.from(iter, function() { throw 42 });
|
||||
} catch(e){}
|
||||
return closed;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return Array.from({ 0: "foo", 1: "bar", length: 2 }, function(e, i) {
|
||||
return e + this.baz + i;
|
||||
}, { baz: "d" }) + '' === "food0,bard1";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,12 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var iterable = (function*(){ yield "foo"; yield "bar"; yield "bal"; }());
|
||||
return Array.from(iterable, function(e, i) {
|
||||
return e + this.baz + i;
|
||||
}, { baz: "d" }) + '' === "food0,bard1,bald2";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,32 +0,0 @@
|
||||
var global = this;
|
||||
|
||||
function __createIterableObject(arr, methods) {
|
||||
methods = methods || {};
|
||||
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
||||
return {};
|
||||
}
|
||||
arr.length++;
|
||||
var iterator = {
|
||||
next: function() {
|
||||
return { value: arr.shift(), done: arr.length <= 0 };
|
||||
},
|
||||
'return': methods['return'],
|
||||
'throw': methods['throw']
|
||||
};
|
||||
var iterable = {};
|
||||
iterable[Symbol.iterator] = function(){ return iterator; }
|
||||
return iterable;
|
||||
}
|
||||
|
||||
function test() {
|
||||
|
||||
var iterable = global.__createIterableObject(["foo", "bar", "bal"]);
|
||||
return Array.from(iterable, function(e, i) {
|
||||
return e + this.baz + i;
|
||||
}, { baz: "d" }) + '' === "food0,bard1,bald2";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,32 +0,0 @@
|
||||
var global = this;
|
||||
|
||||
function __createIterableObject(arr, methods) {
|
||||
methods = methods || {};
|
||||
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
||||
return {};
|
||||
}
|
||||
arr.length++;
|
||||
var iterator = {
|
||||
next: function() {
|
||||
return { value: arr.shift(), done: arr.length <= 0 };
|
||||
},
|
||||
'return': methods['return'],
|
||||
'throw': methods['throw']
|
||||
};
|
||||
var iterable = {};
|
||||
iterable[Symbol.iterator] = function(){ return iterator; }
|
||||
return iterable;
|
||||
}
|
||||
|
||||
function test() {
|
||||
|
||||
var iterable = global.__createIterableObject(["foo", "bar", "bal"]);
|
||||
return Array.from(Object.create(iterable), function(e, i) {
|
||||
return e + this.baz + i;
|
||||
}, { baz: "d" }) + '' === "food0,bard1,bald2";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Array.of === 'function' &&
|
||||
Array.of(2)[0] === 2;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var prop = Object.getOwnPropertyDescriptor(Array, Symbol.species);
|
||||
return 'get' in prop && Array[Symbol.species] === Array;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Function {}
|
||||
var c = new C("x", "return this.bar + x;");
|
||||
return c.apply({bar:1}, [2]) === 3;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Function {}
|
||||
var c = new C("x", "y", "return this.bar + x + y;").bind({bar:1}, 2);
|
||||
return c(6) === 9 && c instanceof C;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Function {}
|
||||
var c = new C("x", "return this.bar + x;");
|
||||
return c.call({bar:1}, 2) === 3;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Function {}
|
||||
var c = new C("return 'foo';");
|
||||
return c() === 'foo';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,12 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Function {}
|
||||
var c = new C("this.bar = 2;");
|
||||
c.prototype.baz = 3;
|
||||
return new c().bar === 2 && new c().baz === 3;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
class C extends Function {}
|
||||
var c = new C("return 'foo';");
|
||||
return c instanceof C && c instanceof Function && Object.getPrototypeOf(C) === Function;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
--> A comment
|
||||
<!-- Another comment
|
||||
var a = 3; <!-- Another comment
|
||||
return a === 3;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Map.prototype.clear === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Map.prototype.delete === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Map.prototype.entries === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Map.prototype.forEach === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Map.prototype.keys === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var map = new Map();
|
||||
return map.set(0, 0) === map;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,14 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var key = {};
|
||||
var map = new Map();
|
||||
|
||||
map.set(key, 123);
|
||||
|
||||
return map.size === 1;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Map.prototype.values === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Map.prototype[Symbol.iterator] === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var prop = Object.getOwnPropertyDescriptor(Map, Symbol.species);
|
||||
return 'get' in prop && Map[Symbol.species] === Map;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,19 +0,0 @@
|
||||
function test() {
|
||||
|
||||
// Iterator instance
|
||||
var iterator = new Map()[Symbol.iterator]();
|
||||
// %MapIteratorPrototype%
|
||||
var proto1 = Object.getPrototypeOf(iterator);
|
||||
// %IteratorPrototype%
|
||||
var proto2 = Object.getPrototypeOf(proto1);
|
||||
|
||||
return proto2.hasOwnProperty(Symbol.iterator) &&
|
||||
!proto1 .hasOwnProperty(Symbol.iterator) &&
|
||||
!iterator .hasOwnProperty(Symbol.iterator) &&
|
||||
iterator[Symbol.iterator]() === iterator;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,14 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var key = {};
|
||||
var map = new Map();
|
||||
|
||||
map.set(key, 123);
|
||||
|
||||
return map.has(key) && map.get(key) === 123;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
new Map(null);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,14 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var key1 = {};
|
||||
var key2 = {};
|
||||
var map = new Map([[key1, 123], [key2, 456]]);
|
||||
|
||||
return map.has(key1) && map.get(key1) === 123 &&
|
||||
map.has(key2) && map.get(key2) === 456;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,19 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var passed = false;
|
||||
var _set = Map.prototype.set;
|
||||
|
||||
Map.prototype.set = function(k, v) {
|
||||
passed = true;
|
||||
};
|
||||
|
||||
new Map([ [1, 2] ]);
|
||||
Map.prototype.set = _set;
|
||||
|
||||
return passed;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,15 +0,0 @@
|
||||
function test() {
|
||||
|
||||
new Map();
|
||||
try {
|
||||
Map();
|
||||
return false;
|
||||
} catch(e) {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,36 +0,0 @@
|
||||
var global = this;
|
||||
|
||||
function __createIterableObject(arr, methods) {
|
||||
methods = methods || {};
|
||||
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
||||
return {};
|
||||
}
|
||||
arr.length++;
|
||||
var iterator = {
|
||||
next: function() {
|
||||
return { value: arr.shift(), done: arr.length <= 0 };
|
||||
},
|
||||
'return': methods['return'],
|
||||
'throw': methods['throw']
|
||||
};
|
||||
var iterable = {};
|
||||
iterable[Symbol.iterator] = function(){ return iterator; }
|
||||
return iterable;
|
||||
}
|
||||
|
||||
function test() {
|
||||
|
||||
var closed = false;
|
||||
var iter = global.__createIterableObject([1, 2, 3], {
|
||||
'return': function(){ closed = true; return {}; }
|
||||
});
|
||||
try {
|
||||
new Map(iter);
|
||||
} catch(e){}
|
||||
return closed;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.acosh === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.asinh === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.atanh === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.cbrt === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.clz32 === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.cosh === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.expm1 === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.fround === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,12 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return Math.hypot() === 0 &&
|
||||
Math.hypot(1) === 1 &&
|
||||
Math.hypot(9, 12, 20) === 25 &&
|
||||
Math.hypot(27, 36, 60, 100) === 125;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.imul === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.log10 === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.log1p === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.log2 === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.sign === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.sinh === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.tanh === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Math.trunc === "function";
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Number.EPSILON === 'number';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Number.MAX_SAFE_INTEGER === 'number';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Number.MIN_SAFE_INTEGER === 'number';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Number.isFinite === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Number.isInteger === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Number.isNaN === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Number.isSafeInteger === 'function';
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var o = Object.create(null), p = {};
|
||||
o.__proto__ = p;
|
||||
return Object.getPrototypeOf(o) !== p;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,16 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var desc = Object.getOwnPropertyDescriptor(Object.prototype,"__proto__");
|
||||
var A = function(){};
|
||||
|
||||
return (desc
|
||||
&& "get" in desc
|
||||
&& "set" in desc
|
||||
&& desc.configurable
|
||||
&& !desc.enumerable);
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var A = function(){};
|
||||
return (new A()).__proto__ === A.prototype;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return Object.getOwnPropertyNames(Object.prototype).indexOf('__proto__') > -1;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return Object.prototype.hasOwnProperty('__proto__');
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var o = {};
|
||||
o.__proto__ = Array.prototype;
|
||||
return o instanceof Array;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var o = Object.assign({a:true}, {b:true}, {c:true});
|
||||
return "a" in o && "b" in o && "c" in o;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,17 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var o = {};
|
||||
var sym = Symbol(), sym2 = Symbol(), sym3 = Symbol();
|
||||
o[sym] = true;
|
||||
o[sym2] = true;
|
||||
o[sym3] = true;
|
||||
var result = Object.getOwnPropertySymbols(o);
|
||||
return result[0] === sym
|
||||
&& result[1] === sym2
|
||||
&& result[2] === sym3;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,11 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return typeof Object.is === 'function' &&
|
||||
Object.is(NaN, NaN) &&
|
||||
!Object.is(-0, 0);
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,9 +0,0 @@
|
||||
function test() {
|
||||
|
||||
return Object.setPrototypeOf({}, Array.prototype) instanceof Array;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,29 +0,0 @@
|
||||
function test() {
|
||||
var passed = false;
|
||||
function asyncTestPassed() {
|
||||
passed = true;
|
||||
}
|
||||
|
||||
var fulfills = Promise.all([
|
||||
new Promise(function(resolve) { setTimeout(resolve,200,"foo"); }),
|
||||
new Promise(function(resolve) { setTimeout(resolve,100,"bar"); }),
|
||||
]);
|
||||
var rejects = Promise.all([
|
||||
new Promise(function(_, reject) { setTimeout(reject, 200,"baz"); }),
|
||||
new Promise(function(_, reject) { setTimeout(reject, 100,"qux"); }),
|
||||
]);
|
||||
var score = 0;
|
||||
fulfills.then(function(result) { score += (result + "" === "foo,bar"); check(); });
|
||||
rejects.catch(function(result) { score += (result === "qux"); check(); });
|
||||
|
||||
function check() {
|
||||
if (score === 2) asyncTestPassed();
|
||||
}
|
||||
|
||||
drainMicrotasks();
|
||||
return passed;
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,49 +0,0 @@
|
||||
var global = this;
|
||||
|
||||
function __createIterableObject(arr, methods) {
|
||||
methods = methods || {};
|
||||
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
||||
return {};
|
||||
}
|
||||
arr.length++;
|
||||
var iterator = {
|
||||
next: function() {
|
||||
return { value: arr.shift(), done: arr.length <= 0 };
|
||||
},
|
||||
'return': methods['return'],
|
||||
'throw': methods['throw']
|
||||
};
|
||||
var iterable = {};
|
||||
iterable[Symbol.iterator] = function(){ return iterator; }
|
||||
return iterable;
|
||||
}
|
||||
|
||||
function test() {
|
||||
var passed = false;
|
||||
function asyncTestPassed() {
|
||||
passed = true;
|
||||
}
|
||||
|
||||
var fulfills = Promise.all(global.__createIterableObject([
|
||||
new Promise(function(resolve) { setTimeout(resolve,200,"foo"); }),
|
||||
new Promise(function(resolve) { setTimeout(resolve,100,"bar"); }),
|
||||
]));
|
||||
var rejects = Promise.all(global.__createIterableObject([
|
||||
new Promise(function(_, reject) { setTimeout(reject, 200,"baz"); }),
|
||||
new Promise(function(_, reject) { setTimeout(reject, 100,"qux"); }),
|
||||
]));
|
||||
var score = 0;
|
||||
fulfills.then(function(result) { score += (result + "" === "foo,bar"); check(); });
|
||||
rejects.catch(function(result) { score += (result === "qux"); check(); });
|
||||
|
||||
function check() {
|
||||
if (score === 2) asyncTestPassed();
|
||||
}
|
||||
|
||||
drainMicrotasks();
|
||||
return passed;
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,29 +0,0 @@
|
||||
function test() {
|
||||
var passed = false;
|
||||
function asyncTestPassed() {
|
||||
passed = true;
|
||||
}
|
||||
|
||||
var fulfills = Promise.race([
|
||||
new Promise(function(resolve) { setTimeout(resolve,200,"foo"); }),
|
||||
new Promise(function(_, reject) { setTimeout(reject, 300,"bar"); }),
|
||||
]);
|
||||
var rejects = Promise.race([
|
||||
new Promise(function(_, reject) { setTimeout(reject, 200,"baz"); }),
|
||||
new Promise(function(resolve) { setTimeout(resolve,300,"qux"); }),
|
||||
]);
|
||||
var score = 0;
|
||||
fulfills.then(function(result) { score += (result === "foo"); check(); });
|
||||
rejects.catch(function(result) { score += (result === "baz"); check(); });
|
||||
|
||||
function check() {
|
||||
if (score === 2) asyncTestPassed();
|
||||
}
|
||||
|
||||
drainMicrotasks();
|
||||
return passed;
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,49 +0,0 @@
|
||||
var global = this;
|
||||
|
||||
function __createIterableObject(arr, methods) {
|
||||
methods = methods || {};
|
||||
if (typeof Symbol !== 'function' || !Symbol.iterator) {
|
||||
return {};
|
||||
}
|
||||
arr.length++;
|
||||
var iterator = {
|
||||
next: function() {
|
||||
return { value: arr.shift(), done: arr.length <= 0 };
|
||||
},
|
||||
'return': methods['return'],
|
||||
'throw': methods['throw']
|
||||
};
|
||||
var iterable = {};
|
||||
iterable[Symbol.iterator] = function(){ return iterator; }
|
||||
return iterable;
|
||||
}
|
||||
|
||||
function test() {
|
||||
var passed = false;
|
||||
function asyncTestPassed() {
|
||||
passed = true;
|
||||
}
|
||||
|
||||
var fulfills = Promise.race(global.__createIterableObject([
|
||||
new Promise(function(resolve) { setTimeout(resolve,200,"foo"); }),
|
||||
new Promise(function(_, reject) { setTimeout(reject, 300,"bar"); }),
|
||||
]));
|
||||
var rejects = Promise.race(global.__createIterableObject([
|
||||
new Promise(function(_, reject) { setTimeout(reject, 200,"baz"); }),
|
||||
new Promise(function(resolve) { setTimeout(resolve,300,"qux"); }),
|
||||
]));
|
||||
var score = 0;
|
||||
fulfills.then(function(result) { score += (result === "foo"); check(); });
|
||||
rejects.catch(function(result) { score += (result === "baz"); check(); });
|
||||
|
||||
function check() {
|
||||
if (score === 2) asyncTestPassed();
|
||||
}
|
||||
|
||||
drainMicrotasks();
|
||||
return passed;
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,10 +0,0 @@
|
||||
function test() {
|
||||
|
||||
var prop = Object.getOwnPropertyDescriptor(Promise, Symbol.species);
|
||||
return 'get' in prop && Promise[Symbol.species] === Promise;
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,36 +0,0 @@
|
||||
function test() {
|
||||
var passed = false;
|
||||
function asyncTestPassed() {
|
||||
passed = true;
|
||||
}
|
||||
|
||||
var p1 = new Promise(function(resolve, reject) { resolve("foo"); });
|
||||
var p2 = new Promise(function(resolve, reject) { reject("quux"); });
|
||||
var score = 0;
|
||||
|
||||
function thenFn(result) { score += (result === "foo"); check(); }
|
||||
function catchFn(result) { score += (result === "quux"); check(); }
|
||||
function shouldNotRun(result) { score = -Infinity; }
|
||||
|
||||
p1.then(thenFn, shouldNotRun);
|
||||
p2.then(shouldNotRun, catchFn);
|
||||
p1.catch(shouldNotRun);
|
||||
p2.catch(catchFn);
|
||||
|
||||
p1.then(function() {
|
||||
// Promise.prototype.then() should return a new Promise
|
||||
score += p1.then() !== p1;
|
||||
check();
|
||||
});
|
||||
|
||||
function check() {
|
||||
if (score === 4) asyncTestPassed();
|
||||
}
|
||||
|
||||
drainMicrotasks();
|
||||
return passed;
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,15 +0,0 @@
|
||||
function test() {
|
||||
|
||||
new Promise(function(){});
|
||||
try {
|
||||
Promise(function(){});
|
||||
return false;
|
||||
} catch(e) {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,30 +0,0 @@
|
||||
function test() {
|
||||
var passed = false;
|
||||
function asyncTestPassed() {
|
||||
passed = true;
|
||||
}
|
||||
|
||||
class P extends Promise {}
|
||||
var fulfills = P.all([
|
||||
new Promise(function(resolve) { setTimeout(resolve,200,"foo"); }),
|
||||
new Promise(function(resolve) { setTimeout(resolve,100,"bar"); }),
|
||||
]);
|
||||
var rejects = P.all([
|
||||
new Promise(function(_, reject) { setTimeout(reject, 200,"baz"); }),
|
||||
new Promise(function(_, reject) { setTimeout(reject, 100,"qux"); }),
|
||||
]);
|
||||
var score = +(fulfills instanceof P);
|
||||
fulfills.then(function(result) { score += (result + "" === "foo,bar"); check(); });
|
||||
rejects.catch(function(result) { score += (result === "qux"); check(); });
|
||||
|
||||
function check() {
|
||||
if (score === 3) asyncTestPassed();
|
||||
}
|
||||
|
||||
drainMicrotasks();
|
||||
return passed;
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
@ -1,30 +0,0 @@
|
||||
function test() {
|
||||
var passed = false;
|
||||
function asyncTestPassed() {
|
||||
passed = true;
|
||||
}
|
||||
|
||||
class P extends Promise {}
|
||||
var fulfills = P.race([
|
||||
new Promise(function(resolve) { setTimeout(resolve,200,"foo"); }),
|
||||
new Promise(function(_, reject) { setTimeout(reject, 300,"bar"); }),
|
||||
]);
|
||||
var rejects = P.race([
|
||||
new Promise(function(_, reject) { setTimeout(reject, 200,"baz"); }),
|
||||
new Promise(function(resolve) { setTimeout(resolve,300,"qux"); }),
|
||||
]);
|
||||
var score = +(fulfills instanceof P);
|
||||
fulfills.then(function(result) { score += (result === "foo"); check(); });
|
||||
rejects.catch(function(result) { score += (result === "baz"); check(); });
|
||||
|
||||
function check() {
|
||||
if (score === 3) asyncTestPassed();
|
||||
}
|
||||
|
||||
drainMicrotasks();
|
||||
return passed;
|
||||
}
|
||||
|
||||
if (!test())
|
||||
throw new Error("Test failed");
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user