Skip to content

Commit def2645

Browse files
DogeisCutDicuo
andauthored
Objects: Complete Rewrite (#507)
* Prepare for rewrite * Objects Rewrite: Start on Map conversion * Improve dogeiscutObject parsing and builder API Refactor dogeiscutObject to better handle plain objects, arrays and builder state. Add a temporary jwArray stub and ObjectType.forObject/toObject improvements (including handling empty/null strings and plain objects). Change constructor to accept plain object maps, fix toJSON/toString behavior, and add a compact toReporterContent DOM view. Implement ObjectType.fromEntries, adjust get/set to wrap/unwrap values via forObject, and update entries to return jwArray-friendly pairs. Introduce a thread._dogeiscutObjectBuilderIndex stack for builder/compile-time operations and update the compiler source generation for object builders. Also tweak the 'is' opcode to validate JSON objects and mark a deprecated block hidden from the palette. * RGHHHHHHHHAAAAAAAA IT SSLOWER THAN WHEN I STARTED * Add setPath/merge and refactor dogeiscutObject Implement setPath and merge on the object type and improve getPath normalization. Refactor JS-generation for object forEach in the compiler, adjust runtime forEach helpers (default key now empty string), and tidy up formatting/style across static/extensions/DogeisCut/dogeiscutObject.js (consistency fixes, minor string/whitespace adjustments). * Objects Rewrite: Serializer and Merge fix * today we compile... FOR SPEED!!!!! * make all blocks compiled * todos * Add tableDisplay ya * patching still no worky on monitors :( * blank object display fixes * Fix jwArray tableDisplay method patching Replace conditional prototype assignments with functions that check feature flags internally and add explanatory comments. Previously the code only assigned jwArray.Type.prototype.toMonitorContent/toReporterContent when flags were true; now the methods are defined consistently but return tableDisplay only if the corresponding dogeiscutObject.tableDisplay flags are enabled. Added a note explaining that arrow-function-style class methods become instance properties (preventing prototype patching) and linked the relevant jwArray implementation line. * Finished Rewrite! Prepare for testing. * oops forgot to limit amount of things in display * remove warning comments * ehh * half implement block switches * Add Iterator support to Objects rewrite * remove debug line * add warning comment * fix some block switches would like to add more but the api REALLY doesnt like the array/object inputs * new block and fix regex ext * let compiler know that's a number * centering without messing up linebreaks * port consistent null display * Update dogeiscutObject.js * fix serializer --------- Co-authored-by: Div <80525399+Dicuo@users.noreply.github.com>
1 parent f7c6fa3 commit def2645

2 files changed

Lines changed: 906 additions & 487 deletions

File tree

0 commit comments

Comments
 (0)