@@ -3,6 +3,7 @@ var t = require('tap')
3
3
4
4
var data = `
5
5
__proto__ = quux
6
+ constructor.prototype.foo = asdfasdf
6
7
foo = baz
7
8
[__proto__]
8
9
foo = bar
@@ -15,27 +16,39 @@ hello = snyk
15
16
__proto__[] = you did a good job
16
17
__proto__[] = so you deserve arrays
17
18
thanks = true
19
+ [ctor.constructor.prototype]
20
+ foo = asdfasdf
18
21
`
22
+
19
23
var res = ini . parse ( data )
20
- t . deepEqual ( res , {
24
+
25
+ t . deepEqual ( res , Object . assign ( Object . create ( null ) , {
26
+ 'constructor.prototype.foo' : 'asdfasdf' ,
21
27
foo : 'baz' ,
22
- other : {
28
+ other : Object . assign ( Object . create ( null ) , {
23
29
foo : 'asdf' ,
24
- } ,
25
- kid : {
26
- foo : {
30
+ } ) ,
31
+ kid : Object . assign ( Object . create ( null ) , {
32
+ foo : Object . assign ( Object . create ( null ) , {
27
33
foo : 'kid' ,
28
- } ,
29
- } ,
30
- arrproto : {
34
+ } ) ,
35
+ } ) ,
36
+ arrproto : Object . assign ( Object . create ( null ) , {
31
37
hello : 'snyk' ,
32
38
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 )
39
52
t . equal ( Object . prototype . foo , undefined )
40
53
t . equal ( Object . prototype [ 0 ] , undefined )
41
54
t . equal ( Object . prototype [ '0' ] , undefined )
0 commit comments