diff options
author | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2017-08-17 14:21:57 -0400 |
---|---|---|
committer | Mark Benvenuto <mark.benvenuto@mongodb.com> | 2017-08-17 14:21:57 -0400 |
commit | 4cb5071ecb94d0789392b1748b49388099a8a2ec (patch) | |
tree | 2d1725f70e278da924ae4019f3f7f86be7e4771d /jstests/core/js_jit.js | |
parent | 66e2805eb1c5d130ae37ef4f72bc19b8db0fc8dc (diff) | |
download | mongo-4cb5071ecb94d0789392b1748b49388099a8a2ec.tar.gz |
SERVER-30362 MozJS - implement resolve instead of getProperty for native types
Diffstat (limited to 'jstests/core/js_jit.js')
-rw-r--r-- | jstests/core/js_jit.js | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/jstests/core/js_jit.js b/jstests/core/js_jit.js new file mode 100644 index 00000000000..4ccdd2917ae --- /dev/null +++ b/jstests/core/js_jit.js @@ -0,0 +1,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(); +})();
\ No newline at end of file |