From 15f79201c40fda064d184392da33b88a727720da Mon Sep 17 00:00:00 2001 From: Oleg Gaidarenko Date: Mon, 12 Oct 2015 17:28:48 +0300 Subject: [PATCH] Tests: Add .extend test for defined accessor properties Ref 9748e436ad80d6a2e1661ba4cf8d7391ed87c3ad Closes gh-2615 --- test/unit/core.js | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/test/unit/core.js b/test/unit/core.js index e466dad8d..f8fb1c7cd 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -1085,6 +1085,36 @@ QUnit.test( "jQuery.extend(Object, Object)", function( assert ) { assert.deepEqual( options2, options2Copy, "Check if not modified: options2 must not be modified" ); } ); +QUnit.test( "jQuery.extend(Object, Object {created with \"defineProperties\"})", function( assert ) { + + // Support: IE8 only + if ( !( "defineProperties" in Object ) ) { + assert.expect( 0 ); + return; + } + + assert.expect( 2 ); + + var definedObj = Object.defineProperties({}, { + "enumerableProp": { + get: function () { + return true; + }, + enumerable: true + }, + "nonenumerableProp": { + get: function () { + return true; + } + } + }), + accessorObj = {}; + + jQuery.extend( accessorObj, definedObj ); + assert.equal( accessorObj.enumerableProp, true, "Verify that getters are transferred" ); + assert.equal( accessorObj.nonenumerableProp, undefined, "Verify that non-enumerable getters are ignored" ); +} ); + QUnit.test( "jQuery.each(Object,Function)", function( assert ) { assert.expect( 23 );