michael@0: (function() { michael@0: var o = {'arguments': 42}; michael@0: with (o) { // Definitely forces heavyweight. michael@0: // Note syntax is not a property access. michael@0: reportCompare(delete arguments, true, michael@0: "arguments property deletion within with block"); michael@0: } michael@0: reportCompare('arguments' in o, false, michael@0: "property deletion observable"); michael@0: })(); michael@0: michael@0: (function() { michael@0: var o = {'arguments': 42}; michael@0: delete o.arguments; michael@0: reportCompare('arguments' in o, false, michael@0: "arguments property deletion with property access syntax"); michael@0: })(); michael@0: michael@0: (function() { michael@0: var arguments = 42; // Forces heavyweight. michael@0: reportCompare(delete arguments, false, michael@0: "arguments variable"); michael@0: })(); michael@0: michael@0: (function() { michael@0: reportCompare(delete arguments, false, "arguments object"); michael@0: })();