From 172cad80ac635d8900aa6a3504c89f38b320488e Mon Sep 17 00:00:00 2001 From: Timmy Willison Date: Mon, 4 May 2015 10:49:21 -0400 Subject: [PATCH] Data: camelCasing should not ignore case Fixes gh-2070 --- src/core.js | 2 +- test/unit/data.js | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/core.js b/src/core.js index 0c72801d6..b3e9a7103 100644 --- a/src/core.js +++ b/src/core.js @@ -27,7 +27,7 @@ var // Matches dashed string for camelizing rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/gi, + rdashAlpha = /-([a-z])/g, // Used by jQuery.camelCase as callback to replace() fcamelCase = function( all, letter ) { diff --git a/test/unit/data.js b/test/unit/data.js index aeca493b7..c08550b1b 100644 --- a/test/unit/data.js +++ b/test/unit/data.js @@ -615,6 +615,16 @@ test(".data always sets data with the camelCased key (gh-2257)", function() { }); }); +test( ".data should not strip more than one hyphen when camelCasing (gh-2070)", function() { + expect( 3 ); + var div = jQuery( "
" ).appendTo( "#qunit-fixture" ), + allData = div.data(); + + equal( allData.nestedSingle, "single", "Key is correctly camelCased" ); + equal( allData[ "nested-Double" ], "double", "Key with double hyphens is correctly camelCased" ); + equal( allData[ "nested--Triple" ], "triple", "Key with triple hyphens is correctly camelCased" ); +}); + test(".data supports interoperable hyphenated/camelCase get/set of properties with arbitrary non-null|NaN|undefined values", function() { var div = jQuery("
", { id: "hyphened" }).appendTo("#qunit-fixture"), -- 2.39.5