diff --git a/Jint/Native/Function/ClassDefinition.cs b/Jint/Native/Function/ClassDefinition.cs index 96459c927d..0bba3d8d99 100644 --- a/Jint/Native/Function/ClassDefinition.cs +++ b/Jint/Native/Function/ClassDefinition.cs @@ -40,9 +40,21 @@ static MethodDefinition CreateConstructorMethodDefinition(string source) public ClassDefinition(IClass jsClass) { _className = jsClass.Id?.Name; + _classSource = jsClass.ToString(); _superClass = jsClass.SuperClass; _body = jsClass.Body; - _classSource = jsClass.ToString(); + } + + public ClassDefinition( + string? className, + string? classSource, + Expression? superClass, + ClassBody body) + { + _className = className; + _classSource = classSource; + _superClass = superClass; + _body = body; } /// diff --git a/Jint/Runtime/Interpreter/Statements/JintExportDefaultDeclaration.cs b/Jint/Runtime/Interpreter/Statements/JintExportDefaultDeclaration.cs index 63aba02337..d5d0a3e05a 100644 --- a/Jint/Runtime/Interpreter/Statements/JintExportDefaultDeclaration.cs +++ b/Jint/Runtime/Interpreter/Statements/JintExportDefaultDeclaration.cs @@ -21,7 +21,7 @@ protected override void Initialize(EvaluationContext context) { if (_statement.Declaration is ClassDeclaration classDeclaration) { - _classDefinition = new ClassDefinition(classDeclaration); + _classDefinition = new ClassDefinition(classDeclaration.Id?.Name ?? "default", classDeclaration.ToString(), classDeclaration.SuperClass, classDeclaration.Body); } else if (_statement.Declaration is FunctionDeclaration functionDeclaration) {