Skip to content

Commit b6e0606

Browse files
authored
Try for in loops (#34)
* Try for in loop * Move more entries to for in
1 parent 6795fa9 commit b6e0606

File tree

1 file changed

+20
-43
lines changed

1 file changed

+20
-43
lines changed

src/basic/useClasses.js

Lines changed: 20 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -125,11 +125,11 @@ const applyStyles = ({
125125
appendRule,
126126
__development__enableVerboseClassnames
127127
}) => {
128+
let cacheValues = [];
129+
let index = 0;
128130
// Reuse styles entries array to avoid extra allocations.
129-
let cacheValues = Object.entries(styles);
130-
131-
for (let index = 0; index < cacheValues.length; index++) {
132-
const [name, value] = cacheValues[index];
131+
for (const name in styles) {
132+
const value = styles[name];
133133

134134
cacheValues[index] = styleToCacheValue({
135135
style: { name, value },
@@ -140,6 +140,7 @@ const applyStyles = ({
140140
appendRule,
141141
__development__enableVerboseClassnames
142142
});
143+
index++;
143144
}
144145

145146
return cacheValues;
@@ -154,15 +155,9 @@ const applyPseudos = ({
154155
appendRule,
155156
__development__enableVerboseClassnames
156157
}) => {
157-
const pseudosEntries = Object.entries(pseudos);
158-
159158
let cacheValues = [];
160-
for (
161-
let pseudosEntriesIndex = 0;
162-
pseudosEntriesIndex < pseudosEntries.length;
163-
pseudosEntriesIndex++
164-
) {
165-
const [pseudo, styles] = pseudosEntries[pseudosEntriesIndex];
159+
for (const pseudo in pseudos) {
160+
const styles = pseudos[pseudo];
166161

167162
cacheValues.push(
168163
...applyStyles({
@@ -187,34 +182,22 @@ const applyStylesOrPseudos = ({
187182
appendRule,
188183
__development__enableVerboseClassnames
189184
}) => {
190-
const stylesOrPseudosEntries = Object.entries(stylesOrPseudos);
191185
// preallocate the array for original size of style entries to optimize for
192186
// most common case where no pseudos or media queries are present, so
193187
// style & cache length are equal
194-
let cacheValues = new Array(stylesOrPseudosEntries.length);
195-
let cacheValuesIndex = 0;
188+
let cacheValues = [];
189+
let index = 0;
196190
// let cacheValues = [];
197-
for (
198-
let stylesOrPseudosEntriesIndex = 0;
199-
stylesOrPseudosEntriesIndex < stylesOrPseudosEntries.length;
200-
stylesOrPseudosEntriesIndex++
201-
) {
202-
const [entryName, entryValue] = stylesOrPseudosEntries[
203-
stylesOrPseudosEntriesIndex
204-
];
191+
for (const entryName in stylesOrPseudos) {
192+
const entryValue = stylesOrPseudos[entryName];
205193

206194
// startsWith might actually be faster than entryName[0] here!
207195
// https://stackoverflow.com/a/62093300
208196
if (entryName.startsWith(":")) {
209-
const stylesEntries = Object.entries(entryValue);
210-
for (
211-
let stylesEntriesIndex = 0;
212-
stylesEntriesIndex < stylesEntries.length;
213-
stylesEntriesIndex++
214-
) {
215-
const [name, value] = stylesEntries[stylesEntriesIndex];
216-
217-
cacheValues[cacheValuesIndex] = styleToCacheValue({
197+
for (const name in entryValue) {
198+
const value = entryValue[name];
199+
200+
cacheValues[index] = styleToCacheValue({
218201
style: { name, value },
219202
pseudo: entryName,
220203
mediaQuery,
@@ -223,20 +206,20 @@ const applyStylesOrPseudos = ({
223206
appendRule,
224207
__development__enableVerboseClassnames
225208
});
226-
cacheValuesIndex++;
209+
index++;
227210
}
228211
continue;
229212
}
230213

231-
cacheValues[cacheValuesIndex] = styleToCacheValue({
214+
cacheValues[index] = styleToCacheValue({
232215
style: { name: entryName, value: entryValue },
233216
mediaQuery,
234217
cache,
235218
resolveStyle,
236219
appendRule,
237220
__development__enableVerboseClassnames
238221
});
239-
cacheValuesIndex++;
222+
index++;
240223
}
241224

242225
return cacheValues;
@@ -252,15 +235,9 @@ const applyMediaQueries = ({
252235
appendRule,
253236
__development__enableVerboseClassnames
254237
}) => {
255-
const mediaQueriesEntries = Object.entries(mediaQueries);
256238
let cacheValues = [];
257-
for (
258-
let mediaQueriesEntriesIndex = 0;
259-
mediaQueriesEntriesIndex < mediaQueriesEntries.length;
260-
mediaQueriesEntriesIndex++
261-
) {
262-
const mediaQueriesEntry = mediaQueriesEntries[mediaQueriesEntriesIndex];
263-
const [mediaQuery, stylesOrPseudos] = mediaQueriesEntry;
239+
for (const mediaQuery in mediaQueries) {
240+
const stylesOrPseudos = mediaQueries[mediaQuery];
264241

265242
// This is probably slower than directly pushing each result, but I really
266243
// don't want to have to start sharing mutative counters

0 commit comments

Comments
 (0)