!1756 Rename Commonjs's Objects

Merge pull request !1756 from DaiHN/cjs_mod
This commit is contained in:
openharmony_ci 2022-07-09 11:00:22 +00:00 committed by Gitee
commit 6dc63609e8
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
26 changed files with 153 additions and 155 deletions

View File

@ -505,9 +505,9 @@ ecma_source = [
"ecmascript/ts_types/ts_loader.cpp",
"ecmascript/ts_types/ts_obj_layout_info.cpp",
"ecmascript/stubs/test_runtime_stubs.cpp",
"ecmascript/builtins/builtin_cjs_module.cpp",
"ecmascript/builtins/builtin_cjs_require.cpp",
"ecmascript/builtins/builtin_cjs_exports.cpp",
"ecmascript/builtins/builtins_cjs_module.cpp",
"ecmascript/builtins/builtins_cjs_require.cpp",
"ecmascript/builtins/builtins_cjs_exports.cpp",
"ecmascript/require/js_cjs_module_cache.cpp",
"ecmascript/require/js_cjs_module.cpp",
"ecmascript/require/js_require_manager.cpp",

View File

@ -32,9 +32,9 @@
#include "ecmascript/builtins/builtins_atomics.h"
#include "ecmascript/builtins/builtins_bigint.h"
#include "ecmascript/builtins/builtins_boolean.h"
#include "ecmascript/builtins/builtin_cjs_module.h"
#include "ecmascript/builtins/builtin_cjs_require.h"
#include "ecmascript/builtins/builtin_cjs_exports.h"
#include "ecmascript/builtins/builtins_cjs_module.h"
#include "ecmascript/builtins/builtins_cjs_require.h"
#include "ecmascript/builtins/builtins_cjs_exports.h"
#include "ecmascript/builtins/builtins_collator.h"
#include "ecmascript/builtins/builtins_dataview.h"
#include "ecmascript/builtins/builtins_date.h"
@ -170,9 +170,9 @@ using Collator = builtins::BuiltinsCollator;
using PluralRules = builtins::BuiltinsPluralRules;
using DisplayNames = builtins::BuiltinsDisplayNames;
using ListFormat = builtins::BuiltinsListFormat;
using CjsModule = builtins::BuiltinsCjsModule;
using CjsExports = builtins::BuiltinsCjsExports;
using CjsRequire = builtins::BuiltinsCjsRequire;
using BuiltinsCjsModule = builtins::BuiltinsCjsModule;
using BuiltinsCjsExports = builtins::BuiltinsCjsExports;
using BuiltinsCjsRequire = builtins::BuiltinsCjsRequire;
using ContainersPrivate = containers::ContainersPrivate;
using SharedArrayBuffer = builtins::BuiltinsSharedArrayBuffer;
@ -3287,23 +3287,24 @@ void Builtins::InitializeCjsModule(const JSHandle<GlobalEnv> &env) const
// CjsModule.prototype_or_dynclass
JSHandle<JSHClass> cjsModuleDynclass =
factory_->NewEcmaDynClass(JSCjsModule::SIZE, JSType::JS_CJS_MODULE, cjsModulePrototypeValue);
factory_->NewEcmaDynClass(CjsModule::SIZE, JSType::JS_CJS_MODULE, cjsModulePrototypeValue);
// CjsModule.prototype.Constructor
JSHandle<JSObject> cjsModuleFunction(
NewBuiltinCjsCtor(env, cjsModulePrototype, CjsModule::CjsModuleConstructor, "Module", FunctionLength::TWO));
NewBuiltinCjsCtor(env, cjsModulePrototype, BuiltinsCjsModule::CjsModuleConstructor, "Module",
FunctionLength::TWO));
JSHandle<JSFunction>(cjsModuleFunction)->SetFunctionPrototype(thread_, cjsModuleDynclass.GetTaggedValue());
// CjsModule method
SetFunction(env, cjsModuleFunction, "_load", CjsModule::Load, FunctionLength::ONE);
SetFunction(env, cjsModuleFunction, "_resolveFilename", CjsModule::ResolveFilename, FunctionLength::ONE);
SetFunction(env, cjsModuleFunction, "_load", BuiltinsCjsModule::Load, FunctionLength::ONE);
SetFunction(env, cjsModuleFunction, "_resolveFilename", BuiltinsCjsModule::ResolveFilename, FunctionLength::ONE);
// CjsModule.prototype method
SetFunction(env, cjsModulePrototype, "require", CjsModule::Require, FunctionLength::ONE);
SetFunction(env, cjsModulePrototype, "require", BuiltinsCjsModule::Require, FunctionLength::ONE);
SetFunction(env, cjsModulePrototype, "getExportsForCircularRequire",
CjsModule::GetExportsForCircularRequire, FunctionLength::ONE);
SetFunction(env, cjsModulePrototype, "updateChildren", CjsModule::UpdateChildren, FunctionLength::ONE);
BuiltinsCjsModule::GetExportsForCircularRequire, FunctionLength::ONE);
SetFunction(env, cjsModulePrototype, "updateChildren", BuiltinsCjsModule::UpdateChildren, FunctionLength::ONE);
JSHandle<JSTaggedValue> id(thread_->GlobalConstants()->GetHandledEmptyString());
JSHandle<JSTaggedValue> path(thread_->GlobalConstants()->GetHandledEmptyString());
@ -3341,11 +3342,11 @@ void Builtins::InitializeCjsExports(const JSHandle<GlobalEnv> &env) const
// CjsExports.prototype_or_dynclass
JSHandle<JSHClass> cjsExportsDynclass =
factory_->NewEcmaDynClass(JSCjsExports::SIZE, JSType::JS_CJS_EXPORTS, cjsExportsPrototypeValue);
factory_->NewEcmaDynClass(CjsExports::SIZE, JSType::JS_CJS_EXPORTS, cjsExportsPrototypeValue);
// CjsExports.prototype.Constructor
JSHandle<JSObject> cjsExportsFunction(
NewBuiltinCjsCtor(env, cjsExportsPrototype, CjsExports::CjsExportsConstructor, "Exports",
NewBuiltinCjsCtor(env, cjsExportsPrototype, BuiltinsCjsExports::CjsExportsConstructor, "Exports",
FunctionLength::TWO));
JSHandle<JSFunction>(cjsExportsFunction)->SetFunctionPrototype(thread_, cjsExportsDynclass.GetTaggedValue());
@ -3363,15 +3364,16 @@ void Builtins::InitializeCjsRequire(const JSHandle<GlobalEnv> &env) const
// CjsExports.prototype_or_dynclass
JSHandle<JSHClass> cjsRequireDynclass =
factory_->NewEcmaDynClass(JSCjsRequire::SIZE, JSType::JS_CJS_REQUIRE, cjsRequirePrototypeValue);
factory_->NewEcmaDynClass(CjsRequire::SIZE, JSType::JS_CJS_REQUIRE, cjsRequirePrototypeValue);
// CjsExports.prototype.Constructor
JSHandle<JSFunction> cjsRequireFunction =
NewBuiltinCjsCtor(env, cjsRequirePrototype, CjsRequire::CjsRequireConstructor, "require", FunctionLength::ONE);
NewBuiltinCjsCtor(env, cjsRequirePrototype, BuiltinsCjsRequire::CjsRequireConstructor, "require",
FunctionLength::ONE);
JSHandle<JSFunction>(cjsRequireFunction)->SetFunctionPrototype(thread_, cjsRequireDynclass.GetTaggedValue());
// CjsModule.prototype method
SetFunction(env, cjsRequirePrototype, "Main", builtins::BuiltinsCjsRequire::Main, FunctionLength::ONE);
SetFunction(env, cjsRequirePrototype, "Main", BuiltinsCjsRequire::Main, FunctionLength::ONE);
env->SetCjsRequireFunction(thread_, cjsRequireFunction);
}

View File

@ -15,10 +15,9 @@
#include "ecmascript/base/builtins_base.h"
#include "ecmascript/require/js_cjs_exports.h"
#include "ecmascript/builtins/builtin_cjs_exports.h"
#include "ecmascript/builtins/builtins_cjs_exports.h"
namespace panda::ecmascript::builtins {
JSTaggedValue BuiltinsCjsExports::CjsExportsConstructor(EcmaRuntimeCallInfo *argv)
{
JSThread *thread = argv->GetThread();

View File

@ -23,9 +23,7 @@
namespace panda::ecmascript::builtins {
class BuiltinsCjsExports : public base::BuiltinsBase {
public:
static JSTaggedValue CjsExportsConstructor(EcmaRuntimeCallInfo *argv);
};
} // namespace panda::ecmascript::builtins
#endif // ECMASCRIPT_BUILTINS_BUILTINS_CJS_EXPORTS_H

View File

@ -14,7 +14,7 @@
*/
#include "ecmascript/base/builtins_base.h"
#include "ecmascript/builtins/builtin_cjs_module.h"
#include "ecmascript/builtins/builtins_cjs_module.h"
#include "ecmascript/require/js_cjs_module.h"
#include "ecmascript/require/js_require_manager.h"
#include "ecmascript/interpreter/interpreter-inl.h"
@ -55,15 +55,15 @@ JSTaggedValue BuiltinsCjsModule::ResolveFilename(EcmaRuntimeCallInfo *argv)
JSMutableHandle<JSTaggedValue> parent(thread, JSTaggedValue::Undefined());
JSMutableHandle<JSTaggedValue> dirname(thread, JSTaggedValue::Undefined());
const JSPandaFile *jsPandaFile = EcmaInterpreter::GetNativeCallPandafile(thread);
JSRequireManager::ResolveCurrentPath(thread, parent, dirname, jsPandaFile);
RequireManager::ResolveCurrentPath(thread, parent, dirname, jsPandaFile);
if (length != 1) { // strange arg's number
LOG_ECMA(ERROR) << "BuiltinsCjsModule::Load : can only accept one argument";
UNREACHABLE();
}
JSHandle<EcmaString> requestName = JSHandle<EcmaString>::Cast(GetCallArg(argv, 0));
JSHandle<EcmaString> filename = JSCjsModule::ResolveFilename(thread, dirname.GetTaggedValue(),
requestName.GetTaggedValue());
JSHandle<EcmaString> filename = CjsModule::ResolveFilename(thread, dirname.GetTaggedValue(),
requestName.GetTaggedValue());
return filename.GetTaggedValue();
}

View File

@ -19,10 +19,9 @@
#include "ecmascript/js_object-inl.h"
#include "ecmascript/js_tagged_value-inl.h"
#include "ecmascript/js_thread.h"
#include "ecmascript/builtins/builtin_cjs_require.h"
#include "ecmascript/builtins/builtins_cjs_require.h"
namespace panda::ecmascript::builtins {
JSTaggedValue BuiltinsCjsRequire::CjsRequireConstructor(EcmaRuntimeCallInfo *argv)
{
JSThread *thread = argv->GetThread();
@ -40,7 +39,7 @@ JSTaggedValue BuiltinsCjsRequire::CjsRequireConstructor(EcmaRuntimeCallInfo *arg
UNREACHABLE();
}
JSHandle<EcmaString> requestName = JSHandle<EcmaString>::Cast(GetCallArg(argv, 0));
result = JSCjsModule::Load(thread, requestName);
result = CjsModule::Load(thread, requestName);
return result.GetTaggedValue();
}

View File

@ -869,13 +869,13 @@ static void DumpObject(TaggedObject *obj, std::ostream &os)
JSAPIPlainArrayIterator::Cast(obj)->Dump(os);
break;
case JSType::JS_CJS_MODULE:
JSCjsModule::Cast(obj)->Dump(os);
CjsModule::Cast(obj)->Dump(os);
break;
case JSType::JS_CJS_REQUIRE:
JSCjsRequire::Cast(obj)->Dump(os);
CjsRequire::Cast(obj)->Dump(os);
break;
case JSType::JS_CJS_EXPORTS:
JSCjsExports::Cast(obj)->Dump(os);
CjsExports::Cast(obj)->Dump(os);
break;
default:
UNREACHABLE();
@ -3146,7 +3146,7 @@ void ModuleNamespace::Dump(std::ostream &os) const
os << "\n";
}
void JSCjsModule::Dump(std::ostream &os) const
void CjsModule::Dump(std::ostream &os) const
{
os << " - current module path: ";
GetPath().Dump(os);
@ -3156,13 +3156,13 @@ void JSCjsModule::Dump(std::ostream &os) const
os << "\n";
}
void JSCjsRequire::Dump(std::ostream &os) const
void CjsRequire::Dump(std::ostream &os) const
{
os << " --- JSCjsRequire is JSFunction: ";
os << " --- CjsRequire is JSFunction: ";
os << "\n";
}
void JSCjsExports::Dump(std::ostream &os) const
void CjsExports::Dump(std::ostream &os) const
{
DISALLOW_GARBAGE_COLLECTION;
JSHClass *jshclass = GetJSHClass();
@ -3433,13 +3433,13 @@ static void DumpObject(TaggedObject *obj,
JSNumberFormat::Cast(obj)->DumpForSnapshot(vec);
return;
case JSType::JS_CJS_MODULE:
JSCjsModule::Cast(obj)->DumpForSnapshot(vec);
CjsModule::Cast(obj)->DumpForSnapshot(vec);
return;
case JSType::JS_CJS_EXPORTS:
JSCjsExports::Cast(obj)->DumpForSnapshot(vec);
CjsExports::Cast(obj)->DumpForSnapshot(vec);
return;
case JSType::JS_CJS_REQUIRE:
JSCjsRequire::Cast(obj)->DumpForSnapshot(vec);
CjsRequire::Cast(obj)->DumpForSnapshot(vec);
return;
case JSType::JS_COLLATOR:
JSCollator::Cast(obj)->DumpForSnapshot(vec);
@ -4732,7 +4732,7 @@ void ModuleNamespace::DumpForSnapshot(std::vector<std::pair<CString, JSTaggedVal
vec.push_back(std::make_pair(CString("Exports"), GetExports()));
}
void JSCjsModule::DumpForSnapshot(std::vector<std::pair<CString, JSTaggedValue>> &vec) const
void CjsModule::DumpForSnapshot(std::vector<std::pair<CString, JSTaggedValue>> &vec) const
{
vec.push_back(std::make_pair(CString("Id"), GetId()));
vec.push_back(std::make_pair(CString("Path"), GetPath()));
@ -4740,12 +4740,12 @@ void JSCjsModule::DumpForSnapshot(std::vector<std::pair<CString, JSTaggedValue>>
vec.push_back(std::make_pair(CString("Filename"), GetFilename()));
}
void JSCjsExports::DumpForSnapshot(std::vector<std::pair<CString, JSTaggedValue>> &vec) const
void CjsExports::DumpForSnapshot(std::vector<std::pair<CString, JSTaggedValue>> &vec) const
{
vec.push_back(std::make_pair(CString("Exports"), GetExports()));
}
void JSCjsRequire::DumpForSnapshot(std::vector<std::pair<CString, JSTaggedValue>> &vec) const
void CjsRequire::DumpForSnapshot(std::vector<std::pair<CString, JSTaggedValue>> &vec) const
{
vec.push_back(std::make_pair(CString("Cache"), GetCache()));
vec.push_back(std::make_pair(CString("Parent"), GetParent()));

View File

@ -444,14 +444,14 @@ void EcmaVM::CJSExecution(JSHandle<JSFunction> &func, JSHandle<JSTaggedValue> &t
ObjectFactory *factory = GetFactory();
// create "module", "exports", "require", "filename", "dirname"
JSHandle<JSCjsModule> module = factory->NewCjsModule();
JSHandle<CjsModule> module = factory->NewCjsModule();
JSHandle<JSTaggedValue> require = GetGlobalEnv()->GetCjsRequireFunction();
JSHandle<JSCjsExports> exports = factory->NewCjsExports();
JSHandle<CjsExports> exports = factory->NewCjsExports();
JSMutableHandle<JSTaggedValue> filename(thread_, JSTaggedValue::Undefined());;
JSMutableHandle<JSTaggedValue> dirname(thread_, JSTaggedValue::Undefined());;
JSRequireManager::ResolveCurrentPath(thread_, dirname, filename, jsPandaFile);
RequireManager::ResolveCurrentPath(thread_, dirname, filename, jsPandaFile);
CJSInfo cjsInfo(module, require, exports, filename, dirname);
JSRequireManager::InitializeCommonJS(thread_, cjsInfo);
RequireManager::InitializeCommonJS(thread_, cjsInfo);
// Execute main function
JSHandle<JSTaggedValue> undefined = thread_->GlobalConstants()->GetHandledUndefined();
@ -473,7 +473,7 @@ void EcmaVM::CJSExecution(JSHandle<JSFunction> &func, JSHandle<JSTaggedValue> &t
EcmaInterpreter::Execute(info);
// Collecting module.exports : exports ---> module.exports --->Module._cache
JSRequireManager::CollectExecutedExp(thread_, cjsInfo);
RequireManager::CollectExecutedExp(thread_, cjsInfo);
return;
}

View File

@ -68,12 +68,12 @@ class Program;
class TSLoader;
class FileLoader;
class ModuleManager;
class JSCjsModule;
class JSCjsExports;
class JSCjsRequire;
class CjsModule;
class CjsExports;
class CjsRequire;
class CjsModuleCache;
class SlowRuntimeStub;
class JSRequireManager;
class RequireManager;
struct CJSInfo;
using HostPromiseRejectionTracker = void (*)(const EcmaVM* vm,

View File

@ -1162,17 +1162,17 @@ public:
return GetObjectType() == JSType::SOURCE_TEXT_MODULE_RECORD;
}
inline bool IsJSCjsExports() const
inline bool IsCjsExports() const
{
return GetObjectType() == JSType::JS_CJS_EXPORTS;
}
inline bool IsJSCjsModule() const
inline bool IsCjsModule() const
{
return GetObjectType() == JSType::JS_CJS_MODULE;
}
inline bool IsJSCjsRequire() const
inline bool IsCjsRequire() const
{
return GetObjectType() == JSType::JS_CJS_REQUIRE;
}

View File

@ -1125,19 +1125,19 @@ inline bool JSTaggedValue::IsTSClassInstanceType() const
return IsHeapObject() && GetTaggedObject()->GetClass()->IsTSClassInstanceType();
}
inline bool JSTaggedValue::IsJSCjsExports() const
inline bool JSTaggedValue::IsCjsExports() const
{
return IsHeapObject() && GetTaggedObject()->GetClass()->IsJSCjsExports();
return IsHeapObject() && GetTaggedObject()->GetClass()->IsCjsExports();
}
inline bool JSTaggedValue::IsJSCjsModule() const
inline bool JSTaggedValue::IsCjsModule() const
{
return IsHeapObject() && GetTaggedObject()->GetClass()->IsJSCjsModule();
return IsHeapObject() && GetTaggedObject()->GetClass()->IsCjsModule();
}
inline bool JSTaggedValue::IsJSCjsRequire() const
inline bool JSTaggedValue::IsCjsRequire() const
{
return IsHeapObject() && GetTaggedObject()->GetClass()->IsJSCjsRequire();
return IsHeapObject() && GetTaggedObject()->GetClass()->IsCjsRequire();
}
inline bool JSTaggedValue::IsTSFunctionType() const

View File

@ -605,9 +605,9 @@ public:
bool IsTSFunctionType() const;
bool IsTSArrayType() const;
bool IsJSCjsExports() const;
bool IsJSCjsModule() const;
bool IsJSCjsRequire() const;
bool IsCjsExports() const;
bool IsCjsModule() const;
bool IsCjsRequire() const;
bool IsModuleRecord() const;
bool IsSourceTextModule() const;
bool IsImportEntry() const;

View File

@ -569,13 +569,13 @@ public:
ModuleNamespace::Cast(object)->VisitRangeSlot(visitor);
break;
case JSType::JS_CJS_EXPORTS:
JSCjsExports::Cast(object)->VisitRangeSlot(visitor);
CjsExports::Cast(object)->VisitRangeSlot(visitor);
break;
case JSType::JS_CJS_MODULE:
JSCjsModule::Cast(object)->VisitRangeSlot(visitor);
CjsModule::Cast(object)->VisitRangeSlot(visitor);
break;
case JSType::JS_CJS_REQUIRE:
JSCjsRequire::Cast(object)->VisitRangeSlot(visitor);
CjsRequire::Cast(object)->VisitRangeSlot(visitor);
break;
default:
UNREACHABLE();

View File

@ -68,7 +68,7 @@ JSTaggedValue ModuleManager::GetModuleValueOutter(JSTaggedValue key)
SourceTextModule *module = SourceTextModule::Cast(resolvedModule.GetTaggedObject());
if (module->GetTypes() == ModuleTypes::CJSMODULE) {
JSHandle<JSTaggedValue> cjsModuleName(thread, module->GetEcmaModuleFilename());
return JSCjsModule::SearchFromModuleCache(thread, cjsModuleName).GetTaggedValue();
return CjsModule::SearchFromModuleCache(thread, cjsModuleName).GetTaggedValue();
}
return SourceTextModule::Cast(resolvedModule.GetTaggedObject())->GetModuleValue(thread,
binding->GetBindingName(), false);

View File

@ -1250,18 +1250,18 @@ void ObjectFactory::InitializeJSObject(const JSHandle<JSObject> &obj, const JSHa
case JSType::JS_API_PLAIN_ARRAY_ITERATOR:
break;
case JSType::JS_CJS_MODULE:
JSCjsModule::Cast(*obj)->SetId(thread_, JSTaggedValue::Undefined());
JSCjsModule::Cast(*obj)->SetExports(thread_, JSTaggedValue::Undefined());
JSCjsModule::Cast(*obj)->SetPath(thread_, JSTaggedValue::Undefined());
JSCjsModule::Cast(*obj)->SetFilename(thread_, JSTaggedValue::Undefined());
JSCjsModule::Cast(*obj)->SetStatus(CjsModuleStatus::UNLOAD);
CjsModule::Cast(*obj)->SetId(thread_, JSTaggedValue::Undefined());
CjsModule::Cast(*obj)->SetExports(thread_, JSTaggedValue::Undefined());
CjsModule::Cast(*obj)->SetPath(thread_, JSTaggedValue::Undefined());
CjsModule::Cast(*obj)->SetFilename(thread_, JSTaggedValue::Undefined());
CjsModule::Cast(*obj)->SetStatus(CjsModuleStatus::UNLOAD);
break;
case JSType::JS_CJS_EXPORTS:
JSCjsExports::Cast(*obj)->SetExports(thread_, JSTaggedValue::Undefined());
CjsExports::Cast(*obj)->SetExports(thread_, JSTaggedValue::Undefined());
break;
case JSType::JS_CJS_REQUIRE:
JSCjsRequire::Cast(*obj)->SetCache(thread_, JSTaggedValue::Undefined());
JSCjsRequire::Cast(*obj)->SetParent(thread_, JSTaggedValue::Undefined());
CjsRequire::Cast(*obj)->SetCache(thread_, JSTaggedValue::Undefined());
CjsRequire::Cast(*obj)->SetParent(thread_, JSTaggedValue::Undefined());
break;
default:
UNREACHABLE();
@ -2181,36 +2181,36 @@ JSHandle<ModuleNamespace> ObjectFactory::NewModuleNamespace()
return moduleNamespace;
}
JSHandle<JSCjsModule> ObjectFactory::NewCjsModule()
JSHandle<CjsModule> ObjectFactory::NewCjsModule()
{
NewObjectHook();
JSHandle<GlobalEnv> env = vm_->GetGlobalEnv();
JSHandle<JSTaggedValue> moduleObj(env->GetCjsModuleFunction());
JSHandle<JSCjsModule> cjsModule =
JSHandle<JSCjsModule>(NewJSObjectByConstructor(JSHandle<JSFunction>(moduleObj), moduleObj));
JSHandle<CjsModule> cjsModule =
JSHandle<CjsModule>(NewJSObjectByConstructor(JSHandle<JSFunction>(moduleObj), moduleObj));
return cjsModule;
}
JSHandle<JSCjsExports> ObjectFactory::NewCjsExports()
JSHandle<CjsExports> ObjectFactory::NewCjsExports()
{
NewObjectHook();
JSHandle<GlobalEnv> env = vm_->GetGlobalEnv();
JSHandle<JSTaggedValue> exportsObj(env->GetCjsExportsFunction());
JSHandle<JSCjsExports> cjsExports =
JSHandle<JSCjsExports>(NewJSObjectByConstructor(JSHandle<JSFunction>(exportsObj), exportsObj));
JSHandle<CjsExports> cjsExports =
JSHandle<CjsExports>(NewJSObjectByConstructor(JSHandle<JSFunction>(exportsObj), exportsObj));
return cjsExports;
}
JSHandle<JSCjsRequire> ObjectFactory::NewCjsRequire()
JSHandle<CjsRequire> ObjectFactory::NewCjsRequire()
{
NewObjectHook();
JSHandle<GlobalEnv> env = vm_->GetGlobalEnv();
JSHandle<JSTaggedValue> requireObj(env->GetCjsRequireFunction());
JSHandle<JSCjsRequire> cjsRequire =
JSHandle<JSCjsRequire>(NewJSObjectByConstructor(JSHandle<JSFunction>(requireObj), requireObj));
JSHandle<CjsRequire> cjsRequire =
JSHandle<CjsRequire>(NewJSObjectByConstructor(JSHandle<JSFunction>(requireObj), requireObj));
return cjsRequire;
}

View File

@ -130,9 +130,9 @@ class ModuleNamespace;
class ImportEntry;
class ExportEntry;
class SourceTextModule;
class JSCjsModule;
class JSCjsRequire;
class JSCjsExports;
class CjsModule;
class CjsRequire;
class CjsExports;
class ResolvedBinding;
class BigInt;
class CellRecord;
@ -521,9 +521,9 @@ public:
JSHandle<CellRecord> NewCellRecord();
// --------------------------------------require--------------------------------------------
JSHandle<JSCjsModule> NewCjsModule();
JSHandle<JSCjsExports> NewCjsExports();
JSHandle<JSCjsRequire> NewCjsRequire();
JSHandle<CjsModule> NewCjsModule();
JSHandle<CjsExports> NewCjsExports();
JSHandle<CjsRequire> NewCjsRequire();
private:
friend class GlobalEnv;

View File

@ -20,9 +20,9 @@
#include "ecmascript/js_tagged_value.h"
namespace panda::ecmascript {
class JSCjsExports final : public JSObject {
class CjsExports final : public JSObject {
public:
CAST_CHECK(JSCjsExports, IsJSCjsExports);
CAST_CHECK(CjsExports, IsCjsExports);
static constexpr size_t JS_CJS_EXPORTS_OFFSET = JSObject::SIZE;
ACCESSORS(Exports, JS_CJS_EXPORTS_OFFSET, SIZE)

View File

@ -22,8 +22,8 @@
#include "ecmascript/jspandafile/js_pandafile_manager.h"
namespace panda::ecmascript {
void JSCjsModule::InitializeModule(JSThread *thread, JSHandle<JSCjsModule> &module,
JSHandle<JSTaggedValue> &filename, JSHandle<JSTaggedValue> &dirname)
void CjsModule::InitializeModule(JSThread *thread, JSHandle<CjsModule> &module,
JSHandle<JSTaggedValue> &filename, JSHandle<JSTaggedValue> &dirname)
{
ObjectFactory *factory = thread->GetEcmaVM()->GetFactory();
@ -38,7 +38,7 @@ void JSCjsModule::InitializeModule(JSThread *thread, JSHandle<JSCjsModule> &modu
return;
}
JSHandle<JSTaggedValue> JSCjsModule::SearchFromModuleCache(JSThread *thread, JSHandle<JSTaggedValue> &filename)
JSHandle<JSTaggedValue> CjsModule::SearchFromModuleCache(JSThread *thread, JSHandle<JSTaggedValue> &filename)
{
[[maybe_unused]] EcmaHandleScope handleScope(thread);
JSHandle<GlobalEnv> env = thread->GetEcmaVM()->GetGlobalEnv();
@ -52,7 +52,7 @@ JSHandle<JSTaggedValue> JSCjsModule::SearchFromModuleCache(JSThread *thread, JSH
JSTaggedValue::Undefined());
JSHandle<CjsModuleCache> moduleCache = JSHandle<CjsModuleCache>(thread, modCache);
if (moduleCache->ContainsModule(filename.GetTaggedValue())) {
JSHandle<JSCjsModule> cachedModule = JSHandle<JSCjsModule>(thread,
JSHandle<CjsModule> cachedModule = JSHandle<CjsModule>(thread,
moduleCache->GetModule(filename.GetTaggedValue()));
JSHandle<JSTaggedValue> exportsName = globalConst->GetHandledCjsExportsString();
JSTaggedValue cachedExports = SlowRuntimeStub::LdObjByName(thread, cachedModule.GetTaggedValue(),
@ -65,7 +65,7 @@ JSHandle<JSTaggedValue> JSCjsModule::SearchFromModuleCache(JSThread *thread, JSH
return JSHandle<JSTaggedValue>(thread, JSTaggedValue::Hole());
}
void JSCjsModule::PutIntoCache(JSThread *thread, JSHandle<JSCjsModule> &module, JSHandle<JSTaggedValue> &filename)
void CjsModule::PutIntoCache(JSThread *thread, JSHandle<CjsModule> &module, JSHandle<JSTaggedValue> &filename)
{
JSHandle<GlobalEnv> env = thread->GetEcmaVM()->GetGlobalEnv();
const GlobalEnvConstants *globalConst = thread->GlobalConstants();
@ -84,7 +84,7 @@ void JSCjsModule::PutIntoCache(JSThread *thread, JSHandle<JSCjsModule> &module,
newCache.GetTaggedValue());
}
JSHandle<JSTaggedValue> JSCjsModule::Load(JSThread *thread, JSHandle<EcmaString> &request)
JSHandle<JSTaggedValue> CjsModule::Load(JSThread *thread, JSHandle<EcmaString> &request)
{
[[maybe_unused]] EcmaHandleScope handleScope(thread);
ObjectFactory *factory = thread->GetEcmaVM()->GetFactory();
@ -93,7 +93,7 @@ JSHandle<JSTaggedValue> JSCjsModule::Load(JSThread *thread, JSHandle<EcmaString>
JSMutableHandle<JSTaggedValue> parent(thread, JSTaggedValue::Undefined());
JSMutableHandle<JSTaggedValue> dirname(thread, JSTaggedValue::Undefined());
const JSPandaFile *jsPandaFile = EcmaInterpreter::GetNativeCallPandafile(thread);
JSRequireManager::ResolveCurrentPath(thread, parent, dirname, jsPandaFile);
RequireManager::ResolveCurrentPath(thread, parent, dirname, jsPandaFile);
// Get filename from Callback
JSHandle<EcmaString> filenameStr = ResolveFilename(thread, dirname.GetTaggedValue(),
request.GetTaggedValue());
@ -108,7 +108,7 @@ JSHandle<JSTaggedValue> JSCjsModule::Load(JSThread *thread, JSHandle<EcmaString>
// Don't get required exports from cache, execute required JSPandaFile.
// module = new Module(), which belongs to required JSPandaFile.
JSHandle<JSCjsModule> module = factory->NewCjsModule();
JSHandle<CjsModule> module = factory->NewCjsModule();
InitializeModule(thread, module, filename, dirname);
PutIntoCache(thread, module, filename);
@ -124,7 +124,7 @@ JSHandle<JSTaggedValue> JSCjsModule::Load(JSThread *thread, JSHandle<EcmaString>
return cachedExports;
}
void JSCjsModule::RequireExecution(JSThread *thread, const JSHandle<EcmaString> &moduleFileName)
void CjsModule::RequireExecution(JSThread *thread, const JSHandle<EcmaString> &moduleFileName)
{
CString moduleFilenameStr = ConvertToString(moduleFileName.GetTaggedValue());
const JSPandaFile *jsPandaFile =
@ -136,7 +136,7 @@ void JSCjsModule::RequireExecution(JSThread *thread, const JSHandle<EcmaString>
JSPandaFileExecutor::Execute(thread, jsPandaFile);
}
JSHandle<EcmaString> JSCjsModule::ResolveFilename(JSThread *thread, JSTaggedValue dirname, JSTaggedValue request)
JSHandle<EcmaString> CjsModule::ResolveFilename(JSThread *thread, JSTaggedValue dirname, JSTaggedValue request)
{
ObjectFactory *factory = thread->GetEcmaVM()->GetFactory();
@ -152,8 +152,8 @@ JSHandle<EcmaString> JSCjsModule::ResolveFilename(JSThread *thread, JSTaggedValu
return factory->NewFromUtf8(fullname);
}
JSHandle<EcmaString> JSCjsModule::ResolveFilenameFromNative(JSThread *thread, JSTaggedValue dirname,
JSTaggedValue request)
JSHandle<EcmaString> CjsModule::ResolveFilenameFromNative(JSThread *thread, JSTaggedValue dirname,
JSTaggedValue request)
{
ObjectFactory *factory = thread->GetEcmaVM()->GetFactory();
@ -179,9 +179,9 @@ JSHandle<EcmaString> JSCjsModule::ResolveFilenameFromNative(JSThread *thread, JS
return factory->NewFromUtf8(fullname);
}
JSTaggedValue JSCjsModule::Require(JSThread *thread, JSHandle<EcmaString> &request,
[[maybe_unused]]JSHandle<JSCjsModule> &parent,
[[maybe_unused]]bool isMain)
JSTaggedValue CjsModule::Require(JSThread *thread, JSHandle<EcmaString> &request,
[[maybe_unused]]JSHandle<CjsModule> &parent,
[[maybe_unused]]bool isMain)
{
Load(thread, request);
return JSTaggedValue::Undefined();

View File

@ -23,9 +23,9 @@
namespace panda::ecmascript {
enum class CjsModuleStatus : uint8_t { UNLOAD = 0x01, LOADED};
class JSCjsModule final : public JSObject {
class CjsModule final : public JSObject {
public:
CAST_CHECK(JSCjsModule, IsJSCjsModule);
CAST_CHECK(CjsModule, IsCjsModule);
// Instantiate member
static constexpr size_t JS_CJS_MODULE_OFFSET = JSObject::SIZE;
@ -44,16 +44,16 @@ public:
DECL_DUMP()
DECL_VISIT_OBJECT_FOR_JS_OBJECT(JSObject, JS_CJS_MODULE_OFFSET, BIT_FIELD_OFFSET)
static void InitializeModule(JSThread *thread, JSHandle<JSCjsModule> &module,
static void InitializeModule(JSThread *thread, JSHandle<CjsModule> &module,
JSHandle<JSTaggedValue> &filename, JSHandle<JSTaggedValue> &dirname);
static JSHandle<JSTaggedValue> SearchFromModuleCache(JSThread *thread, JSHandle<JSTaggedValue> &filename);
static void PutIntoCache(JSThread *thread, JSHandle<JSCjsModule> &module, JSHandle<JSTaggedValue> &filename);
static void PutIntoCache(JSThread *thread, JSHandle<CjsModule> &module, JSHandle<JSTaggedValue> &filename);
static JSHandle<JSTaggedValue> Load(JSThread *thread, JSHandle<EcmaString> &request);
static JSTaggedValue Require(JSThread *thread, JSHandle<EcmaString> &request, JSHandle<JSCjsModule> &parent,
static JSTaggedValue Require(JSThread *thread, JSHandle<EcmaString> &request, JSHandle<CjsModule> &parent,
bool isMain);
static JSHandle<EcmaString> ResolveFilename(JSThread *thread, JSTaggedValue dirname, JSTaggedValue filename);

View File

@ -21,9 +21,9 @@
#include "ecmascript/ecma_runtime_call_info.h"
namespace panda::ecmascript {
class JSCjsRequire final : public JSObject {
class CjsRequire final : public JSObject {
public:
CAST_CHECK(JSCjsRequire, IsJSCjsRequire);
CAST_CHECK(CjsRequire, IsCjsRequire);
// Instantiate member
static constexpr size_t JS_CJS_REQUIRE_OFFSET = JSObject::SIZE;

View File

@ -20,10 +20,10 @@
#include "ecmascript/ecma_string.h"
namespace panda::ecmascript {
void JSRequireManager::ResolveCurrentPath(JSThread *thread,
JSMutableHandle<JSTaggedValue> &dirPath,
JSMutableHandle<JSTaggedValue> &fileName,
const JSPandaFile *jsPandaFile)
void RequireManager::ResolveCurrentPath(JSThread *thread,
JSMutableHandle<JSTaggedValue> &dirPath,
JSMutableHandle<JSTaggedValue> &fileName,
const JSPandaFile *jsPandaFile)
{
ObjectFactory *factory = thread->GetEcmaVM()->GetFactory();
CString fullName = CString(jsPandaFile->GetPandaFile()->GetFilename());
@ -41,14 +41,14 @@ void JSRequireManager::ResolveCurrentPath(JSThread *thread,
fileName.Update(cbFileName.GetTaggedValue());
}
void JSRequireManager::InitializeCommonJS(JSThread *thread, CJSInfo cjsInfo)
void RequireManager::InitializeCommonJS(JSThread *thread, CJSInfo cjsInfo)
{
ObjectFactory *factory = thread->GetEcmaVM()->GetFactory();
const GlobalEnvConstants *globalConst = thread->GlobalConstants();
JSHandle<JSCjsModule> module = cjsInfo.moduleHdl;
JSHandle<CjsModule> module = cjsInfo.moduleHdl;
JSHandle<JSTaggedValue> require = cjsInfo.requireHdl;
JSHandle<JSCjsExports> exports = cjsInfo.exportsHdl;
JSHandle<CjsExports> exports = cjsInfo.exportsHdl;
JSHandle<JSTaggedValue> filename = cjsInfo.filenameHdl;
JSHandle<JSTaggedValue> dirname = cjsInfo.dirnameHdl;
@ -57,7 +57,7 @@ void JSRequireManager::InitializeCommonJS(JSThread *thread, CJSInfo cjsInfo)
SlowRuntimeStub::StObjByName(thread, module.GetTaggedValue(), exportsKey.GetTaggedValue(),
exports.GetTaggedValue());
// initialize module
JSCjsModule::InitializeModule(thread, module, filename, dirname);
CjsModule::InitializeModule(thread, module, filename, dirname);
// Set this.module ---> this.require.parent
JSHandle<JSTaggedValue> parentKey(factory->NewFromASCII("parent"));
@ -77,11 +77,11 @@ void JSRequireManager::InitializeCommonJS(JSThread *thread, CJSInfo cjsInfo)
newCache.GetTaggedValue());
}
void JSRequireManager::CollectExecutedExp(JSThread *thread, CJSInfo cjsInfo)
void RequireManager::CollectExecutedExp(JSThread *thread, CJSInfo cjsInfo)
{
const GlobalEnvConstants *globalConst = thread->GlobalConstants();
JSHandle<JSCjsModule> module = cjsInfo.moduleHdl;
JSHandle<CjsModule> module = cjsInfo.moduleHdl;
JSHandle<JSTaggedValue> filename = cjsInfo.filenameHdl;
// get Module from global env

View File

@ -25,19 +25,19 @@
namespace panda::ecmascript {
struct CJSInfo {
JSHandle<JSCjsModule> moduleHdl;
JSHandle<CjsModule> moduleHdl;
JSHandle<JSTaggedValue> requireHdl;
JSHandle<JSCjsExports> exportsHdl;
JSHandle<CjsExports> exportsHdl;
JSHandle<JSTaggedValue> filenameHdl;
JSHandle<JSTaggedValue> dirnameHdl;
CJSInfo(JSHandle<JSCjsModule> &module,
CJSInfo(JSHandle<CjsModule> &module,
JSHandle<JSTaggedValue> &require,
JSHandle<JSCjsExports> &exports,
JSHandle<CjsExports> &exports,
JSHandle<JSTaggedValue> &filename,
JSHandle<JSTaggedValue> &dirname) : moduleHdl(module), requireHdl(require), exportsHdl(exports),
filenameHdl(filename), dirnameHdl(dirname) {}
};
class JSRequireManager {
class RequireManager {
public:
static void ResolveCurrentPath(JSThread *thread, JSMutableHandle<JSTaggedValue> &dirPath,

View File

@ -23,9 +23,9 @@
#include "ecmascript/builtins/builtins_atomics.h"
#include "ecmascript/builtins/builtins_bigint.h"
#include "ecmascript/builtins/builtins_boolean.h"
#include "ecmascript/builtins/builtin_cjs_exports.h"
#include "ecmascript/builtins/builtin_cjs_module.h"
#include "ecmascript/builtins/builtin_cjs_require.h"
#include "ecmascript/builtins/builtins_cjs_exports.h"
#include "ecmascript/builtins/builtins_cjs_module.h"
#include "ecmascript/builtins/builtins_cjs_require.h"
#include "ecmascript/builtins/builtins_collator.h"
#include "ecmascript/builtins/builtins_dataview.h"
#include "ecmascript/builtins/builtins_date.h"
@ -151,9 +151,9 @@ using Promise = builtins::BuiltinsPromise;
using BuiltinsPromiseHandler = builtins::BuiltinsPromiseHandler;
using BuiltinsPromiseJob = builtins::BuiltinsPromiseJob;
using ListFormat = builtins::BuiltinsListFormat;
using CjsExports = builtins::BuiltinsCjsExports;
using CjsModule = builtins::BuiltinsCjsModule;
using CjsRequire = builtins::BuiltinsCjsRequire;
using BuiltinsCjsExports = builtins::BuiltinsCjsExports;
using BuiltinsCjsModule = builtins::BuiltinsCjsModule;
using BuiltinsCjsRequire = builtins::BuiltinsCjsRequire;
using ArkTools = builtins::BuiltinsArkTools;
using ErrorType = base::ErrorType;
@ -673,17 +673,17 @@ static uintptr_t g_nativeTable[] = {
reinterpret_cast<uintptr_t>(ListFormat::Format),
reinterpret_cast<uintptr_t>(ListFormat::FormatToParts),
reinterpret_cast<uintptr_t>(ListFormat::ResolvedOptions),
reinterpret_cast<uintptr_t>(CjsExports::CjsExportsConstructor),
reinterpret_cast<uintptr_t>(CjsModule::CjsModuleConstructor),
reinterpret_cast<uintptr_t>(CjsModule::Compiler),
reinterpret_cast<uintptr_t>(CjsModule::Load),
reinterpret_cast<uintptr_t>(CjsModule::Require),
reinterpret_cast<uintptr_t>(CjsModule::GetExportsForCircularRequire),
reinterpret_cast<uintptr_t>(CjsModule::UpdateChildren),
reinterpret_cast<uintptr_t>(CjsModule::ResolveFilename),
reinterpret_cast<uintptr_t>(CjsRequire::CjsRequireConstructor),
reinterpret_cast<uintptr_t>(CjsRequire::Main),
reinterpret_cast<uintptr_t>(CjsRequire::Resolve),
reinterpret_cast<uintptr_t>(BuiltinsCjsExports::CjsExportsConstructor),
reinterpret_cast<uintptr_t>(BuiltinsCjsModule::CjsModuleConstructor),
reinterpret_cast<uintptr_t>(BuiltinsCjsModule::Compiler),
reinterpret_cast<uintptr_t>(BuiltinsCjsModule::Load),
reinterpret_cast<uintptr_t>(BuiltinsCjsModule::Require),
reinterpret_cast<uintptr_t>(BuiltinsCjsModule::GetExportsForCircularRequire),
reinterpret_cast<uintptr_t>(BuiltinsCjsModule::UpdateChildren),
reinterpret_cast<uintptr_t>(BuiltinsCjsModule::ResolveFilename),
reinterpret_cast<uintptr_t>(BuiltinsCjsRequire::CjsRequireConstructor),
reinterpret_cast<uintptr_t>(BuiltinsCjsRequire::Main),
reinterpret_cast<uintptr_t>(BuiltinsCjsRequire::Resolve),
reinterpret_cast<uintptr_t>(ArkTools::ObjectDump),
reinterpret_cast<uintptr_t>(ArkTools::CompareHClass),
reinterpret_cast<uintptr_t>(ArkTools::DumpHClass),

View File

@ -1149,20 +1149,20 @@ HWTEST_F_L0(EcmaDumpTest, HeapProfileDump)
break;
}
case JSType::JS_CJS_EXPORTS: {
CHECK_DUMP_FIELDS(JSObject::SIZE, JSCjsExports::SIZE, 1U);
JSHandle<JSCjsExports> cjsExports = factory->NewCjsExports();
CHECK_DUMP_FIELDS(JSObject::SIZE, CjsExports::SIZE, 1U);
JSHandle<CjsExports> cjsExports = factory->NewCjsExports();
DUMP_FOR_HANDLE(cjsExports);
break;
}
case JSType::JS_CJS_MODULE: {
CHECK_DUMP_FIELDS(JSObject::SIZE, JSCjsModule::SIZE, 5U);
JSHandle<JSCjsModule> cjsModule = factory->NewCjsModule();
CHECK_DUMP_FIELDS(JSObject::SIZE, CjsModule::SIZE, 5U);
JSHandle<CjsModule> cjsModule = factory->NewCjsModule();
DUMP_FOR_HANDLE(cjsModule);
break;
}
case JSType::JS_CJS_REQUIRE: {
CHECK_DUMP_FIELDS(JSObject::SIZE, JSCjsRequire::SIZE, 2U);
JSHandle<JSCjsRequire> cjsRequire = factory->NewCjsRequire();
CHECK_DUMP_FIELDS(JSObject::SIZE, CjsRequire::SIZE, 2U);
JSHandle<CjsRequire> cjsRequire = factory->NewCjsRequire();
DUMP_FOR_HANDLE(cjsRequire);
break;
}