| function gc() { |
| if (typeof GCController !== "undefined") |
| GCController.collect(); |
| else { |
| var gcRec = function (n) { |
| if (n < 1) |
| return {}; |
| var temp = {i: "ab" + i + (i / 100000)}; |
| temp += "foo"; |
| gcRec(n-1); |
| }; |
| for (var i = 0; i < 1000; i++) |
| gcRec(10); |
| } |
| } |
| |
| let client = null; |
| |
| self.addEventListener("message", (event) => { |
| client = event.source; |
| self.registration.foo = 1; |
| gc(); |
| setTimeout(function() { |
| gc(); |
| if (self.registration.foo === 1) |
| client.postMessage("PASS: returned object was the same"); |
| else |
| client.postMessage("FAIL: returned object was not the same"); |
| }, 0); |
| }); |