Skip to content

Conversation

@DogeisCut
Copy link
Collaborator

@DogeisCut DogeisCut commented Feb 11, 2026

Changes

  • is faster
  • everything is compiled
  • uses maps instead of objects
  • like 2 new blocks
  • hides deprecated block
  • way less buggy
  • table display works with arrays properly
  • cleaner code that doesnt make me cry when i go to edit it
  • lots of other small cool stuff

Images

image image image

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.
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).
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.
Prepare for testing.
@the-can-of-soup
Copy link

the-can-of-soup commented Feb 11, 2026

yk draft prs are a thing right
no need to scream "DON'T MERGE THIS EVEN THOUGH IT'S AN OPEN REQUEST TO BE MERGED"

@DogeisCut DogeisCut marked this pull request as draft February 11, 2026 07:40
@DogeisCut DogeisCut marked this pull request as ready for review February 11, 2026 11:39
@DogeisCut
Copy link
Collaborator Author

oops

@DogeisCut DogeisCut marked this pull request as draft February 11, 2026 11:40
@DogeisCut
Copy link
Collaborator Author

how do i add reviewers

@DogeisCut DogeisCut marked this pull request as ready for review February 11, 2026 18:16
@DogeisCut
Copy link
Collaborator Author

DogeisCut commented Feb 11, 2026

Opening the PR from a draft because nobody has found any bugs with it so far and it's fairly ready to be merged. (Would be nice If I could add some more block switches but the block switching API hates object/array inputs and errors out... I cant get a block with an array input to switch to/from another block with no array input)

@DogeisCut
Copy link
Collaborator Author

@jwklong @RedMan13 and @SharkPool-SP if you guys could take a look that'd be awesome

@DogeisCut
Copy link
Collaborator Author

DogeisCut commented Feb 11, 2026

make sure to merge this other pr after merging this rewrite: #508

@JeremyGamer13
Copy link
Member

it seems like objects set into variables from the old version are broken in the new version

old:
image
image

new:
image
image

project file in discord: https://discord.com/channels/1033551490331197462/1243430348499451976/1471269738607808756

everything else seems fine

@JeremyGamer13 JeremyGamer13 added extension update This updates an already existing extension rework This is a rework of an extension entirely labels Feb 11, 2026
@DogeisCut
Copy link
Collaborator Author

it seems like objects set into variables from the old version are broken in the new version

old: image image

new: image image

project file in discord: https://discord.com/channels/1033551490331197462/1243430348499451976/1471269738607808756

everything else seems fine

fixed

@DogeisCut DogeisCut merged commit def2645 into PenguinMod:main Feb 11, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

extension update This updates an already existing extension rework This is a rework of an extension entirely

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants