8048079: Persistent code store is broken after optimistic types merge
Reviewed-by: sundar, jlaskey, attila
f: this=[object global], a=undefined, b=undefined
v: this=[object global], a=undefined, b=undefined, c=undefined
f: this=boundThis, a=undefined, b=undefined
v: this=boundThis, a=undefined, b=undefined, c=undefined
f: this=boundThis, a=a0, b=undefined
v: this=boundThis, a=a1, b=undefined, c=undefined
f: this=boundThis, a=a2, b=undefined
v: this=boundThis, a=a3, b=undefined, c=undefined
f: this=boundThis, a=a4, b=b4
v: this=boundThis, a=a5, b=b5, c=undefined
f: this=boundThis, a=a6, b=b6
v: this=boundThis, a=a7, b=b7, c=undefined
f: this=boundThis, a=a8, b=b8
v: this=boundThis, a=a9, b=b9, c=c9
f: this=boundThis, a=a10, b=b10
v: this=boundThis, a=a11, b=b11, c=c11
Test constructors
f: this=[object Object], a=undefined, b=undefined
v: this=[object Object], a=undefined, b=undefined, c=undefined
f: this=[object Object], a=a0, b=undefined
v: this=[object Object], a=a1, b=undefined, c=undefined
f: this=[object Object], a=a2, b=undefined
v: this=[object Object], a=a3, b=undefined, c=undefined
f: this=[object Object], a=a4, b=b4
v: this=[object Object], a=a5, b=b5, c=undefined
f: this=[object Object], a=a6, b=b6
v: this=[object Object], a=a7, b=b7, c=undefined
f: this=[object Object], a=a8, b=b8
v: this=[object Object], a=a9, b=b9, c=c9
f: this=[object Object], a=a10, b=b10
v: this=[object Object], a=a11, b=b11, c=c11
Test double binding
f: this=boundThis, a=undefined, b=undefined
f: this=[object Object], a=undefined, b=undefined
f: this=[object Object], a=a12, b=undefined
v: this=boundThis, a=undefined, b=undefined, c=undefined
v: this=[object Object], a=undefined, b=undefined, c=undefined
v: this=[object Object], a=a13, b=undefined, c=undefined