Mirror: The spec-compliant minimum of client-side GraphQL.

fix: Remove for-of syntax from `values` helpers for JSC memory reduction (#33)

* Remove for-of from values helpers

* Add changeset

authored by kitten.sh and committed by GitHub 8af61259 c8986d51

Changed files
+12 -3
.changeset
src
+5
.changeset/nasty-cobras-repair.md
··· 1 + --- 2 + '@0no-co/graphql.web': patch 3 + --- 4 + 5 + Remove `for-of` syntax from `valueFromTypeNode` and `valueFromASTUntyped` helpers for JSC memory reduction.
+7 -3
src/values.ts
··· 18 18 return node.value; 19 19 case 'ListValue': { 20 20 const values: unknown[] = []; 21 - for (const value of node.values) values.push(valueFromASTUntyped(value, variables)); 21 + for (let i = 0, l = node.values.length; i < l; i++) 22 + values.push(valueFromASTUntyped(node.values[i], variables)); 22 23 return values; 23 24 } 24 25 case 'ObjectValue': { 25 26 const obj = Object.create(null); 26 - for (const field of node.fields) 27 + for (let i = 0, l = node.fields.length; i < l; i++) { 28 + const field = node.fields[i]; 27 29 obj[field.name.value] = valueFromASTUntyped(field.value, variables); 30 + } 28 31 return obj; 29 32 } 30 33 case 'Variable': ··· 47 50 } else if (type.kind === 'ListType') { 48 51 if (node.kind === 'ListValue') { 49 52 const values: unknown[] = []; 50 - for (const value of node.values) { 53 + for (let i = 0, l = node.values.length; i < l; i++) { 54 + const value = node.values[i]; 51 55 const coerced = valueFromTypeNode(value, type.type, variables); 52 56 if (coerced === undefined) { 53 57 return undefined;