Commit def2645
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
0 commit comments