From 759c093ee2a18a2e88834d7233f9020bbbafc019 Mon Sep 17 00:00:00 2001 From: hufeng Date: Tue, 9 Aug 2022 22:16:57 +0800 Subject: [PATCH] Fix test262 failed testcase caused by commonjsRecord ISSUE:https://gitee.com/openharmony/arkcompiler_ets_frontend/issues/I5LIR5 Signed-off-by: hufeng Change-Id: I055ba98b0a1c2572311b1cc8430b4ad3ba14ec6f --- es2panda/compiler/core/emitter/commonjs.cpp | 4 ++-- es2panda/compiler/core/emitter/emitter.cpp | 4 +++- es2panda/compiler/core/emitter/emitter.h | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/es2panda/compiler/core/emitter/commonjs.cpp b/es2panda/compiler/core/emitter/commonjs.cpp index d9b7c319df8..a623269fa60 100644 --- a/es2panda/compiler/core/emitter/commonjs.cpp +++ b/es2panda/compiler/core/emitter/commonjs.cpp @@ -20,7 +20,7 @@ namespace panda::es2panda::compiler { constexpr const auto LANG_EXT = panda::pandasm::extensions::Language::ECMASCRIPT; -void Emitter::GenCommonjsRecord(bool isCommonjs) +void Emitter::GenCommonjsRecord() { auto commonjsRecord = panda::pandasm::Record("_CommonJsRecord", LANG_EXT); commonjsRecord.metadata->SetAccessFlags(panda::ACC_PUBLIC); @@ -28,7 +28,7 @@ void Emitter::GenCommonjsRecord(bool isCommonjs) isCommonJsField.name = "isCommonJs"; isCommonJsField.type = panda::pandasm::Type("u8", 0); isCommonJsField.metadata->SetValue( - panda::pandasm::ScalarValue::Create(static_cast(isCommonjs))); + panda::pandasm::ScalarValue::Create(static_cast(true))); commonjsRecord.field_list.emplace_back(std::move(isCommonJsField)); prog_->record_table.emplace(commonjsRecord.name, std::move(commonjsRecord)); diff --git a/es2panda/compiler/core/emitter/emitter.cpp b/es2panda/compiler/core/emitter/emitter.cpp index f69dc27fdf1..4852e6a3f14 100644 --- a/es2panda/compiler/core/emitter/emitter.cpp +++ b/es2panda/compiler/core/emitter/emitter.cpp @@ -356,7 +356,9 @@ Emitter::Emitter(const CompilerContext *context) prog_->function_table.reserve(context->Binder()->Functions().size()); GenESAnnoatationRecord(); - GenCommonjsRecord(context->Binder()->Program()->Kind() == parser::ScriptKind::COMMONJS); + if (context->Binder()->Program()->Kind() == parser::ScriptKind::COMMONJS) { + GenCommonjsRecord(); + } } Emitter::~Emitter() diff --git a/es2panda/compiler/core/emitter/emitter.h b/es2panda/compiler/core/emitter/emitter.h index 315868c0869..add3a5ec0b9 100644 --- a/es2panda/compiler/core/emitter/emitter.h +++ b/es2panda/compiler/core/emitter/emitter.h @@ -106,7 +106,7 @@ public: private: void GenESAnnoatationRecord(); - void GenCommonjsRecord(bool isCommonjs); + void GenCommonjsRecord(); std::mutex m_; panda::pandasm::Program *prog_; -- Gitee