| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="../../http/tests/inspector/resources/inspector-test.js"></script> |
| <script> |
| function triggerProxyConsoleLog() { |
| window.accessedHandlerGet = false; |
| |
| let proxy = new Proxy({foo: 1}, { |
| get(target, name, receiver) { |
| window.accessedHandlerGet = true; |
| return target[name]; |
| } |
| }); |
| |
| console.log(proxy); |
| } |
| |
| function triggerProxyAndPrimitiveConsoleLog() { |
| window.accessedHandlerGet = false; |
| |
| let proxy = new Proxy({bar: 2}, { |
| get(target, name, receiver) { |
| window.accessedHandlerGet = true; |
| console.log(1); |
| return target[name]; |
| } |
| }); |
| |
| console.log(0); |
| console.log(proxy); |
| console.log(1); |
| } |
| |
| function test() |
| { |
| let suite = InspectorTest.createAsyncSuite("console.log.proxy"); |
| |
| suite.addTestCase({ |
| name: "BasicProxyLog", |
| description: "console.log of a Proxy object should not trigger proxy get trap.", |
| test(resolve, reject) { |
| InspectorTest.evaluateInPage("triggerProxyConsoleLog()", () => { |
| InspectorTest.evaluateInPage("window.accessedHandlerGet", (error, result) => { |
| InspectorTest.expectFalse(result, "Logging Proxy objects should not have triggered get trap."); |
| resolve(); |
| }); |
| }); |
| } |
| }); |
| |
| suite.addTestCase({ |
| name: "AvoidTrapWhenCheckingConsoleRepeat", |
| description: "console.log repeat checking should not trigger proxy get trap.", |
| test(resolve, reject) { |
| InspectorTest.evaluateInPage("triggerProxyAndPrimitiveConsoleLog()", () => { |
| InspectorTest.evaluateInPage("window.accessedHandlerGet", (error, result) => { |
| InspectorTest.expectFalse(result, "Logging Proxy objects and primitives should not have triggered get trap."); |
| resolve(); |
| }); |
| }); |
| } |
| }); |
| |
| suite.runTestCasesAndFinish(); |
| } |
| </script> |
| </head> |
| <body onload="runTest()"> |
| <p>Tests for the console.log with Proxy objects.</p> |
| </body> |
| </html> |