@@ -140,6 +140,14 @@ const { readFileSync } = require('fs');
140140 assert . notStrictEqual ( payload , sourceMap . payload ) ;
141141 assert . strictEqual ( payload . sources [ 0 ] , sourceMap . payload . sources [ 0 ] ) ;
142142 assert . notStrictEqual ( payload . sources , sourceMap . payload . sources ) ;
143+ // The payload and its arrays should be frozen to avoid unnecessary cloning:
144+ assert ( Object . isFrozen ( sourceMap . payload ) ) ;
145+ assert ( Object . isFrozen ( sourceMap . payload . sources ) ) ;
146+ // The same frozen object is returned on each call:
147+ assert . strictEqual ( sourceMap . payload , sourceMap . payload ) ;
148+ // lineLengths should be frozen and return the same reference each call:
149+ assert ( Object . isFrozen ( sourceMap . lineLengths ) ) ;
150+ assert . strictEqual ( sourceMap . lineLengths , sourceMap . lineLengths ) ;
143151}
144152
145153// findEntry() and findOrigin() must return empty object instead of
@@ -178,6 +186,11 @@ const { readFileSync } = require('fs');
178186 assert . notStrictEqual ( payload , sourceMap . payload ) ;
179187 assert . strictEqual ( payload . sources [ 0 ] , sourceMap . payload . sources [ 0 ] ) ;
180188 assert . notStrictEqual ( payload . sources , sourceMap . payload . sources ) ;
189+ // The payload and its arrays should be frozen to avoid unnecessary cloning:
190+ assert ( Object . isFrozen ( sourceMap . payload ) ) ;
191+ assert ( Object . isFrozen ( sourceMap . payload . sources ) ) ;
192+ // The same frozen object is returned on each call:
193+ assert . strictEqual ( sourceMap . payload , sourceMap . payload ) ;
181194}
182195
183196// Test various known decodings to ensure decodeVLQ works correctly.
0 commit comments