A javascript library for observing object property access and function invocation