mirror of
https://code.forgejo.org/actions/setup-node.git
synced 2025-05-21 05:24:45 +00:00
.
This commit is contained in:
parent
fc725ba36b
commit
422b9fdb15
7395 changed files with 1786235 additions and 3476 deletions
122
node_modules/object-keys/implementation.js
generated
vendored
Normal file
122
node_modules/object-keys/implementation.js
generated
vendored
Normal file
|
@ -0,0 +1,122 @@
|
|||
'use strict';
|
||||
|
||||
var keysShim;
|
||||
if (!Object.keys) {
|
||||
// modified from https://github.com/es-shims/es5-shim
|
||||
var has = Object.prototype.hasOwnProperty;
|
||||
var toStr = Object.prototype.toString;
|
||||
var isArgs = require('./isArguments'); // eslint-disable-line global-require
|
||||
var isEnumerable = Object.prototype.propertyIsEnumerable;
|
||||
var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');
|
||||
var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');
|
||||
var dontEnums = [
|
||||
'toString',
|
||||
'toLocaleString',
|
||||
'valueOf',
|
||||
'hasOwnProperty',
|
||||
'isPrototypeOf',
|
||||
'propertyIsEnumerable',
|
||||
'constructor'
|
||||
];
|
||||
var equalsConstructorPrototype = function (o) {
|
||||
var ctor = o.constructor;
|
||||
return ctor && ctor.prototype === o;
|
||||
};
|
||||
var excludedKeys = {
|
||||
$applicationCache: true,
|
||||
$console: true,
|
||||
$external: true,
|
||||
$frame: true,
|
||||
$frameElement: true,
|
||||
$frames: true,
|
||||
$innerHeight: true,
|
||||
$innerWidth: true,
|
||||
$onmozfullscreenchange: true,
|
||||
$onmozfullscreenerror: true,
|
||||
$outerHeight: true,
|
||||
$outerWidth: true,
|
||||
$pageXOffset: true,
|
||||
$pageYOffset: true,
|
||||
$parent: true,
|
||||
$scrollLeft: true,
|
||||
$scrollTop: true,
|
||||
$scrollX: true,
|
||||
$scrollY: true,
|
||||
$self: true,
|
||||
$webkitIndexedDB: true,
|
||||
$webkitStorageInfo: true,
|
||||
$window: true
|
||||
};
|
||||
var hasAutomationEqualityBug = (function () {
|
||||
/* global window */
|
||||
if (typeof window === 'undefined') { return false; }
|
||||
for (var k in window) {
|
||||
try {
|
||||
if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
|
||||
try {
|
||||
equalsConstructorPrototype(window[k]);
|
||||
} catch (e) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}());
|
||||
var equalsConstructorPrototypeIfNotBuggy = function (o) {
|
||||
/* global window */
|
||||
if (typeof window === 'undefined' || !hasAutomationEqualityBug) {
|
||||
return equalsConstructorPrototype(o);
|
||||
}
|
||||
try {
|
||||
return equalsConstructorPrototype(o);
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
keysShim = function keys(object) {
|
||||
var isObject = object !== null && typeof object === 'object';
|
||||
var isFunction = toStr.call(object) === '[object Function]';
|
||||
var isArguments = isArgs(object);
|
||||
var isString = isObject && toStr.call(object) === '[object String]';
|
||||
var theKeys = [];
|
||||
|
||||
if (!isObject && !isFunction && !isArguments) {
|
||||
throw new TypeError('Object.keys called on a non-object');
|
||||
}
|
||||
|
||||
var skipProto = hasProtoEnumBug && isFunction;
|
||||
if (isString && object.length > 0 && !has.call(object, 0)) {
|
||||
for (var i = 0; i < object.length; ++i) {
|
||||
theKeys.push(String(i));
|
||||
}
|
||||
}
|
||||
|
||||
if (isArguments && object.length > 0) {
|
||||
for (var j = 0; j < object.length; ++j) {
|
||||
theKeys.push(String(j));
|
||||
}
|
||||
} else {
|
||||
for (var name in object) {
|
||||
if (!(skipProto && name === 'prototype') && has.call(object, name)) {
|
||||
theKeys.push(String(name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (hasDontEnumBug) {
|
||||
var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
|
||||
|
||||
for (var k = 0; k < dontEnums.length; ++k) {
|
||||
if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
|
||||
theKeys.push(dontEnums[k]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return theKeys;
|
||||
};
|
||||
}
|
||||
module.exports = keysShim;
|
Loading…
Add table
Add a link
Reference in a new issue