66 lines
2.0 KiB
HTML
66 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="../../http/tests/inspector/resources/inspector-test.js"></script>
|
|
<script>
|
|
// NOTE: More cases should be tested and addressed by:
|
|
// <https://webkit.org/b/152294> Web Inspector: Parse InjectedScriptSource as a built-in to get guaranteed non-user-overriden built-ins
|
|
|
|
function triggerIteration() {
|
|
let callCount = 0;
|
|
|
|
const originalIterator = Object.getOwnPropertyDescriptor(Array.prototype, Symbol.iterator);
|
|
Object.defineProperty(Array.prototype, Symbol.iterator, {
|
|
get() {
|
|
++callCount;
|
|
return originalIterator.value;
|
|
}
|
|
});
|
|
|
|
let array = [];
|
|
|
|
debugger;
|
|
|
|
// Preview an object.
|
|
console.log({a:1, b:2, c:{}});
|
|
|
|
// Use Array Iterator at least once.
|
|
for (let x of array) { }
|
|
|
|
Object.defineProperty(Array.prototype, Symbol.iterator, originalIterator);
|
|
|
|
return callCount;
|
|
}
|
|
|
|
function test()
|
|
{
|
|
let suite = InspectorTest.createAsyncSuite("InjectedScript.Observable");
|
|
|
|
suite.addTestCase({
|
|
name: "InjectedScript.Observable:Array.prototype[Symbol.iterator]",
|
|
description: "Array iteration in Injected Script should not be observable",
|
|
test(resolve, reject) {
|
|
InspectorTest.evaluateInPage(`triggerIteration()`, (error, result) => {
|
|
InspectorTest.expectEqual(result, 1, "Array.prototype[Symbol.iterator] call count should be 1.");
|
|
resolve();
|
|
});
|
|
|
|
WI.debuggerManager.singleFireEventListener(WI.DebuggerManager.Event.Paused, (event) => {
|
|
InspectorTest.pass("Paused.");
|
|
WI.debuggerManager.resume().catch(reject);
|
|
});
|
|
WI.debuggerManager.singleFireEventListener(WI.DebuggerManager.Event.Resumed, (event) => {
|
|
InspectorTest.pass("Resumed.");
|
|
});
|
|
}
|
|
});
|
|
|
|
suite.runTestCasesAndFinish();
|
|
}
|
|
</script>
|
|
</head>
|
|
<body onload="runTest()">
|
|
<p>Test that certain InjectedScriptSource operations are not observable by user code.</p>
|
|
</body>
|
|
</html>
|