mirror of https://github.com/tc39/test262.git
Improve Array#sort tests for verifying non callable comparefn (#1352)
Fix #1345
This commit is contained in:
parent
3981242226
commit
168cc4c638
|
@ -15,40 +15,81 @@ info: >
|
|||
features: [Symbol]
|
||||
---*/
|
||||
|
||||
var sample = [1, 2, 3];
|
||||
var sample = [1];
|
||||
var poisoned = {
|
||||
get length() {
|
||||
throw new Test262Error("IsCallable(comparefn) should be observed before this.length");
|
||||
}
|
||||
};
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
sample.sort(null);
|
||||
});
|
||||
}, "sample.sort(null);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
[].sort.call(poisoned, null);
|
||||
}, "[].sort.call(poisoned, null);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
sample.sort(true);
|
||||
});
|
||||
}, "sample.sort(true);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
[].sort.call(poisoned, true);
|
||||
}, "[].sort.call(poisoned, true);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
sample.sort(false);
|
||||
});
|
||||
}, "sample.sort(false);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
[].sort.call(poisoned, false);
|
||||
}, "[].sort.call(poisoned, false);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
sample.sort('');
|
||||
});
|
||||
}, "sample.sort('');");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
[].sort.call(poisoned, '');
|
||||
}, "[].sort.call(poisoned, '');");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
sample.sort(/a/g);
|
||||
});
|
||||
}, "sample.sort(/a/g);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
[].sort.call(poisoned, /a/g);
|
||||
}, "[].sort.call(poisoned, /a/g);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
sample.sort(42);
|
||||
});
|
||||
}, "sample.sort(42);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
[].sort.call(poisoned, 42);
|
||||
}, "[].sort.call(poisoned, 42);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
sample.sort([]);
|
||||
});
|
||||
}, "sample.sort([]);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
[].sort.call(poisoned, []);
|
||||
}, "[].sort.call(poisoned, []);");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
sample.sort({});
|
||||
});
|
||||
}, "sample.sort({});");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
[].sort.call(poisoned, {});
|
||||
}, "[].sort.call(poisoned, {});");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
sample.sort(Symbol());
|
||||
});
|
||||
}, "sample.sort(Symbol());");
|
||||
|
||||
assert.throws(TypeError, function() {
|
||||
[].sort.call(poisoned, Symbol());
|
||||
}, "[].sort.call(poisoned, Symbol());");
|
||||
|
|
Loading…
Reference in New Issue