@@ -3,6 +3,7 @@ var t = require('tap')
33
44var data = `
55__proto__ = quux
6+ constructor.prototype.foo = asdfasdf
67foo = baz
78[__proto__]
89foo = bar
@@ -15,27 +16,39 @@ hello = snyk
1516__proto__[] = you did a good job
1617__proto__[] = so you deserve arrays
1718thanks = true
19+ [ctor.constructor.prototype]
20+ foo = asdfasdf
1821`
22+
1923var res = ini . parse ( data )
20- t . deepEqual ( res , {
24+
25+ t . deepEqual ( res , Object . assign ( Object . create ( null ) , {
26+ 'constructor.prototype.foo' : 'asdfasdf' ,
2127 foo : 'baz' ,
22- other : {
28+ other : Object . assign ( Object . create ( null ) , {
2329 foo : 'asdf' ,
24- } ,
25- kid : {
26- foo : {
30+ } ) ,
31+ kid : Object . assign ( Object . create ( null ) , {
32+ foo : Object . assign ( Object . create ( null ) , {
2733 foo : 'kid' ,
28- } ,
29- } ,
30- arrproto : {
34+ } ) ,
35+ } ) ,
36+ arrproto : Object . assign ( Object . create ( null ) , {
3137 hello : 'snyk' ,
3238 thanks : true ,
33- } ,
34- } )
35- t . equal ( res . __proto__ , Object . prototype )
36- t . equal ( res . kid . __proto__ , Object . prototype )
37- t . equal ( res . kid . foo . __proto__ , Object . prototype )
38- t . equal ( res . arrproto . __proto__ , Object . prototype )
39+ } ) ,
40+ ctor : Object . assign ( Object . create ( null ) , {
41+ constructor : Object . assign ( Object . create ( null ) , {
42+ prototype : Object . assign ( Object . create ( null ) , {
43+ foo : 'asdfasdf' ,
44+ } ) ,
45+ } ) ,
46+ } ) ,
47+ } ) )
48+ t . equal ( res . __proto__ , undefined )
49+ t . equal ( res . kid . __proto__ , undefined )
50+ t . equal ( res . kid . foo . __proto__ , undefined )
51+ t . equal ( res . arrproto . __proto__ , undefined )
3952t . equal ( Object . prototype . foo , undefined )
4053t . equal ( Object . prototype [ 0 ] , undefined )
4154t . equal ( Object . prototype [ '0' ] , undefined )
0 commit comments