Automatic update from web-platform-tests
Update URLs to Web IDL
Only two instances of "heycam.github.io" remain now.
interfaces/WebIDL.idl will be updated when webref is updated next time,
as it has already been fixed there:
7c04f47557
resources/webidl2/lib/webidl2.js is third-party code and will be updated
at some point in the future.
--
wpt-commits: 9a88dfd5bf623a8cb326c154b27f1e3494e11022
wpt-pr: 31148
58 lines
1.6 KiB
JavaScript
58 lines
1.6 KiB
JavaScript
/**
|
|
* Runs tests for <https://webidl.spec.whatwg.org/#es-stringifier>.
|
|
* @param {Object} aObject - object to test
|
|
* @param {string} aAttribute - IDL attribute name that is annotated with `stringifier`
|
|
* @param {boolean} aIsUnforgeable - whether the IDL attribute is `[LegacyUnforgeable]`
|
|
*/
|
|
function test_stringifier_attribute(aObject, aAttribute, aIsUnforgeable) {
|
|
// Step 1.
|
|
test(function() {
|
|
[null, undefined].forEach(function(v) {
|
|
assert_throws_js(TypeError, function() {
|
|
aObject.toString.call(v);
|
|
});
|
|
});
|
|
});
|
|
|
|
// TODO Step 2: security check.
|
|
|
|
// Step 3.
|
|
test(function() {
|
|
assert_false("Window" in window && aObject instanceof window.Window);
|
|
[{}, window].forEach(function(v) {
|
|
assert_throws_js(TypeError, function() {
|
|
aObject.toString.call(v)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Step 4-6.
|
|
var expected_value;
|
|
test(function() {
|
|
expected_value = aObject[aAttribute];
|
|
assert_equals(aObject[aAttribute], expected_value,
|
|
"The attribute " + aAttribute + " should be pure.");
|
|
});
|
|
|
|
var test_error = { name: "test" };
|
|
test(function() {
|
|
if (!aIsUnforgeable) {
|
|
Object.defineProperty(aObject, aAttribute, {
|
|
configurable: true,
|
|
get: function() { throw test_error; }
|
|
});
|
|
}
|
|
assert_equals(aObject.toString(), expected_value);
|
|
});
|
|
|
|
test(function() {
|
|
if (!aIsUnforgeable) {
|
|
Object.defineProperty(aObject, aAttribute, {
|
|
configurable: true,
|
|
value: { toString: function() { throw test_error; } }
|
|
});
|
|
}
|
|
assert_equals(aObject.toString(), expected_value);
|
|
});
|
|
}
|