1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
content / test / data / service_worker / fetch_event_object_removing_itself.js [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
let obj = {};
function victim() {}
Object.defineProperty(obj, 'handleEvent', {
get: () => {
// Remove the victim function from the listener vector to break the loop.
self.removeEventListener('fetch', victim);
return () => {};
},
configurable: true,
enumerable: true,
});
self.addEventListener('fetch', obj);
self.addEventListener('fetch', victim);