public void DeepAssign()
{
Interpret(
@"var obj = {o1: [{o2: [ {o3: [100]} ] }]};
obj.o1[0] = 10;
var a = obj.o1[0];")
.Equal("a", 10);
Interpret(
@"obj = {o1: [{o2: [ {o3: [100]} ] }]};
obj.o1[0].o2 = 100;
a = obj.o1[0].o2;")
.Equal("a", 100);
Interpret(
@"obj = {o1: [{o2: [ {o3: [100]} ] }]};
obj.o1[0].o2[0] = 1000;
a = obj.o1[0].o2[0];")
.Equal("a", 1000);
Interpret(
@"obj = {o1: [{o2: [ {o3: [100]} ] }]};
obj.o1[0].o2[0].o3[0] = 10000;
a = obj.o1[0].o2[0].o3[0];")
.Equal("a", 10000);
Interpret(
@"var ctx = {value: 1};
obj = {o1: [{o2: func() {
ctx;
}
}
]
};
obj.o1[0].o2().value = 100;
a = ctx.value;")
.Equal("a", 100);
}