| // Test that setting Debugger.Memory.prototype.allocationSamplingProbability to |
| // a bad number throws. |
| |
| load(libdir + "asserts.js"); |
| |
| const root = newGlobal(); |
| |
| const dbg = new Debugger(); |
| const wrappedRoot = dbg.addDebuggee(root); |
| |
| var mem = dbg.memory; |
| |
| // Out of range, negative |
| assertThrowsInstanceOf(() => mem.allocationSamplingProbability = -Number.MAX_VALUE, |
| TypeError); |
| assertThrowsInstanceOf(() => mem.allocationSamplingProbability = -1, |
| TypeError); |
| assertThrowsInstanceOf(() => mem.allocationSamplingProbability = -Number.MIN_VALUE, |
| TypeError); |
| |
| // In range |
| mem.allocationSamplingProbability = -0.0; |
| mem.allocationSamplingProbability = 0.0; |
| mem.allocationSamplingProbability = Number.MIN_VALUE; |
| mem.allocationSamplingProbability = 1 / 3; |
| mem.allocationSamplingProbability = .5; |
| mem.allocationSamplingProbability = 2 / 3; |
| mem.allocationSamplingProbability = 1 - Math.pow(2, -53); |
| mem.allocationSamplingProbability = 1; |
| |
| // Out of range, positive |
| assertThrowsInstanceOf(() => mem.allocationSamplingProbability = 1 + Number.EPSILON, |
| TypeError); |
| assertThrowsInstanceOf(() => mem.allocationSamplingProbability = 2, |
| TypeError); |
| assertThrowsInstanceOf(() => mem.allocationSamplingProbability = Number.MAX_VALUE, |
| TypeError); |
| |
| // Out of range, non-finite |
| assertThrowsInstanceOf(() => mem.allocationSamplingProbability = -Infinity, |
| TypeError); |
| assertThrowsInstanceOf(() => mem.allocationSamplingProbability = Infinity, |
| TypeError); |
| assertThrowsInstanceOf(() => mem.allocationSamplingProbability = NaN, |
| TypeError); |