| /* |
| * Any copyright is dedicated to the Public Domain. |
| * http://creativecommons.org/licenses/publicdomain/ |
| */ |
| |
| var gTestfile = 'revocable-proxy-prototype.js'; |
| var BUGNUMBER = 1052139; |
| var summary = "Accessing a revocable proxy's [[Prototype]] shouldn't crash"; |
| |
| print(BUGNUMBER + ": " + summary); |
| |
| /************** |
| * BEGIN TEST * |
| **************/ |
| function checkFunctionAppliedToRevokedProxy(fun) |
| { |
| var p = Proxy.revocable({}, {}); |
| p.revoke(); |
| |
| try |
| { |
| fun(p.proxy); |
| throw "didn't throw"; |
| } |
| catch (e) |
| { |
| assertEq(e instanceof TypeError, true, |
| "expected TypeError, got " + e); |
| } |
| } |
| |
| checkFunctionAppliedToRevokedProxy(proxy => Object.getPrototypeOf(proxy)); |
| checkFunctionAppliedToRevokedProxy(proxy => Object.setPrototypeOf(proxy, null)); |
| |
| /******************************************************************************/ |
| |
| if (typeof reportCompare === "function") |
| reportCompare(true, true); |
| |
| print("Tests complete"); |