As the subject says, node aborts when logging process.binding('crypto').Connection.prototype. It works fine with node 0.11.12:
➜ node git:(v0.11.12-release) ✗ ./node
> process.binding('crypto').Connection.prototype
{ encIn: [Function],
clearOut: [Function],
clearIn: [Function],
encOut: [Function],
clearPending: [Function],
encPending: [Function],
start: [Function],
close: [Function],
getPeerCertificate: [Function],
getSession: [Function],
setSession: [Function],
loadSession: [Function],
isSessionReused: [Function],
isInitFinished: [Function],
verifyError: [Function],
getCurrentCipher: [Function],
endParser: [Function],
renegotiate: [Function],
shutdown: [Function],
getTLSTicket: [Function],
newSessionDone: [Function],
setMaxSendFragment: [Function],
getNegotiatedProtocol: [Function],
setNPNProtocols: [Function],
getServername: [Function],
setSNICallback: [Function] }
> %
But it aborts with node 0.11.14:
➜ node git:(v0.11.14-release) ✗ ./node
> process.binding('crypto').Connection.prototype
Assertion failed: (object->InternalFieldCount() > 0), function Unwrap, file ../src/util-inl.h, line 117.
[1] 66648 abort ./node
➜ node git:(v0.11.14-release) ✗
Note that it's logging that aborts, just accessing the property does not make node abort:
➜ node git:(v0.11.14-release) ✗ ./node -e "process.binding('crypto').Connection.prototype"
➜ node git:(v0.11.14-release) ✗
The change that introduced this regression is somewhere between the 0.11.12 release and the 0.11.14 release, I haven't had the time to investigate more.