42 lines
827 B
JavaScript
42 lines
827 B
JavaScript
|
|
var ClassExpr = class {
|
|
m() {
|
|
return ClassExpr;
|
|
}
|
|
}
|
|
|
|
var TempClass = ClassExpr;
|
|
ClassExpr = 42;
|
|
|
|
expect(42).toBe(new TempClass().m());
|
|
expect(TempClass.name).toBe('');
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
var ClassExpr2 = class ClassExprInner {
|
|
m() {
|
|
return ClassExprInner;
|
|
}
|
|
}
|
|
|
|
TempClass = ClassExpr2;
|
|
ClassExpr2 = 42;
|
|
|
|
expect(TempClass).toBe(new TempClass().m());
|
|
expect(TempClass.name).toBe('ClassExprInner');
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
class ClassDef {
|
|
m() {
|
|
return ClassDef;
|
|
}
|
|
}
|
|
|
|
var TempClass = ClassDef;
|
|
ClassDef = 42;
|
|
|
|
expect(TempClass).toBe(new TempClass().m());
|
|
// IE does not have a name property on functions.
|
|
expect(TempClass.name === 'ClassDef' || TempClass.name === undefined).toBe(true);
|