/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; let someObject = { a: 1, func: function() { this.b = 2; } }; let anotherObject = { _finalize: function() { someObject.c = 3; } }; function test() { ok(TiltUtils, "The TiltUtils object doesn't exist."); TiltUtils.bindObjectFunc(someObject, "", anotherObject); someObject.func(); is(someObject.a, 1, "The bindObjectFunc() messed the non-function members of the object."); isnot(someObject.b, 2, "The bindObjectFunc() didn't ignore the old scope correctly."); is(anotherObject.b, 2, "The bindObjectFunc() didn't set the new scope correctly."); TiltUtils.destroyObject(anotherObject); is(someObject.c, 3, "The finalize function wasn't called when an object was destroyed."); TiltUtils.destroyObject(someObject); is(typeof someObject.a, "undefined", "Not all members of the destroyed object were deleted."); is(typeof someObject.func, "undefined", "Not all function members of the destroyed object were deleted."); }