| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <script src="../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <script> |
| |
| description("Test that a 16-bit AtomString containing only 8-bit characters doesn't confuse the JIT into thinking it's an 8-bit AtomString."); |
| |
| o = {}; |
| |
| stringWithEmoji = "zest😐"; |
| var test16bit = stringWithEmoji.substring(0, 4); |
| |
| o[test16bit] = "this makes it an AtomString"; |
| |
| globalRope = ""; |
| |
| function jittable(a, b) { |
| for (var i = 0; i < 5000; ++i) { |
| poisonedRope = a + b; |
| o[poisonedRope] = 1; |
| globalRope = "foo." + poisonedRope; |
| } |
| } |
| |
| jittable("ze", "st"); |
| |
| shouldBe("globalRope", "'foo.zest'"); |
| |
| </script> |
| <script src="../resources/js-test-post.js"></script> |
| </body> |
| </html> |