text: new function(){
  
  var a, get, set, e = "e", f = "f", h, i, bn = parseInt(1010, 2), x = 100, y = null, z
  
  this.value = 2
  
  var obj = {
  	.1: 0.1,
  	"string": "stirng",
  	a,
  	b: arguments[1],
  	c(){
  
  	},
  	d(x, y = 100, ...z){
  		return x + y + z[1]
  	},
  	[(e + "").toString()]: e,
  	[f](){
  
  	},
  	["g"](x, y = 100, ...z){
  		return x + y + z[1]
  	},
  	get,
  	set,
  	get: "get",
  	set: "set",
  	get h(){
  		return h
  	},
  	set h(value){
  		h = value + 1
  	},
  	get ["i"](){
  		return i
  	},
  	set ["i"](value = 88){
  		i = value + 2
  	},
  	get 0b1010(){
  		return bn
  	},
  	set 0b1010(value){
  		bn = value
  	},
  	get 0O1010(){
  		return 0O1010
  	},
  	0b11: "0b11",
  	*get8888(){
  		return 8888
  	},
  	x = 1,
  	y = this.value,
  	z = 3
  }
  
  var names = [
  	"0.1",
  	"string",
  	"a",
  	"b",
  	"c",
  	"d",
  	"e",
  	"f",
  	"g",
  	"h",
  	"i",
  	"get",
  	"set",
  	parseInt(1010, 2),
  	parseInt(1010, 8),
  	parseInt(11, 2),
  	"get8888",
  	"x",
  	"y",
  	"z"
  ]
  
  if(
  	Object.getOwnPropertyNames(obj).sort().join("") !== names.sort().join("")
  ){
  	throw "没有正确解析出对象的每一个项"
  }
  
  if(
  	obj.d(1, void 0, 2, 3) !== 104
  ){
  	throw "d方法运算结果有误"
  }
  
  if(
  	obj.g(1, void 0, 2, 3) !== 104
  ){
  	throw "g方法运算结果有误"
  }
  
  obj.h = 999
  
  if(
  	obj.h !== 1000
  ){
  	throw "h值获取错误:" + h
  }
  
  obj.i = void 0
  
  if(
  	obj.i !== 90
  ){
  	throw "i值获取错误:" + i
  }
  
  if(
  	obj[parseInt(1010, 2)] !== parseInt(1010, 2)
  ){
  	throw "二进制属性获取有误"
  }
  
  obj[parseInt(1010, 2)] = 1000
  
  if(
  	bn !== 1000
  ){
  	throw "二进制属性设置失效"
  }
  
  if(
  	!obj.hasOwnProperty(parseInt(11, 2))
  ){
  	throw "没有指定二进制属性"
  }
  
  if(
  	obj[parseInt(1010, 8)] !== parseInt(1010, 8)
  ){
  	throw "八进制属性有误"
  }
  
  if(
  	typeof obj["get8888"] !== "function"
  ){
  	throw "带访问器的属性名解析不正确"
  }
  
  if(
  	obj["get8888"]().next().value !== 8888
  ){
  	throw "带访问器的属性返回值不正确"
  }
  
  if(obj.x !== 100){
  	throw "对象默认值设置失败 - 带具体值"
  }
  
  if(obj.y !== null){
  	throw "对象默认值设置失败 - null"
  }
  
  if(obj.z !== 3){
  	throw "对象默认值设置失败 - undefined"
  }
  
  if({ z = 99 }.z !== 99){
  	throw "最简单的默认值设置失败"
  }
  
  }(1,2,3);