diff --git a/tests/microbench.js b/tests/microbench.js index 69d963b..302f2ad 100644 --- a/tests/microbench.js +++ b/tests/microbench.js @@ -695,6 +695,30 @@ function math_min(n) return n * 1000; } +function regexp_ascii(n) +{ + var i, j, r, s; + s = "the quick brown fox jumped over the lazy dog" + for(j = 0; j < n; j++) { + for(i = 0; i < 10000; i++) + r = /the quick brown fox/.exec(s) + global_res = r; + } + return n * 10000; +} + +function regexp_utf16(n) +{ + var i, j, r, s; + s = "the quick brown ᶠᵒˣ jumped over the lazy ᵈᵒᵍ" + for(j = 0; j < n; j++) { + for(i = 0; i < 10000; i++) + r = /the quick brown ᶠᵒˣ/.exec(s) + global_res = r; + } + return n * 10000; +} + /* incremental string contruction as local var */ function string_build1(n) { @@ -1026,6 +1050,8 @@ function main(argc, argv, g) array_for_in, array_for_of, math_min, + regexp_ascii, + regexp_utf16, string_build1, string_build1x, string_build2c, diff --git a/tests/test_bjson.js b/tests/test_bjson.js index f15ef91..faa22a6 100644 --- a/tests/test_bjson.js +++ b/tests/test_bjson.js @@ -144,6 +144,18 @@ function bjson_test_reference() } } +function bjson_test_regexp() +{ + var buf, r; + + bjson_test(/xyzzy/); + bjson_test(/xyzzy/digu); + + buf = bjson.write(/(?<𝓓𝓸𝓰>dog)/); + r = bjson.read(buf, 0, buf.byteLength); + assert("sup dog".match(r).groups["𝓓𝓸𝓰"], "dog"); +} + function bjson_test_all() { var obj; @@ -186,6 +198,7 @@ function bjson_test_all() } bjson_test_reference(); + bjson_test_regexp(); } bjson_test_all();