summaryrefslogtreecommitdiffstats
path: root/js/src/jit-test/lib/nightly-only.js
blob: aad9403b7c14620cdd9fc11f30d813e338eaf380 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Some experimental features are enabled only on nightly builds, and disabled
// on beta and release. Tests for these features should not simply disable
// themselves on all but nightly builds, because if we neglect to update such
// tests once the features cease to be experimental, we'll silently skip the
// tests on beta and release, even though they should run.

// Call the function f. On beta and release, expect it to throw an error that is
// an instance of error.
function nightlyOnly(error, f) {
  if (getBuildConfiguration("release_or_beta")) {
    try {
      f();
      throw new Error("use of feature expected to fail on release and beta, but succeeded; please update test");
    } catch (e) {
      if (!(e instanceof error)) {
        throw e;
      }
      // All is well.
    }
  } else {
    f();
  }
}