Skip to content
break on access to a property
Branch: master
Clone or download
Latest commit 49440c4 Mar 9, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs readme update with image showing accessor in callstack Sep 17, 2013
tests Conditional breakpoints, clearer test names Sep 17, 2013
README.md Update README.md Dec 23, 2017
break-on-access.js Conditional breakpoints, clearer test names Sep 17, 2013
license add apache2 license Mar 9, 2018

README.md

Usage

Omg the cookie is being changed, but where? Give me a breakpoint when JS changes my cookies!

breakOn(document, 'cookie');

Some JS is getting the scrollTop value causing massive Recalculate Styles costs. Who is the perpetrator PERFetrator?

breakOn(document.body,'scrollTop', 'read')

This works really well as a snippet in the Chrome DevTools:

By default, breakOn will only break when JS attempts to change the value of a property. The third optional argument takes 'read' if you'd also like to break when values are read.

It is also possible to disable/enable a breakpoint by using methods provided by returned object.

    var bp = breakOn(document, 'cookie');
    // found it!
    bp.disable();
    // something else is up....
    bp.enable();

breakOn also supports Conditional Breakpoints when the 4th argument is a function. Say you know a property is being changed after the 4th change.

    var i = 0;
    var bp = breakOn(document, 'cookie', false, function(v) {
        return i++ >= 4;
    });

Or something is leaving a property undefined

    var bp = breakOn(document, 'cookie', false, function(v) {
        return typeof v === 'undefined';
    });

Authors

Dave Methvin, Paul Irish, fat, and these handsome people

Alternatives

History

Object.defineProperty(twttr, 'profile', {
    get: function () {
      debugger
    }
  , set: function (val) {
      debugger
    }
})
You can’t perform that action at this time.