testSecondInstancePublish() {
    mockHTML5LocalStorageCtor().$returns(mockHtml5LocalStorage).$times(2);
    const foo = mockControl.createFunctionMock();
    foo('x', 'y');
    const context = {'foo': 'bar'};
    const bar = recordFunction();

    mockControl.$replayAll();

    broadcastPubSub = new BroadcastPubSub();
    log.setLevel(broadcastPubSub.logger_, Level.OFF);
    broadcastPubSub.subscribe('someTopic', foo);
    broadcastPubSub.subscribe('someTopic', bar, context);

    const broadcastPubSub2 = new BroadcastPubSub();
    broadcastPubSub2.publish('someTopic', 'x', 'y');
    mockClock.tick();

    assertEquals(1, bar.getCallCount());
    assertEquals(context, bar.getLastCall().getThis());
    assertArrayEquals(['x', 'y'], bar.getLastCall().getArguments());

    broadcastPubSub.dispose();
    mockControl.$verifyAll();
  }
Local publish that originated from another instance of BroadcastChannel
in the same JavaScript context.
@suppress {checkTypes,visibility} suppression added to enable type checking