42 lines
828 B
JavaScript
42 lines
828 B
JavaScript
|
|
var ClassExpr = class {
|
|
m() {
|
|
return ClassExpr;
|
|
}
|
|
}
|
|
|
|
var TempClass = ClassExpr;
|
|
ClassExpr = 42;
|
|
|
|
assert.equal(42, new TempClass().m());
|
|
assert.equal(TempClass.name, '');
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
var ClassExpr2 = class ClassExprInner {
|
|
m() {
|
|
return ClassExprInner;
|
|
}
|
|
}
|
|
|
|
TempClass = ClassExpr2;
|
|
ClassExpr2 = 42;
|
|
|
|
assert.equal(TempClass, new TempClass().m());
|
|
assert.equal(TempClass.name, 'ClassExprInner');
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
class ClassDef {
|
|
m() {
|
|
return ClassDef;
|
|
}
|
|
}
|
|
|
|
var TempClass = ClassDef;
|
|
ClassDef = 42;
|
|
|
|
assert.equal(TempClass, new TempClass().m());
|
|
// IE does not have a name property on functions.
|
|
assert.isTrue(TempClass.name === 'ClassDef' || TempClass.name === undefined);
|