From 1a738cb72fa9f8b7280f15586a68ef9377b18976 Mon Sep 17 00:00:00 2001 From: dmethvin Date: Wed, 17 Aug 2011 17:30:31 -0400 Subject: Landing pull request 463. Fixes #9572. Don't camelize the `-ms-` prefix because Microsoft didn't. A Fixes #9572. More Details: - https://github.com/jquery/jquery/pull/463 - http://bugs.jquery.com/ticket/9572 --- src/core.js | 7 ++++--- test/unit/core.js | 9 +++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/core.js b/src/core.js index 7a77ae132..694f884d6 100644 --- a/src/core.js +++ b/src/core.js @@ -47,6 +47,7 @@ var jQuery = function( selector, context ) { // Matches dashed string for camelizing rdashAlpha = /-([a-z]|[0-9])/ig, + rmsPrefix = /^-ms-/, // Used by jQuery.camelCase as callback to replace() fcamelCase = function( all, letter ) { @@ -590,10 +591,10 @@ jQuery.extend({ } }, - // Converts a dashed string to camelCased string; - // Used by both the css and data modules + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) camelCase: function( string ) { - return string.replace( rdashAlpha, fcamelCase ); + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); }, nodeName: function( elem, name ) { diff --git a/test/unit/core.js b/test/unit/core.js index 8c285f6dd..d47920501 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -1129,10 +1129,15 @@ test("jQuery.camelCase()", function() { var tests = { "foo-bar": "fooBar", - "foo-bar-baz": "fooBarBaz" + "foo-bar-baz": "fooBarBaz", + "girl-u-want": "girlUWant", + "the-4th-dimension": "the4thDimension", + "-o-tannenbaum": "OTannenbaum", + "-moz-illa": "MozIlla", + "-ms-take": "msTake" }; - expect(2); + expect(7); jQuery.each( tests, function( key, val ) { equal( jQuery.camelCase( key ), val, "Converts: " + key + " => " + val ); -- cgit v1.2.3