- From: <bugzilla@jessica.w3.org>
- Date: Mon, 29 Aug 2011 03:25:12 +0000
- To: public-script-coord@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=13752 Garrett <dhtmlkitchen@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dhtmlkitchen@gmail.com --- Comment #4 from Garrett <dhtmlkitchen@gmail.com> 2011-08-29 03:25:10 UTC --- Here is your code: function testInterfaceDeletable(iface) { test(function() { assert_true(!!window[iface], "Interface should exist.") assert_true(delete window[iface], "The delete operator should return true.") assert_equals(window[iface], undefined, "Interface should be gone.") } Avoid getting bit by ASI bugs by consistently using explicit semicolons where they are required. The delete operator does not "return" anything. The delete operator is just what it is: an operator. It performs an operation which has a boolean result. test(function() { for (var p in window) { interfaces.forEach(function(i) { assert_not_equals(p, i) }) } }, "Interface objects properties should not be Enumerable") If `window` is specified to have own interface objects as own properties, then you can use: ({}).propertyIsEnumerable.call(window, "Node"); Otherwise, if interface objects can exist in `window` prototype chain, `propertyIsEnumerable`, which doesn't check the object's prototype, won't work there. Does WebIDL or HTML5 specify `window` to have `Object.prototype` on its prototype chain? If so, then the code could use `window.propertyIsEnumerable("Node")`. -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
Received on Monday, 29 August 2011 03:25:18 UTC