~ubuntu-branches/ubuntu/saucy/mozjs17/saucy

« back to all changes in this revision

Viewing changes to js/src/jit-test/tests/debug/surfaces-offsets.js

  • Committer: Package Import Robot
  • Author(s): Rico Tzschichholz
  • Date: 2013-05-25 12:24:23 UTC
  • Revision ID: package-import@ubuntu.com-20130525122423-zmxucrhtensw90xy
Tags: upstream-17.0.0
ImportĀ upstreamĀ versionĀ 17.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Invalid offsets result in exceptions, not bogus results.
 
2
 
 
3
load(libdir + "asserts.js");
 
4
 
 
5
var g = newGlobal('new-compartment');
 
6
var dbg = Debugger(g);
 
7
var hits;
 
8
dbg.onDebuggerStatement = function (frame) {
 
9
    assertEq(frame.script.getOffsetLine(frame.offset), g.line);
 
10
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(String(frame.offset)); }, Error);
 
11
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(Object(frame.offset)); }, Error);
 
12
 
 
13
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(-1); }, Error);
 
14
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(1000000); }, Error);
 
15
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(0.25); }, Error);
 
16
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(+Infinity); }, Error);
 
17
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(-Infinity); }, Error);
 
18
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(NaN); }, Error);
 
19
 
 
20
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(false); }, Error);
 
21
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(true); }, Error);
 
22
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(undefined); }, Error);
 
23
    assertThrowsInstanceOf(function () { frame.script.getOffsetLine(); }, Error);
 
24
 
 
25
    // We assume that at least one whole number between 0 and frame.offset is invalid.
 
26
    assertThrowsInstanceOf(
 
27
        function () {
 
28
            for (var i = 0; i < frame.offset; i++)
 
29
                frame.script.getOffsetLine(i);
 
30
        },
 
31
        Error);
 
32
 
 
33
    hits++;
 
34
};
 
35
 
 
36
hits = 0;
 
37
g.eval("var line = new Error().lineNumber; debugger;");