diff options
Diffstat (limited to 'xfa/fxfa/parser/cxfa_nodelist.cpp')
-rw-r--r-- | xfa/fxfa/parser/cxfa_nodelist.cpp | 78 |
1 files changed, 8 insertions, 70 deletions
diff --git a/xfa/fxfa/parser/cxfa_nodelist.cpp b/xfa/fxfa/parser/cxfa_nodelist.cpp index 4c5e5435c2..31e3bf6764 100644 --- a/xfa/fxfa/parser/cxfa_nodelist.cpp +++ b/xfa/fxfa/parser/cxfa_nodelist.cpp @@ -10,6 +10,7 @@ #include "core/fxcrt/fx_extension.h" #include "fxjs/cfxjse_engine.h" +#include "fxjs/cjx_nodelist.h" #include "xfa/fxfa/parser/cxfa_document.h" #include "xfa/fxfa/parser/cxfa_node.h" @@ -18,7 +19,7 @@ CXFA_NodeList::CXFA_NodeList(CXFA_Document* pDocument) XFA_ObjectType::NodeList, XFA_Element::NodeList, WideStringView(L"nodeList"), - pdfium::MakeUnique<CJX_Object>(this)) { + pdfium::MakeUnique<CJX_NodeList>(this)) { m_pDocument->GetScriptContext()->AddToCacheList( std::unique_ptr<CXFA_NodeList>(this)); } @@ -37,91 +38,28 @@ CXFA_Node* CXFA_NodeList::NamedItem(const WideStringView& wsName) { } void CXFA_NodeList::Script_ListClass_Append(CFXJSE_Arguments* pArguments) { - int32_t argc = pArguments->GetLength(); - if (argc != 1) { - JSObject()->ThrowParamCountMismatchException(L"append"); - return; - } - - CXFA_Node* pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); - if (!pNode) { - JSObject()->ThrowArgumentMismatchException(); - return; - } - Append(pNode); + JSNodeList()->Script_ListClass_Append(pArguments); } void CXFA_NodeList::Script_ListClass_Insert(CFXJSE_Arguments* pArguments) { - int32_t argc = pArguments->GetLength(); - if (argc != 2) { - JSObject()->ThrowParamCountMismatchException(L"insert"); - return; - } - - CXFA_Node* pNewNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); - CXFA_Node* pBeforeNode = static_cast<CXFA_Node*>(pArguments->GetObject(1)); - if (!pNewNode) { - JSObject()->ThrowArgumentMismatchException(); - return; - } - Insert(pNewNode, pBeforeNode); + JSNodeList()->Script_ListClass_Insert(pArguments); } void CXFA_NodeList::Script_ListClass_Remove(CFXJSE_Arguments* pArguments) { - int32_t argc = pArguments->GetLength(); - if (argc != 1) { - JSObject()->ThrowParamCountMismatchException(L"remove"); - return; - } - - CXFA_Node* pNode = static_cast<CXFA_Node*>(pArguments->GetObject(0)); - if (!pNode) { - JSObject()->ThrowArgumentMismatchException(); - return; - } - Remove(pNode); + JSNodeList()->Script_ListClass_Remove(pArguments); } void CXFA_NodeList::Script_ListClass_Item(CFXJSE_Arguments* pArguments) { - int32_t argc = pArguments->GetLength(); - if (argc != 1) { - JSObject()->ThrowParamCountMismatchException(L"item"); - return; - } - - int32_t iIndex = pArguments->GetInt32(0); - if (iIndex < 0 || iIndex >= GetLength()) { - JSObject()->ThrowIndexOutOfBoundsException(); - return; - } - pArguments->GetReturnValue()->Assign( - m_pDocument->GetScriptContext()->GetJSValueFromMap(Item(iIndex))); + JSNodeList()->Script_ListClass_Item(pArguments); } void CXFA_NodeList::Script_TreelistClass_NamedItem( CFXJSE_Arguments* pArguments) { - int32_t argc = pArguments->GetLength(); - if (argc != 1) { - JSObject()->ThrowParamCountMismatchException(L"namedItem"); - return; - } - - ByteString szName = pArguments->GetUTF8String(0); - CXFA_Node* pNode = - NamedItem(WideString::FromUTF8(szName.AsStringView()).AsStringView()); - if (!pNode) - return; - - pArguments->GetReturnValue()->Assign( - m_pDocument->GetScriptContext()->GetJSValueFromMap(pNode)); + JSNodeList()->Script_TreelistClass_NamedItem(pArguments); } void CXFA_NodeList::Script_ListClass_Length(CFXJSE_Value* pValue, bool bSetting, XFA_ATTRIBUTE eAttribute) { - if (bSetting) { - JSObject()->ThrowInvalidPropertyException(); - return; - } - pValue->SetInteger(GetLength()); + JSNodeList()->Script_ListClass_Length(pValue, bSetting, eAttribute); } |