@opencode/codemode 0.0.0-dev-19967 → 0.0.0-dev-19968

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -965,7 +965,7 @@ class Frame {
965
965
  }
966
966
  const keyNode = property.key;
967
967
  if (property.computed) {
968
- return Effect.map(this.evaluateExpression(keyNode), (value) => this.toPropertyKey(value, keyNode));
968
+ return Effect.map(this.evaluateExpression(keyNode), (value) => this.toPropertyKey(value));
969
969
  }
970
970
  if (keyNode.type === "Identifier")
971
971
  return Effect.succeed(keyNode.name);
@@ -1604,13 +1604,13 @@ class Frame {
1604
1604
  const keyNode = property.key;
1605
1605
  let key;
1606
1606
  if (property.computed) {
1607
- key = self.toPropertyKey(yield* self.evaluateExpression(keyNode), keyNode);
1607
+ key = self.toPropertyKey(yield* self.evaluateExpression(keyNode));
1608
1608
  }
1609
1609
  else if (keyNode.type === "Identifier") {
1610
1610
  key = keyNode.name;
1611
1611
  }
1612
1612
  else if (keyNode.type === "Literal") {
1613
- key = self.toPropertyKey(literal(keyNode), keyNode);
1613
+ key = self.toPropertyKey(literal(keyNode));
1614
1614
  }
1615
1615
  else {
1616
1616
  throw typeError("Unsupported object property key shape.", keyNode);
@@ -1701,10 +1701,10 @@ class Frame {
1701
1701
  if ((objectValue === null || objectValue === undefined) && node.optional)
1702
1702
  return OptionalShortCircuit;
1703
1703
  const key = node.computed
1704
- ? self.toPropertyKey(yield* self.evaluateExpression(propertyNode), propertyNode)
1704
+ ? self.toPropertyKey(yield* self.evaluateExpression(propertyNode))
1705
1705
  : propertyNode.type === "Identifier"
1706
1706
  ? propertyNode.name
1707
- : self.toPropertyKey(yield* self.evaluateExpression(propertyNode), propertyNode);
1707
+ : self.toPropertyKey(yield* self.evaluateExpression(propertyNode));
1708
1708
  if (objectValue instanceof ToolReference) {
1709
1709
  if (typeof key !== "string") {
1710
1710
  throw typeError("Tool paths must use string property names.", propertyNode);
@@ -1812,12 +1812,10 @@ class Frame {
1812
1812
  throw rangeError("Invalid array length", node);
1813
1813
  throw typeError(`Cannot assign to read only property '${String(key)}'.`, node);
1814
1814
  }
1815
- toPropertyKey(value, node) {
1816
- if (typeof value === "string" || typeof value === "number") {
1815
+ // ToPropertyKey: anything else becomes its string form, so `counts[row.category]` works when the field is null.
1816
+ toPropertyKey(value) {
1817
+ if (typeof value === "string" || typeof value === "number" || typeof value === "symbol")
1817
1818
  return value;
1818
- }
1819
- if (value === AsyncIteratorSymbol || value === IteratorSymbol)
1820
- return value;
1821
- throw typeError("Property key must be a string or number, or Symbol.asyncIterator/Symbol.iterator.", node);
1819
+ return coerceToString(value);
1822
1820
  }
1823
1821
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/package.json",
3
3
  "name": "@opencode/codemode",
4
- "version": "0.0.0-dev-19967",
4
+ "version": "0.0.0-dev-19968",
5
5
  "description": "Effect-native confined code execution over schema-described tools",
6
6
  "type": "module",
7
7
  "license": "MIT",