summaryrefslogtreecommitdiffstats
path: root/js/src/tests/ecma_7/TypedObject/referencetypealiasing.js
blob: 66e6e16a8539ca23862b7c5ed59cc255a4e36cce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// |reftest| skip-if(!this.hasOwnProperty("TypedObject"))
var BUGNUMBER = 898359;
var summary = 'TypedObjects reference type aliasing';
var actual = '';
var expect = '';

var ArrayType = TypedObject.ArrayType;
var StructType = TypedObject.StructType;
var Any = TypedObject.Any;
var Object = TypedObject.Object;
var string = TypedObject.string;

function runTests()
{
  printBugNumber(BUGNUMBER);
  printStatus(summary);

  var MyType = new StructType({f: Object});

  // Test aliasing
  var myInstance = new MyType({f: {a: 22}});
  var anotherInstance = new MyType({f: myInstance.f});
  assertEq(myInstance.f.a, 22);
  assertEq(myInstance.f.a, anotherInstance.f.a);

  myInstance.f.a += 1;
  assertEq(myInstance.f.a, 23);
  assertEq(myInstance.f.a, anotherInstance.f.a);

  reportCompare(true, true, "TypedObjects reference type aliasing tests");
}

runTests();