928
1、匹配对象。如果有省略号,对象可以有更多的属性。
2、只检测自己的属性(Object.keys),忽略原型中的属性。对象语法支持特殊识别属性,快速属性,属性不支持尾逗号。
实例
test("valueobject",()=>{ letinput='{' lety=match(input) letv=y({) letw=y({x:0) expect(v).toEqual(true) expect(w).toEqual(false) ) test("objectELLIPSIS",()=>{ letinput='{...' lety=match(input) letv=y({) letw=y({x:0) letp=y([]) expect(v).toEqual(true) expect(w).toEqual(true) expect(p).toEqual(false) ) test("objectproperties",()=>{ letinput='{x' lety=match(input) letv=y({x:0) letw=y([null,1]) expect(v).toEqual(true) expect(w).toEqual(false) ) test("objectpropertiesELLIPSIS",()=>{ letinput='{x,...' lety=match(input) letv=y({x:0,y:1) letw=y({) expect(v).toEqual(true) expect(w).toEqual(false) ) test("propertiespropertiesprop",()=>{ letinput='{x,y' lety=match(input) letv=y({x:0,y:1) letw=y({) expect(v).toEqual(true) expect(w).toEqual(false) ) test("propkeyvalue",()=>{ letinput='{x:null' lety=match(input) letv=y({x:null) letw=y([null,1]) expect(v).toEqual(true) expect(w).toEqual(false) ) test("keyQUOTE",()=>{ letinput='{"1":null' lety=match(input) letv=y({'1':null) letw=y([null,1]) expect(v).toEqual(true) expect(w).toEqual(false) )