@@ -436,4 +436,31 @@ describe('convenience api wrapper', function() {
436436 objPointer . get ( immutable ( [ 'oo-style' ] ) ) . should . equal ( 'bla' ) ;
437437 objPointer . get ( immutable ( [ 'example' , '0' ] ) ) . should . equal ( 'bla2' ) ;
438438 } ) ;
439+
440+ it ( 'should not set __proto__' , function ( ) {
441+ var obj = { } , objPointer = pointer ( obj ) ;
442+ expect ( obj . polluted ) . to . be . undefined ( ) ;
443+ objPointer . set ( '/__proto__/polluted' , true ) ;
444+ expect ( obj . polluted ) . to . be . undefined ( ) ;
445+ var obj2 = { } ;
446+ expect ( obj2 . polluted ) . to . be . undefined ( ) ;
447+ } ) ;
448+
449+ it ( 'should not set prototype' , function ( ) {
450+ var obj = { } , objPointer = pointer ( obj ) ;
451+ expect ( obj . polluted ) . to . be . undefined ( ) ;
452+ objPointer . set ( '/prototype/polluted' , true ) ;
453+ expect ( obj . polluted ) . to . be . undefined ( ) ;
454+ var obj2 = { } ;
455+ expect ( obj2 . polluted ) . to . be . undefined ( ) ;
456+ } ) ;
457+
458+ it ( 'should not set constructor' , function ( ) {
459+ var obj = { } , objPointer = pointer ( obj ) ;
460+ expect ( obj . polluted ) . to . be . undefined ( ) ;
461+ objPointer . set ( '/constructor/prototype/polluted' , true ) ;
462+ expect ( obj . polluted ) . to . be . undefined ( ) ;
463+ var obj2 = { } ;
464+ expect ( obj2 . polluted ) . to . be . undefined ( ) ;
465+ } ) ;
439466} ) ;
0 commit comments