Created attachment 8580235 [details] unicodeNormalization.html User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:37.0) Gecko/20100101 Firefox/37.0 Build ID: 20150305191659 Steps to reproduce: Assume a button with an id of "NFKC": <button id="NFKC">NFKC</button> Stick that string in a variable: var s1 = document.body.querySelector('#NFKC').id By way of comparison, assign the very same string to a variable directly: var s2 = 'NFKC' So of course: s1 === s2 // true And: s1 == s2 // true To normalize a string, you pass one of NFC, NFD, NFKC, or NFKD to .normalize(), like this: 'á'.normalize('NFKC') // "á" Depending on the normalization form you choose, you get different codepoints: 'á'.normalize('NFC').length == 1 // true 'á'.normalize('NFD').length == 2 // true Actual results: Since we know that s1 (the string we retrieved from the DOM) and s2 are THE SAME STRING (s1 === s2 is true), then obviously we can use either to normalize a string: 'á'.normalize(s2) "á" // well yeah, because s2 IS 'NFKC'. Naturally, s1 will behave exactly the same way, right? 'á'.normalize(s1) // RangeError: form must be one of 'NFC', 'NFD', 'NFKC', or 'NFKD' Why the error here, but not with s2? Expected results: If I pass one of four strings corresponding to normalization forms to .normalize(), it should carry out normalization. Instead, I get a RangeError.
Product: Firefox → Core
Summary: String.prototype.normalize error when normalization form parameter is from the DOM → String.prototype.normalize error when normalization form parameter is not an atom
So the problem here is that the form parameter can be a "linear string", but not an atom. And of course if it's not an atom the pointer comparison to any atom is always going to fail.
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Created attachment 8580637 [details] [diff] [review] normalize
Attachment #8580637 - Flags: review?(jwalden+bmo)
Comment on attachment 8580637 [details] [diff] [review] normalize Review of attachment 8580637 [details] [diff] [review]: ----------------------------------------------------------------- Oh fail, how did I review that. :-(
Attachment #8580637 - Flags: review?(jwalden+bmo) → review+
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
status-firefox39: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla39
You need to log in before you can comment on or make changes to this bug.