Tests how debugger presents special properties of closures, bound functions and object wrappers.

Debugger was enabled.
Script source was shown.
Set timer for test function.
Watch expressions updated.
Nodes are expanded.
'Object(true)' => 'Boolean'
    '__proto__' => 'Boolean'
'(function(a,b) { return a + b; })' => 'function (a, b) { return a + b; }'
    'arguments' => 'null'
    'caller' => 'null'
    'length' => '2'
    'name' => '""'
    'prototype' => 'Object'
    '__proto__' => 'function () {'
    <function scope>
'(function(a,b) { return a + b; }).bind({}, 2)' => 'function () {'
    'get arguments' => 'function () {'
    'get caller' => 'function () {'
    'length' => '1'
    'name' => '""'
    'set arguments' => 'function () {'
    'set caller' => 'function () {'
    '__proto__' => 'function () {'
    <function scope>
Debugger was disabled.

