bug with extend?

change /6 shows the problem /8 show it working if a simpler tier is used /13 shows the solution -- DEEP copy

by Gerald Gillespie

HTML

d1:<span id='d1'></span>
<br/>
d2:
<span id='d2'></span>

CSS

div{border:1px solid}

JavaScript

var n = 'n',
  o = {},
    p={};

o = { tier1a : {tier2 : { }},
     tier1b : 1} ;

o['tier1a']['tier2'] = ["one", "two", "three"];

$('#d1').data(n, $.extend(true,{},o)); // DEEP COPY
               
$('#d1').text(o.tier1a.tier2.toString());
//$('#d1').text(o.tier1b);

p = $.extend(true,{},o);

$('#d1').data(n).tier1a.tier2 = [];
$('#d1').data(n).tier1b = 2;

$('#d2').text( o.tier1a.tier2.toString());
//$('#d2').text( o.tier1b);