зеркало из https://github.com/mozilla/gecko-dev.git
35 строки
1.1 KiB
HTML
35 строки
1.1 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<script>
|
|
function vendGetter(name) {
|
|
// eslint-disable-next-line no-throw-literal
|
|
return function() { throw "Getting " + String(name); };
|
|
}
|
|
function vendSetter(name) {
|
|
// eslint-disable-next-line no-throw-literal
|
|
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]) {
|
|
let propNames = Object.getOwnPropertyNames(obj);
|
|
propNames = propNames.concat(Object.getOwnPropertySymbols(obj));
|
|
for (var propName of propNames) {
|
|
if ((propName == "prototype" ||
|
|
propName == Symbol.hasInstance) &&
|
|
obj == Promise) {
|
|
// They're 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>
|