File tree Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -243,7 +243,7 @@ function get_name(num) {
243
243
num = ~ ~ ( num / chars . length ) - 1 ;
244
244
} while ( num >= 0 ) ;
245
245
246
- return reserved . test ( name ) ? `${ name } _ ` : name ;
246
+ return reserved . test ( name ) ? `${ name } 0 ` : name ;
247
247
}
248
248
249
249
/** @param {any } thing */
Original file line number Diff line number Diff line change @@ -45,6 +45,22 @@ function throws(name, fn) {
45
45
}
46
46
}
47
47
48
+ /**
49
+ *
50
+ * @param {string } name
51
+ * @param {(...args: any[]) => void } fn
52
+ */
53
+ function allows ( name , fn ) {
54
+ try {
55
+ fn ( ) ;
56
+ console . log ( `✅ ${ name } ` ) ;
57
+ passed += 1 ;
58
+ } catch ( e ) {
59
+ console . log ( `❌ ${ name } (${ e . message } )` ) ;
60
+ failed += 1 ;
61
+ }
62
+ }
63
+
48
64
describe ( 'basics' , ( t ) => {
49
65
t ( 'number' , 42 , '42' ) ;
50
66
t ( 'negative number' , - 42 , '-42' ) ;
@@ -173,6 +189,14 @@ describe('misc', (t) => {
173
189
throws ( 'throws for symbolic keys' , ( ) => {
174
190
devalue ( { [ Symbol ( ) ] : null } ) ;
175
191
} ) ;
192
+
193
+ allows ( 'does not create duplicate parameter names' , ( ) => {
194
+ const foo = new Array ( 20000 ) . fill ( 0 ) . map ( ( _ , i ) => i ) ;
195
+ const bar = foo . map ( ( _ , i ) => ( { [ i ] : foo [ i ] } ) ) ;
196
+ const serialized = devalue ( [ foo , ...bar ] ) ;
197
+
198
+ eval ( serialized ) ;
199
+ } ) ;
176
200
} ) ;
177
201
178
202
console . log ( `\n---\n${ passed } passed, ${ failed } failed\n` ) ;
You can’t perform that action at this time.
0 commit comments