diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-07-24 19:07:35 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-07-24 19:07:35 +0000 |
commit | 315f94a0961792ec08428c94105caf3d8637acd1 (patch) | |
tree | d5eac0937ce46592da16a9317337f291d6263bff /fxjs/jse_define.h | |
parent | c9f1234b1982eb7ec8a5254195574e88bee54703 (diff) | |
download | pdfium-315f94a0961792ec08428c94105caf3d8637acd1.tar.xz |
Rename JS_{METHOD,PROP} to JSE_{METHOD,PROP}
Because they are too easily confused with non-XFA JS_STATIC_PROP despite
being on the XFA side. The JSE_ prefix mirrors the fxjs/fxjse split
("e" presumably standing for "extension" or some such) between the
non-xfa/xfa V8 adapter layer.
Rename fxjs/{cjx_define.h => jse_define.h}, since there aren't any
symbols starting with |CJX| in it.
Fix some IWYU for jse_define.h
No functional changes.
Change-Id: I6a0b2b6fe6ef1b564b0bfa2fa7ba317a0cea0953
Reviewed-on: https://pdfium-review.googlesource.com/38730
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxjs/jse_define.h')
-rw-r--r-- | fxjs/jse_define.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/fxjs/jse_define.h b/fxjs/jse_define.h new file mode 100644 index 0000000000..ddc9d591f1 --- /dev/null +++ b/fxjs/jse_define.h @@ -0,0 +1,37 @@ +// Copyright 2017 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 + +#ifndef FXJS_JSE_DEFINE_H_ +#define FXJS_JSE_DEFINE_H_ + +#include <vector> + +#include "fxjs/cfx_v8.h" +#include "fxjs/cjs_return.h" + +template <class C, + CJS_Return (C::*M)(CFX_V8* runtime, + const std::vector<v8::Local<v8::Value>>& params)> +CJS_Return JSMethod(C* node, + CFX_V8* runtime, + const std::vector<v8::Local<v8::Value>>& params) { + return (node->*M)(runtime, params); +} + +#define JSE_METHOD(method_name, class_name) \ + static CJS_Return method_name##_static( \ + CJX_Object* node, CFX_V8* runtime, \ + const std::vector<v8::Local<v8::Value>>& params) { \ + return JSMethod<class_name, &class_name::method_name>( \ + static_cast<class_name*>(node), runtime, params); \ + } \ + CJS_Return method_name(CFX_V8* runtime, \ + const std::vector<v8::Local<v8::Value>>& params) + +#define JSE_PROP(prop_name) \ + void prop_name(CFXJSE_Value* pValue, bool bSetting, XFA_Attribute eAttribute) + +#endif // FXJS_JSE_DEFINE_H_ |