| Index: third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html
|
| diff --git a/third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html b/third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html
|
| index cc74c3d30184c09eba48f2dfcb50b61a9ce1ce82..d820b1d146860b17fec12b63eb7f079229ed2815 100644
|
| --- a/third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html
|
| +++ b/third_party/WebKit/LayoutTests/editing/input/text-input-controller-leak-document.html
|
| @@ -7,19 +7,21 @@
|
| var input = document.getElementById('text');
|
| input.focus();
|
| textInputController.setMarkedText("hello", 0, 5);
|
| - // Do not pass the object directly to observeGC function. This may
|
| - // remain live on this function's stack preventing GC from collecting
|
| - // it. Accessing the object inside an inner function will prevent any
|
| - // unneeded references on this function's stack.
|
| - var markedRangeResultGC = internals.observeGC((() => {
|
| - return textInputController.markedRange();
|
| - })());
|
| - var selectedRangeResultGC = internals.observeGC((() => {
|
| - return textInputController.selectedRange();
|
| - })());
|
| - var firstRectForCharacterRangeGC = internals.observeGC((() => {
|
| - return textInputController.firstRectForCharacterRange(0, 0);
|
| - })());
|
| + // Do initialization work in an inner function to avoid references to
|
| + // objects remaining live on this function's stack frame.
|
| + // (http://crbug.com/595672/).
|
| + var markedRangeResultGC, selectedRangeResultGC;
|
| + var firstRectForCharacterRangeGC;
|
| + function initialize() {
|
| + markedRangeResultGC = internals.observeGC(
|
| + textInputController.markedRange());
|
| + selectedRangeResultGC = internals.observeGC(
|
| + textInputController.selectedRange());
|
| + firstRectForCharacterRangeGC = internals.observeGC(
|
| + textInputController.firstRectForCharacterRange(0, 0));
|
| + }
|
| +
|
| + initialize();
|
| gc();
|
| shouldBeTrue('markedRangeResultGC.wasCollected');
|
| shouldBeTrue('selectedRangeResultGC.wasCollected');
|
|
|