summaryrefslogtreecommitdiff
path: root/jstests/core/js_jit.js
blob: 72290d457589d813878273f0fd5ebef959940a7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
 * Validate various native types continue to work when run in JITed code.
 *
 * In SERVER-30362, the JIT would not compile natives types which had custom getProperty
 * implementations correctly. We force the JIT to kick in by using large loops.
 */
(function() {
'use strict';

function testDBCollection() {
    const c = new DBCollection(null, null, "foo", "test.foo");
    for (let i = 0; i < 100000; i++) {
        if (c.toString() != "test.foo") {
            throw i;
        }
    }
}

function testDB() {
    const c = new DB(null, "test");
    for (let i = 0; i < 100000; i++) {
        if (c.toString() != "test") {
            throw i;
        }
    }
}

function testDBQuery() {
    const c = DBQuery('a', 'b', 'c', 'd');
    for (let i = 0; i < 100000; i++) {
        if (c.toString() != "DBQuery: d -> null") {
            throw i;
        }
    }
}

testDBCollection();
testDB();
testDBQuery();
})();