Files
Nikolay Vitkov d76576c6fe [deps] Update EsLint v8.57.1 and plugins
This is need to be able to move to flat config which I am handling
in a separate CL.
The overrides are there as these packages got update today,
so we need to way, but they were last touched 3 years ago,
so reviewing their changes upstream as well.

Bug: none
Change-Id: I61534f881fd4e747c716b42b773f8f7f3e9bc761
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6063618
Commit-Queue: Nikolay Vitkov <nvitkov@chromium.org>
Reviewed-by: Danil Somsikov <dsv@chromium.org>
2024-12-02 14:40:07 +00:00

32 lines
822 B
JavaScript

'use strict';
var GetIntrinsic = require('get-intrinsic');
var hasSymbols = require('has-symbols')();
var $TypeError = require('es-errors/type');
var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true);
var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%', true);
var keys = require('object-keys');
var esType = require('./Type');
// https://262.ecma-international.org/6.0/#sec-getownpropertykeys
module.exports = function GetOwnPropertyKeys(O, Type) {
if (esType(O) !== 'Object') {
throw new $TypeError('Assertion failed: Type(O) is not Object');
}
if (Type === 'Symbol') {
return $gOPS ? $gOPS(O) : [];
}
if (Type === 'String') {
if (!$gOPN) {
return keys(O);
}
return $gOPN(O);
}
throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`');
};