| <!DOCTYPE html> |
| <html> |
| <head> |
| <meta charset="windows-1253"> |
| <title>Speculative script</title> |
| <script src=/resources/testharness.js></script> |
| <script src=/resources/testharnessreport.js></script> |
| <script src=/common/utils.js></script> |
| <body> |
| <script> |
| const uuid = token(); |
| |
| window.onmessage = function(e) { |
| // The script is first speculatively loaded in the windows-1253 context (inherited from this doc), so |
| // the Greek hex NCR turns into a byte. This byte is stored. Then the script is fetched |
| // non-speculatively, because the Greek hexNCR in the URL makes the URL not match in the |
| // windows-1251 context. Now the Greek hex NCR turns in to a decimal NCR and the original Greek |
| // character comes back as a byte that gets a Cyrillic interpretation. |
| assert_equals(e.data, `token: ${uuid}, character: ζ, previous character: \u0436, byte: \u0436`, "Check result"); |
| done(); |
| } |
| |
| setup({single_test: true}); |
| const iframe = document.createElement('iframe'); |
| iframe.src = `support/speculative-script.py?uuid=${uuid}`; |
| document.body.appendChild(iframe); |
| </script> |