summaryrefslogtreecommitdiff
path: root/fxjs/jse_define.h
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2018-07-24 19:07:35 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-07-24 19:07:35 +0000
commit315f94a0961792ec08428c94105caf3d8637acd1 (patch)
treed5eac0937ce46592da16a9317337f291d6263bff /fxjs/jse_define.h
parentc9f1234b1982eb7ec8a5254195574e88bee54703 (diff)
downloadpdfium-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.h37
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_