mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 23:31:56 +00:00
7c7786c7ac
Note that the web platform tests don't actually have quite the behavior they're expected to per the spec yet. They will get adjusted later on as we add subclassing support to Promise.resolve and Promise.prototype.then.
31 lines
956 B
HTML
31 lines
956 B
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<script>
|
|
function vendGetter(name) {
|
|
return function() { throw "Getting " + String(name) };
|
|
}
|
|
function vendSetter(name) {
|
|
return function() { throw "Setting " + String(name) };
|
|
}
|
|
var setupThrew = false;
|
|
try {
|
|
// Neuter everything we can think of on Promise.
|
|
for (var obj of [Promise, Promise.prototype]) {
|
|
propNames = Object.getOwnPropertyNames(obj);
|
|
propNames = propNames.concat(Object.getOwnPropertySymbols(obj));
|
|
for (var propName of propNames) {
|
|
if (propName == "prototype" && obj == Promise) {
|
|
// It's not configurable
|
|
continue;
|
|
}
|
|
Object.defineProperty(obj, propName,
|
|
{ get: vendGetter(propName), set: vendSetter(propName) });
|
|
}
|
|
}
|
|
} catch (e) {
|
|
// Something went wrong. Save that info so the test can check for it.
|
|
setupThrew = e;
|
|
}
|
|
</script>
|
|
</html>
|