step1 Enumerated the navigator and screen object, i.e., request the listing of all properties of the aforementioned objects.
step2 Enumerated the navigator object again, to ensure that the order of enumeration does not change.
step3 Created a custom object, populated it, and enumerated it. A custom, JavaScript-created object, allows us to compare the behavior of browser-populated objects (such as navigator) with the behavior of “classic”JavaScript objects.
step4 Attempted to delete a property of the navigator object, the screen object, and the custom object.
step5 Add the possibly-deleted properties back to their objects.
step6 Attempted to modify an existing property of the navigator and screen objects.
step7 If Object.defineProperty is implemented in the current browser, utilize it to make an existing property in the navigator, screen, and custom object non-enumerable.
step8 Attempt to delete the navigator and screen objects.
step9 Attempt to assign new custom objects to the navigator and screen variable names.