| <!DOCTYPE html> |
| <html> |
| <head> |
| <title> |
| cycle-connection-gc.html |
| </title> |
| <script src="../../resources/js-test.js"></script> |
| </head> |
| <body> |
| <script id="layout-test-code"> |
| description('Cycles of AudioNode connections should be collected.'); |
| let context = new OfflineAudioContext(2, 44100, 44100); |
| gc(); |
| let initialCount = internals.audioHandlerCount(); |
| createCycle(); |
| debug('A cycle was created:'); |
| shouldBeTrue('internals.audioHandlerCount() > initialCount'); |
| gc(); |
| debug('GC happened:'); |
| shouldBe('internals.audioHandlerCount()', 'initialCount'); |
| |
| function createCycle() { |
| let source = context.createBufferSource(); |
| let delay1 = context.createDelay(); |
| let delay2 = context.createDelay(); |
| source.connect(delay1); |
| delay1.connect(delay2); |
| delay2.connect(delay1); |
| delay1.connect(context.destination); |
| } |
| </script> |
| </body> |
| </html> |