Implement JSON module parsing

Currently only the import statement is supported

Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
Zoltan Herczeg 2022-06-22 07:19:00 +00:00 committed by Hyukwoo Park
commit 3a0b874a7e
12 changed files with 199 additions and 85 deletions

View file

@ -541,6 +541,26 @@ void ScriptParser::generateFunctionByteCode(ExecutionState& state, InterpretedCo
GC_enable();
}
Script* ScriptParser::initializeJSONModule(String* source, String* srcName)
{
Script::ModuleData* moduleData = new Script::ModuleData();
Script::ExportEntry entry;
entry.m_exportName = m_context->staticStrings().stringDefault;
entry.m_localName = m_context->staticStrings().stringStarDefaultStar;
moduleData->m_localExportEntries.push_back(entry);
Script* script = new Script(srcName, source, moduleData, false, 0);
ModuleEnvironmentRecord* moduleRecord = new ModuleEnvironmentRecord(script);
moduleData->m_moduleRecord = moduleRecord;
moduleData->m_cycleRoot = script;
moduleData->m_status = Script::ModuleData::Linked;
return script;
}
#ifdef ESCARGOT_DEBUGGER
void ScriptParser::recursivelyGenerateChildrenByteCode(InterpretedCodeBlock* parent)