testCallbacks() {
    /** @suppress {checkTypes} suppression added to enable type checking */
    const m = new ModuleInfo();
    m.setModuleConstructor(TestModule);
    let index = 0;
    let a = -1;
    let b = -1;
    let c = -1;
    let d = -1;

    const ca = m.registerCallback(() => {
      a = index++;
    });
    const cb = m.registerCallback(() => {
      b = index++;
    });
    const cc = m.registerCallback(() => {
      c = index++;
    });
    const cd = m.registerEarlyCallback(() => {
      d = index++;
    });
    cb.abort();
    m.onLoad(/** @type {?} */ (() => {}));

    assertTrue('callback A should have fired', a >= 0);
    assertFalse('callback B should have been aborted', b >= 0);
    assertTrue('callback C should have fired', c >= 0);
    assertTrue('early callback d should have fired', d >= 0);

    assertEquals('ordering of callbacks was wrong', 0, d);
    assertEquals('ordering of callbacks was wrong', 1, a);
    assertEquals('ordering of callbacks was wrong', 2, c);
  }
Test callbacks on module load. @suppress {checkTypes} suppression added to
     enable type checking