diff --git a/core/field_dropdown.ts b/core/field_dropdown.ts index 7c86653b3..cff223045 100644 --- a/core/field_dropdown.ts +++ b/core/field_dropdown.ts @@ -125,6 +125,8 @@ export class FieldDropdown extends Field { if (Array.isArray(menuGenerator)) { validateOptions(menuGenerator); + // Deep copy the option structure so it doesn't change. + menuGenerator = JSON.parse(JSON.stringify(menuGenerator)); } /** diff --git a/tests/mocha/json_test.js b/tests/mocha/json_test.js index 383b49130..a0905c576 100644 --- a/tests/mocha/json_test.js +++ b/tests/mocha/json_test.js @@ -275,7 +275,7 @@ suite('JSON Block Definitions', function() { const image1 = options[1][0]; assertImageEquals(IMAGE1, image1); - chai.assert.equal(IMAGE1.alt, IMAGE1_ALT_TEXT); // Via Msg reference + chai.assert.equal(image1.alt, IMAGE1_ALT_TEXT); // Via Msg reference chai.assert.equal(VALUE1, options[1][1]); const image2 = options[2][0];