diff -r 000000000000 -r 6474c204b198 js/src/jit-test/tests/basic/metadata-hook.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/js/src/jit-test/tests/basic/metadata-hook.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,34 @@ + +x = [1,2,3]; +setObjectMetadata(x, {y:0}); +assertEq(getObjectMetadata(x).y, 0); + +setObjectMetadataCallback(true); + +function Foo() { + this.x = 0; + this.y = 1; +} + +function hello() { + function there() { + w = new Foo(); + x = [1,2,3]; + y = [2,3,5]; + z = {a:0,b:1}; + } + callee = there; + callee(); +} +hello(); + +var wc = getObjectMetadata(w).index; +var xc = getObjectMetadata(x).index; +var yc = getObjectMetadata(y).index; +var zc = getObjectMetadata(z).index; + +assertEq(xc > wc, true); +assertEq(yc > xc, true); +assertEq(zc > yc, true); +assertEq(getObjectMetadata(x).stack[0], callee); +assertEq(getObjectMetadata(x).stack[1], hello);