mirror of
https://github.com/denoland/deno.git
synced 2025-08-04 10:59:13 +00:00
perf(ext,runtime): remove using SafeArrayIterator
from for-of
(#17255)
This commit is contained in:
parent
39cbaa6d34
commit
ff89ff4abb
20 changed files with 173 additions and 126 deletions
|
@ -60,7 +60,6 @@
|
|||
ReflectHas,
|
||||
ReflectOwnKeys,
|
||||
RegExpPrototypeTest,
|
||||
SafeArrayIterator,
|
||||
Set,
|
||||
// TODO(lucacasonato): add SharedArrayBuffer to primordials
|
||||
// SharedArrayBuffer,
|
||||
|
@ -633,8 +632,10 @@
|
|||
function createDictionaryConverter(name, ...dictionaries) {
|
||||
let hasRequiredKey = false;
|
||||
const allMembers = [];
|
||||
for (const members of new SafeArrayIterator(dictionaries)) {
|
||||
for (const member of new SafeArrayIterator(members)) {
|
||||
for (let i = 0; i < dictionaries.length; ++i) {
|
||||
const members = dictionaries[i];
|
||||
for (let j = 0; j < members.length; ++j) {
|
||||
const member = members[j];
|
||||
if (member.required) {
|
||||
hasRequiredKey = true;
|
||||
}
|
||||
|
@ -649,7 +650,8 @@
|
|||
});
|
||||
|
||||
const defaultValues = {};
|
||||
for (const member of new SafeArrayIterator(allMembers)) {
|
||||
for (let i = 0; i < allMembers.length; ++i) {
|
||||
const member = allMembers[i];
|
||||
if (ReflectHas(member, "defaultValue")) {
|
||||
const idlMemberValue = member.defaultValue;
|
||||
const imvType = typeof idlMemberValue;
|
||||
|
@ -695,7 +697,8 @@
|
|||
return idlDict;
|
||||
}
|
||||
|
||||
for (const member of new SafeArrayIterator(allMembers)) {
|
||||
for (let i = 0; i < allMembers.length; ++i) {
|
||||
const member = allMembers[i];
|
||||
const key = member.key;
|
||||
|
||||
let esMemberValue;
|
||||
|
@ -821,7 +824,8 @@
|
|||
}
|
||||
// Slow path if Proxy (e.g: in WPT tests)
|
||||
const keys = ReflectOwnKeys(V);
|
||||
for (const key of new SafeArrayIterator(keys)) {
|
||||
for (let i = 0; i < keys.length; ++i) {
|
||||
const key = keys[i];
|
||||
const desc = ObjectGetOwnPropertyDescriptor(V, key);
|
||||
if (desc !== undefined && desc.enumerable === true) {
|
||||
const typedKey = keyConverter(key, opts);
|
||||
|
@ -891,7 +895,9 @@
|
|||
}
|
||||
|
||||
function define(target, source) {
|
||||
for (const key of new SafeArrayIterator(ReflectOwnKeys(source))) {
|
||||
const keys = ReflectOwnKeys(source);
|
||||
for (let i = 0; i < keys.length; ++i) {
|
||||
const key = keys[i];
|
||||
const descriptor = ReflectGetOwnPropertyDescriptor(source, key);
|
||||
if (descriptor && !ReflectDefineProperty(target, key, descriptor)) {
|
||||
throw new TypeError(`Cannot redefine property: ${String(key)}`);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue