From 79fa8dbad16a29e9db1e31ea01e921c585e73a90 Mon Sep 17 00:00:00 2001 From: murgatroid99 Date: Thu, 20 Aug 2015 15:52:57 -0700 Subject: [PATCH] Replaced toLowerCase with local-insensitive downcasing function --- src/metadata.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/metadata.js b/src/metadata.js index d4a8b266..77ababb6 100644 --- a/src/metadata.js +++ b/src/metadata.js @@ -48,12 +48,19 @@ function Metadata() { this._internal_repr = {}; } +function downcaseString(str) { + var capitals = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + var lowercase = 'abcdefghijklmnopqrstuvwxyz'; + var charMap = _.zipObject(capitals, lowercase); + return str.replace(/[A-Z]/g, _.curry(_.get)(charMap)); +} + function normalizeKey(key) { if (!(/^[A-Za-z\d-]+$/.test(key))) { throw new Error('Metadata keys must be nonempty strings containing only ' + 'alphanumeric characters and hyphens'); } - return key.toLowerCase(); + return downcaseString(key); } function validate(key, value) {