function protoKeys(object, ignoreKeys) {
  var result = [];
  for (var key in object) {
    if (!ignoreKeys || ignoreKeys.indexOf(key) === -1)
      result.push(key);
  }
  return result;
}
like objectKeys, but includes keys from prototype chain.
@param object the object whose prototypal keys will be returned
@param ignoreKeys an array of keys to ignore