// Copyright (C) 2014 the V8 project authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- es6id: 14.5 description: > class name binding expression ---*/ var Cc; var Cm; var Cgx; var Csx; var Cv = class C { constructor() { assert.sameValue(C, Cv, "The value of `C` is `Cv`, inside `constructor()`"); Cc = C; } m() { assert.sameValue(C, Cv, "The value of `C` is `Cv`, inside `m()`"); Cm = C; } get x() { assert.sameValue(C, Cv, "The value of `C` is `Cv`, inside `get x()`"); Cgx = C; } set x(_) { assert.sameValue(C, Cv, "The value of `C` is `Cv`, inside `set x()`"); Csx = C; } }; new Cv(); assert.sameValue(Cc, Cv, "The value of `Cc` is `Cv`, after executing `new Cv();`"); new Cv().m(); assert.sameValue(Cm, Cv, "The value of `Cm` is `Cv`, after executing `new Cv().m();`"); new Cv().x; assert.sameValue(Cgx, Cv, "The value of `Cgx` is `Cv`, after executing `new Cv().x;`"); new Cv().x = 1; assert.sameValue(Csx, Cv, "The value of `Csx` is `Cv`, after executing `new Cv().x = 1;`"); reportCompare(0, 0);