Tests that opening inspector front-end doesn't change methods defined by the inspected application.

myImpl() => my value
Object.type === myImpl => true
Object.hasProperties === myImpl => true
Object.describe === myImpl => true
Object.className === myImpl => true
String.prototype.escapeCharacters === myImpl => true
JSON.stringify === myImpl => true

