123456789101112131415161718192021222324252627282930313233 |
- <!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" ||
- 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>
|