@@ -275,10 +275,11 @@ test('records', t => {
275
275
// const emptyData = { body: JSON.stringify({}), slots: [] };
276
276
277
277
// For objects with Symbol-named properties
278
- const sym1 = Symbol . for ( 'sym1' ) ;
279
- const sym2 = Symbol . for ( 'sym2' ) ;
280
- const sym3 = Symbol . for ( 'sym3' ) ;
281
- const sym4 = Symbol . for ( 'sym4' ) ;
278
+ const symEnumData = Symbol . for ( 'symEnumData' ) ;
279
+ const symEnumFunc = Symbol . for ( 'symEnumFunc' ) ;
280
+ const symNonenumData = Symbol . for ( 'symNonenumData' ) ;
281
+ const symNonenumFunc = Symbol . for ( 'symNonenumFunc' ) ;
282
+ const symNonenumGetFunc = Symbol . for ( 'symNonenumGetFunc' ) ;
282
283
283
284
function build ( ...opts ) {
284
285
const props = { } ;
@@ -287,21 +288,27 @@ test('records', t => {
287
288
if ( opt === 'enumStringData' ) {
288
289
props . key1 = { enumerable : true , value : 'data' } ;
289
290
} else if ( opt === 'enumStringFunc' ) {
290
- props . key2 = { enumerable : true , value : ( ) => 0 } ;
291
- } else if ( opt === 'enumStringGet' ) {
292
- props . key3 = { enumerable : true , get : ( ) => 0 } ;
291
+ props . enumStringFunc = { enumerable : true , value : ( ) => 0 } ;
292
+ } else if ( opt === 'enumStringGetData' ) {
293
+ props . enumStringGetData = { enumerable : true , get : ( ) => 0 } ;
294
+ } else if ( opt === 'enumStringGetFunc' ) {
295
+ props . enumStringGetFunc = { enumerable : true , get : ( ) => ( ) => 0 } ;
296
+ } else if ( opt === 'enumStringSet' ) {
297
+ props . enumStringSet = { enumerable : true , set : ( ) => undefined } ;
293
298
} else if ( opt === 'enumSymbolData' ) {
294
- props [ sym1 ] = { enumerable : true , value : 2 } ;
299
+ props [ symEnumData ] = { enumerable : true , value : 2 } ;
295
300
} else if ( opt === 'enumSymbolFunc' ) {
296
- props [ sym2 ] = { enumerable : true , value : ( ) => 0 } ;
301
+ props [ symEnumFunc ] = { enumerable : true , value : ( ) => 0 } ;
297
302
} else if ( opt === 'nonenumStringData' ) {
298
- props . key4 = { enumerable : false , value : 3 } ;
303
+ props . nonEnumStringData = { enumerable : false , value : 3 } ;
299
304
} else if ( opt === 'nonenumStringFunc' ) {
300
- props . key5 = { enumerable : false , value : ( ) => 0 } ;
305
+ props . nonEnumStringFunc = { enumerable : false , value : ( ) => 0 } ;
301
306
} else if ( opt === 'nonenumSymbolData' ) {
302
- props [ sym3 ] = { enumerable : false , value : 4 } ;
307
+ props [ symNonenumData ] = { enumerable : false , value : 4 } ;
303
308
} else if ( opt === 'nonenumSymbolFunc' ) {
304
- props [ sym4 ] = { enumerable : false , value : ( ) => 0 } ;
309
+ props [ symNonenumFunc ] = { enumerable : false , value : ( ) => 0 } ;
310
+ } else if ( opt === 'nonenumSymbolGetFunc' ) {
311
+ props [ symNonenumGetFunc ] = { enumerable : false , get : ( ) => ( ) => 0 } ;
305
312
} else if ( opt === 'data' ) {
306
313
mark = 'data' ;
307
314
} else if ( opt === 'far' ) {
@@ -389,9 +396,18 @@ test('records', t => {
389
396
shouldThrow ( [ 'far' , 'enumStringData' , 'enumStringFunc' ] , CSO ) ;
390
397
391
398
// anything with getters is rejected
392
- shouldThrow ( [ 'enumStringGet' ] , NOACC ) ;
393
- shouldThrow ( [ 'enumStringGet' , 'enumStringData' ] , NOACC ) ;
394
- shouldThrow ( [ 'enumStringGet' , 'enumStringFunc' ] , CSO ) ;
399
+ shouldThrow ( [ 'enumStringGetData' ] , NOACC ) ;
400
+ shouldThrow ( [ 'enumStringGetData' , 'enumStringData' ] , NOACC ) ;
401
+ shouldThrow ( [ 'enumStringGetData' , 'enumStringFunc' ] , CSO ) ;
402
+ shouldThrow ( [ 'enumStringGetFunc' ] , NOACC ) ;
403
+ shouldThrow ( [ 'enumStringGetFunc' , 'enumStringData' ] , NOACC ) ;
404
+ shouldThrow ( [ 'enumStringGetFunc' , 'enumStringFunc' ] , CSO ) ;
405
+ shouldThrow ( [ 'enumStringSet' ] , NOACC ) ;
406
+ shouldThrow ( [ 'enumStringSet' , 'enumStringData' ] , NOACC ) ;
407
+ shouldThrow ( [ 'enumStringSet' , 'enumStringFunc' ] , CSO ) ;
408
+ shouldThrow ( [ 'nonenumSymbolGetFunc' ] , CSO ) ;
409
+ shouldThrow ( [ 'nonenumSymbolGetFunc' , 'enumStringData' ] , CSO ) ;
410
+ shouldThrow ( [ 'nonenumSymbolGetFunc' , 'enumStringFunc' ] , CSO ) ;
395
411
396
412
// anything with symbols can only be a remotable
397
413
shouldThrow ( [ 'enumSymbolData' ] , NOMETH ) ;
0 commit comments