Q: Node.js v5.1.0 'arguments' not allowing me to access nested array properties I've got a class that I'm instantiating in two different ways:
_client.setAppAuth(clientId, clientSecret, tokenTtl)
_client.setAppAuth({
    clientId: clientId,
    clientSecret: clientSecret,
    tokenTtl: tokenTtl
})

I've got a setter/getter defined, and a helper method:
Object.defineProperty(MyClient.prototype, "appAuth", {
    get: function() {
        return appAuth
    },
    set: function(opts) {
        console.log(arguments)
    }
})

MyClient.prototype.setAppAuth = function(opts) {
    this.appAuth = typeof opts === 'object' ? opts : arguments
}

I'm trying to retrieve the arguments from this instantiation using arguments.
In the console.log(), I get the following:
{ '0': 
   { '0': 'YXA6GXSAACS2EeOYd20aP4G6Lw',
     '1': 'YXA66BeEvgNpJBwc4PAbvZZGTVS_SSw',
     '2': 3600 } }

{ '0': 
   { clientId: 'YXA6GXSAACS2EeOYd20aP4G6Lw',
     clientSecret: 'YXA66BeEvgNpJBwc4PAbvZZGTVS_SSw',
     tokenTtl: 3600 } }

That looks about right for what I'm expecting. Here's the weird part though:
console.log(arguments[0])

gets me this:
{ '0': 'YXA6GXSAACS2EeOYd20aP4G6Lw',
  '1': 'YXA66BeEvgNpJBwc4PAbvZZGTVS_SSw',
  '2': 3600 }
{ clientId: 'YXA6GXSAACS2EeOYd20aP4G6Lw',
  clientSecret: 'YXA66BeEvgNpJBwc4PAbvZZGTVS_SSw',
  tokenTtl: 3600 }

But when I do:
console.log(arguments[0][0]) // or arguments[0]["0"]

I get:
TypeError: Cannot read property '0' of null

I realize that arguments isn't actually an Array (it has a length property though) shouldn't I still be able to access the inner property values like it were an object? typeof arguments[0] returns object? What gives? Is this a Node implementation bug, or am I just not doing it right? How can I get the object values out of arguments[0]?

Update
Doing a try/catch like so:
try {
    console.log(opts, Object.keys(opts))
} catch (e) {

}

logs out:
{ '0': 'YXA6GXSAACS2EeOYd20aP4G6Lw',
  '1': 'YXA66BeEvgNpJBwc4PAbvZZGTVS_SSw',
  '2': 3600 } [ '0', '1', '2' ]
{ clientId: 'YXA6GXSAACS2EeOYd20aP4G6Lw',
  clientSecret: 'YXA66BeEvgNpJBwc4PAbvZZGTVS_SSw',
  tokenTtl: 3600 } [ 'clientId', 'clientSecret', 'tokenTtl' ]

So clearly it appears that somewhere it's trying to execute the setter function by passing a null argument? But when logging console.log(e) or e.stack, there's no output. The catch block is never even reached? Clearly something else is going on here - going to strip the entire lib out and try to reproduce with an SSCCE.
