@@ -333,6 +333,46 @@ ruleTester.run("accessor-pairs", rule, {
333333 languageOptions : { ecmaVersion : 6 } ,
334334 } ,
335335
336+ // wrong argument index (not in the property descriptor position)
337+ "Object.defineProperty({ set: function(value) {} }, 'foo', { value: 1 });" ,
338+ {
339+ code : "Reflect.defineProperty({ get() {} }, 'foo', { value: 1 });" ,
340+ options : [ { getWithoutSet : true } ] ,
341+ languageOptions : { ecmaVersion : 6 } ,
342+ } ,
343+ {
344+ code : "Object.defineProperties({ foo: { get() {} } }, { bar: { value: 1 } });" ,
345+ options : [ { getWithoutSet : true } ] ,
346+ } ,
347+ "Object.create({ foo: { set(value) {} } }, { bar: { value: 1 } });" ,
348+
349+ // global object is shadowed
350+ {
351+ code : "let Object; Object.defineProperty(foo, 'bar', { get() {} })" ,
352+ options : [ { getWithoutSet : true } ] ,
353+ } ,
354+ {
355+ code : "function f() { Reflect.defineProperty(foo, 'bar', { set(value) {} }); var Reflect;}" ,
356+ languageOptions : { ecmaVersion : 6 } ,
357+ } ,
358+ "function f(Object) { Object.defineProperties(foo, { bar: { set(value) {} } }) }" ,
359+ {
360+ code : "if (x) { const Object = getObject(); Object.create(foo, { bar: { get() {} } }) }" ,
361+ options : [ { getWithoutSet : true } ] ,
362+ } ,
363+
364+ // global object doesn't exist
365+ {
366+ code : "Reflect.defineProperty(foo, 'bar', { get() {} })" ,
367+ options : [ { getWithoutSet : true } ] ,
368+ languageOptions : { globals : { Reflect : "off" } } ,
369+ } ,
370+ "/* globals Object:off */ Object.defineProperty(foo, 'bar', { set(value) {} })" ,
371+ {
372+ code : "Object.defineProperties(foo, { bar: { set(value) {} } })" ,
373+ languageOptions : { globals : { Object : "off" } } ,
374+ } ,
375+
336376 //------------------------------------------------------------------------------
337377 // Classes
338378 //------------------------------------------------------------------------------
0 commit comments