michael@0: /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* michael@0: * Any copyright is dedicated to the Public Domain. michael@0: * http://creativecommons.org/licenses/publicdomain/ michael@0: */ michael@0: michael@0: var expect, actual; michael@0: michael@0: var obj = { michael@0: f: function() { michael@0: expect = this.g; michael@0: actual = arguments.callee.caller; michael@0: print("Ok"); michael@0: } michael@0: }; michael@0: michael@0: var obj2 = { __proto__: obj, g: function() { this.f(); }}; michael@0: michael@0: var obj3 = { __proto__: obj2, h: function() { this.g(); }}; michael@0: michael@0: var obj4 = { __proto__: obj3 } michael@0: michael@0: obj4.h(); michael@0: michael@0: reportCompare(expect, actual, "ok");