examples/bower_components/polymer/polymer.js
function(obj, method, args) {
      if (obj) {
        log.events && console.group('[%s] dispatch [%s]', obj.localName, method);
        var fn = typeof method === 'function' ? method : obj[method];
        if (fn) {
          fn[args ? 'apply' : 'call'](obj, args);
        }
        log.events && console.groupEnd();
        // NOTE: dirty check right after calling method to ensure 
        // changes apply quickly; in a very complicated app using high 
        // frequency events, this can be a perf concern; in this case,
        // imperative handlers can be used to avoid flushing.
        Polymer.flush();
      }
    }
function(obj, method, args) {
      if (obj) {
        log.events && console.group('[%s] dispatch [%s]', obj.localName, method);
        var fn = typeof method === 'function' ? method : obj[method];
        if (fn) {
          fn[args ? 'apply' : 'call'](obj, args);
        }
        log.events && console.groupEnd();
        // NOTE: dirty check right after calling method to ensure 
        // changes apply quickly; in a very complicated app using high 
        // frequency events, this can be a perf concern; in this case,
        // imperative handlers can be used to avoid flushing.
        Polymer.flush();
      }
    }
function ( obj , method , args ) { if ( obj ) { log . events && console . group ( '[%s] dispatch [%s]' , obj . localName , method ) ; var fn = typeof method === 'function' ? method : obj [ method ] ; if ( fn ) { fn [ args ? 'apply' : 'call' ] ( obj , args ) ; } log . events && console . groupEnd ( ) ; // NOTE: dirty check right after calling method to ensure  // changes apply quickly; in a very complicated app using high  // frequency events, this can be a perf concern; in this case, // imperative handlers can be used to avoid flushing. Polymer . flush ( ) ; } }
call 'method' or function method on 'obj' with 'args', if the method exists
call method or function method on obj with args if the method exists