| 20 | using HPHP::HardwareCounter; |
| 21 | |
| 22 | void add_native_hook( |
| 23 | JSContextRef ctx, |
| 24 | JSObjectRef obj, |
| 25 | const char *name, |
| 26 | JSObjectCallAsFunctionCallback hook |
| 27 | ) { |
| 28 | JSStringRef jsName = JSStringCreateWithUTF8CString(name); |
| 29 | JSObjectSetProperty( |
| 30 | ctx, |
| 31 | obj, |
| 32 | jsName, |
| 33 | JSObjectMakeFunctionWithCallback(ctx, jsName, hook), |
| 34 | kJSPropertyAttributeNone, |
| 35 | NULL |
| 36 | ); |
| 37 | JSStringRelease(jsName); |
| 38 | } |
| 39 | |
| 40 | static void fprint_value( |
| 41 | FILE *file, |