blob: 0d9d7c0e18d7f83b3832a1d84b41feda7f1b6dc5 [file] [log] [blame]
'use strict'
var values = require('../character/values.js')
function normalizeIdentifier(value) {
return (
value
// Collapse Markdown whitespace.
.replace(/[\t\n\r ]+/g, values.space)
// Trim.
.replace(/^ | $/g, '')
// Some characters are considered “uppercase”, but if their lowercase
// counterpart is uppercased will result in a different uppercase
// character.
// Hence, to get that form, we perform both lower- and uppercase.
// Upper case makes sure keys will not interact with default prototypal
// methods: no object method is uppercase.
.toLowerCase()
.toUpperCase()
)
}
module.exports = normalizeIdentifier