UNPKG

lively.lang

Version:

JavaScript utils providing useful abstractions for working with collections, functions, objects.

105 lines (93 loc) 2.16 kB
function all(object, predicate) { // ignore-in-doc var a = []; for (var name in object) { if ((object.__lookupGetter__(name) || typeof object[name] !== 'function') && (predicate ? predicate(name, object) : true)) a.push(name); } return a; } function allOwnPropertiesOrFunctions(obj, predicate) { // ignore-in-doc return Object.getOwnPropertyNames(obj).reduce(function(result, name) { if (predicate ? predicate(obj, name) : true) result.push(name); return result; }, []); } function own(object) { // ignore-in-doc var a = []; for (var name in object) { if (object.hasOwnProperty(name) && (object.__lookupGetter__(name) || object[name] !== 'function')) a.push(name); } return a; } function forEachOwn(object, func, context) { // ignore-in-doc var result = []; for (var name in object) { if (!object.hasOwnProperty(name)) continue; var value = object[name]; if (value !== 'function') { result.push(func.call(context || this, name, value)); } } return result; } function nameFor(object, value) { // ignore-in-doc for (var name in object) if (object[name] === value) return name; return undefined; } function values(obj) { // ignore-in-doc var values = []; for (var name in obj) values.push(obj[name]); return values; } function ownValues(obj) { // ignore-in-doc var values = []; for (var name in obj) if (obj.hasOwnProperty(name)) values.push(obj[name]); return values; } function any(obj, predicate) { // ignore-in-doc for (var name in obj) if (predicate(obj, name)) return true; return false; } function allProperties(obj, predicate) { // ignore-in-doc var result = []; for (var name in obj) if (predicate ? predicate(obj, name) : true) result.push(name); return result; } function hash(obj) { // ignore-in-doc // Using the property names of `obj` to generate a hash value. return Object.keys(obj).sort().join('').hashCode(); } export { all, allOwnPropertiesOrFunctions, own, forEachOwn, nameFor, values, ownValues, any, allProperties, hash, }