diff --git a/HISTORY.md b/HISTORY.md
index 09624d6f..3bafb6c5 100755
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -45,6 +45,7 @@
* threads: terminate all threads waiting to display a question on ASKing a falsy value
* threads: clear "answer" on ASK nothing/falsy
* byob, blocks: export block definition from inside the block editor
+* objects: added "code" field to Costume constructor
### 2022-04-19
* threads: ASK nothing or a falsy value terminates the thread currently displaying a question
diff --git a/snap.html b/snap.html
index 38ce37b6..9f56ab0d 100755
--- a/snap.html
+++ b/snap.html
@@ -18,7 +18,7 @@
-
+
diff --git a/src/objects.js b/src/objects.js
index ab46dad7..03e30820 100644
--- a/src/objects.js
+++ b/src/objects.js
@@ -93,7 +93,7 @@ BlockVisibilityDialogMorph, CostumeIconMorph, SoundIconMorph, MenuItemMorph*/
/*jshint esversion: 6*/
-modules.objects = '2022-April-04';
+modules.objects = '2022-April-20';
var SpriteMorph;
var StageMorph;
@@ -10403,7 +10403,7 @@ SpriteBubbleMorph.prototype.fixLayout = function () {
/*
I am a picture that's "wearable" by a sprite. My rotationCenter is
- relative to my contents position.
+ relative to my contents position. I can also contain and share code.
*/
// Costume instance creation
@@ -10414,6 +10414,7 @@ function Costume(canvas, name, rotationCenter, noFit, maxExtent) {
if (!noFit) {this.shrinkToFit(maxExtent || this.maxExtent()); }
this.name = name || null;
this.rotationCenter = rotationCenter || this.center();
+ this.code = null;
this.version = Date.now(); // for observer optimization
this.loaded = null; // for de-serialization only
}