| // Copyright 2014 PDFium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 
 |  | 
 | #include "fxjs/cjs_object.h" | 
 |  | 
 | #include "fxjs/cfxjs_engine.h" | 
 |  | 
 | // static | 
 | void CJS_Object::DefineConsts(CFXJS_Engine* pEngine, | 
 |                               uint32_t nObjDefnID, | 
 |                               pdfium::span<const JSConstSpec> consts) { | 
 |   for (const auto& item : consts) { | 
 |     pEngine->DefineObjConst( | 
 |         nObjDefnID, item.pName, | 
 |         item.eType == JSConstSpec::Number | 
 |             ? pEngine->NewNumber(item.number).As<v8::Value>() | 
 |             : pEngine->NewString(item.pStr).As<v8::Value>()); | 
 |   } | 
 | } | 
 |  | 
 | // static | 
 | void CJS_Object::DefineProps(CFXJS_Engine* pEngine, | 
 |                              uint32_t nObjDefnID, | 
 |                              pdfium::span<const JSPropertySpec> props) { | 
 |   for (const auto& item : props) | 
 |     pEngine->DefineObjProperty(nObjDefnID, item.pName, item.pPropGet, | 
 |                                item.pPropPut); | 
 | } | 
 |  | 
 | // static | 
 | void CJS_Object::DefineMethods(CFXJS_Engine* pEngine, | 
 |                                uint32_t nObjDefnID, | 
 |                                pdfium::span<const JSMethodSpec> methods) { | 
 |   for (const auto& item : methods) | 
 |     pEngine->DefineObjMethod(nObjDefnID, item.pName, item.pMethodCall); | 
 | } | 
 |  | 
 | CJS_Object::CJS_Object(v8::Local<v8::Object> pObject, CJS_Runtime* pRuntime) | 
 |     : m_pIsolate(pObject->GetIsolate()), | 
 |       m_pV8Object(GetIsolate(), pObject), | 
 |       m_pRuntime(pRuntime) {} | 
 |  | 
 | CJS_Object::~CJS_Object() = default; |