v0.38.3 - FlameWright safety and documentation improvements (2026-03-23)¶
What Changed?¶
This release improves the internal safety and documentation of the FlameWright module (src/v2/flame.ts).
It replaces for...in loops with Object.keys() to avoid prototype chain pollution, and adds inline comments and @remarks to clarify GAS-specific design decisions around instanceof.
No public API changes; fully backward compatible.
What's New¶
Main Feature: FlameWright internal safety improvements¶
What it does:
Prevents prototype chain enumeration in schema validation methods, and documents why instanceof is avoided (or requires caution) in GAS environments.
How to use it: No changes required. Existing code continues to work as before.
Added¶
@remarksonFlameWright.instanceOfwarning aboutinstanceofunreliability across GAS script boundaries- Inline comment on
FlameGuards.isValidDateexplaining whyObject.prototype.toStringis used instead ofinstanceof @internaltag onbuildMessage(private helper, not part of public API)@group/@categorytags on allFlameWrightmethods for consistent TypeDoc output
Changed¶
FlameWright.fromSchema,FlameWright.partial,explain: replacedfor...inwithObject.keys()to avoid iterating inherited properties
Fixed¶
- (none)
Is It Safe to Upgrade?¶
- Breaking Changes: No
- Backward Compatible: Yes
All changes are internal. No public API, behavior, or output is affected.
Release Details¶
- Date: 2026-03-23
- Version: v0.38.3
- gaslamp: clasp version 84
- pilotlamp: clasp version 41
- Files Changed: 1 (
src/v2/flame.ts) - Commits:
584d6a6refactor(v2): replace for...in with Object.keys() in fromSchema, partial, and explain33b6739docs(v2): add @remarks warning about instanceof GAS boundary risk in FlameWright.instanceOffa411dbdocs(v2): add comment explaining why instanceof is avoided in isValidDate343173cdocs(v2): add @internal to buildMessage and @group/@category to FlameWright methods
Known Issues¶
FlameWright.instanceOfusesinstanceofand may fail across GAS script boundaries. Use duck-type guards (FlameGaslets) orFlameGuards.isValidDatefor GAS built-in types instead.
Next Steps¶
- Continue FlameWright / flame.ts review