Move JS_Value into JS_Define
This CL moves CJS_Return to its own files and moves the remaining
function definitions from JS_Value to JS_Define.
Change-Id: Ic7058a02330153f22d1fff9fc6cdebd9167c498b
Reviewed-on: https://pdfium-review.googlesource.com/17038
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/BUILD.gn b/BUILD.gn
index 7aaf642..612ea18 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1188,13 +1188,12 @@
if (pdf_enable_v8) {
sources += [
+ "fpdfsdk/javascript/JS_Define.cpp",
"fpdfsdk/javascript/JS_Define.h",
"fpdfsdk/javascript/JS_GlobalData.cpp",
"fpdfsdk/javascript/JS_GlobalData.h",
"fpdfsdk/javascript/JS_KeyValue.cpp",
"fpdfsdk/javascript/JS_KeyValue.h",
- "fpdfsdk/javascript/JS_Value.cpp",
- "fpdfsdk/javascript/JS_Value.h",
"fpdfsdk/javascript/PublicMethods.cpp",
"fpdfsdk/javascript/PublicMethods.h",
"fpdfsdk/javascript/app.cpp",
@@ -1235,6 +1234,8 @@
"fpdfsdk/javascript/cjs_position.h",
"fpdfsdk/javascript/cjs_printparamsobj.cpp",
"fpdfsdk/javascript/cjs_printparamsobj.h",
+ "fpdfsdk/javascript/cjs_return.cpp",
+ "fpdfsdk/javascript/cjs_return.h",
"fpdfsdk/javascript/cjs_runtime.cpp",
"fpdfsdk/javascript/cjs_runtime.h",
"fpdfsdk/javascript/cjs_scalehow.cpp",
diff --git a/fpdfsdk/javascript/JS_Value.cpp b/fpdfsdk/javascript/JS_Define.cpp
similarity index 95%
rename from fpdfsdk/javascript/JS_Value.cpp
rename to fpdfsdk/javascript/JS_Define.cpp
index da09ff2..18887e6 100644
--- a/fpdfsdk/javascript/JS_Value.cpp
+++ b/fpdfsdk/javascript/JS_Define.cpp
@@ -4,7 +4,7 @@
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-#include "fpdfsdk/javascript/JS_Value.h"
+#include "fpdfsdk/javascript/JS_Define.h"
#include <time.h>
@@ -13,7 +13,6 @@
#include <limits>
#include <vector>
-#include "fpdfsdk/javascript/JS_Define.h"
#include "fpdfsdk/javascript/cjs_document.h"
#include "fpdfsdk/javascript/cjs_object.h"
@@ -168,17 +167,6 @@
} // namespace
-CJS_Return::CJS_Return(bool result) : is_error_(!result) {}
-
-CJS_Return::CJS_Return(const WideString& err) : is_error_(true), error_(err) {}
-
-CJS_Return::CJS_Return(v8::Local<v8::Value> ret)
- : is_error_(false), return_(ret) {}
-
-CJS_Return::CJS_Return(const CJS_Return&) = default;
-
-CJS_Return::~CJS_Return() = default;
-
double JS_GetDateTime() {
if (!FSDK_IsSandBoxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
return 0;
diff --git a/fpdfsdk/javascript/JS_Define.h b/fpdfsdk/javascript/JS_Define.h
index 5824011..4f82a74 100644
--- a/fpdfsdk/javascript/JS_Define.h
+++ b/fpdfsdk/javascript/JS_Define.h
@@ -9,11 +9,36 @@
#include <vector>
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_object.h"
+#include "fpdfsdk/javascript/cjs_return.h"
#include "fpdfsdk/javascript/resource.h"
#include "fxjs/fxjs_v8.h"
+double JS_GetDateTime();
+int JS_GetYearFromTime(double dt);
+int JS_GetMonthFromTime(double dt);
+int JS_GetDayFromTime(double dt);
+int JS_GetHourFromTime(double dt);
+int JS_GetMinFromTime(double dt);
+int JS_GetSecFromTime(double dt);
+double JS_LocalTime(double d);
+double JS_DateParse(const WideString& str);
+double JS_MakeDay(int nYear, int nMonth, int nDay);
+double JS_MakeTime(int nHour, int nMin, int nSec, int nMs);
+double JS_MakeDate(double day, double time);
+
+// Some JS methods have the bizarre convention that they may also be called
+// with a single argument which is an object containing the actual arguments
+// as its properties. The varying arguments to this method are the property
+// names as wchar_t string literals corresponding to each positional argument.
+// The result will always contain |nKeywords| value, with unspecified ones
+// being set to type VT_unknown.
+std::vector<v8::Local<v8::Value>> ExpandKeywordParams(
+ CJS_Runtime* pRuntime,
+ const std::vector<v8::Local<v8::Value>>& originals,
+ size_t nKeywords,
+ ...);
+
// All JS classes have a name, an object defintion ID, and the ability to
// register themselves with FXJS_V8. We never make a BASE class on its own
// because it can't really do anything.
diff --git a/fpdfsdk/javascript/JS_Value.h b/fpdfsdk/javascript/JS_Value.h
deleted file mode 100644
index 046d959..0000000
--- a/fpdfsdk/javascript/JS_Value.h
+++ /dev/null
@@ -1,65 +0,0 @@
-// 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
-
-#ifndef FPDFSDK_JAVASCRIPT_JS_VALUE_H_
-#define FPDFSDK_JAVASCRIPT_JS_VALUE_H_
-
-#include <vector>
-
-#include "fxjs/fxjs_v8.h"
-
-class CJS_Document;
-class CJS_Object;
-class CJS_Runtime;
-
-class CJS_Return {
- public:
- explicit CJS_Return(bool);
- explicit CJS_Return(const WideString&);
- explicit CJS_Return(v8::Local<v8::Value>);
- CJS_Return(const CJS_Return&);
- ~CJS_Return();
-
- bool HasError() const { return is_error_; }
- WideString Error() const { return error_; }
-
- bool HasReturn() const { return !return_.IsEmpty(); }
- v8::Local<v8::Value> Return() const { return return_; }
-
- private:
- CJS_Return() = delete;
-
- bool is_error_ = false;
- WideString error_;
- v8::Local<v8::Value> return_;
-};
-
-double JS_GetDateTime();
-int JS_GetYearFromTime(double dt);
-int JS_GetMonthFromTime(double dt);
-int JS_GetDayFromTime(double dt);
-int JS_GetHourFromTime(double dt);
-int JS_GetMinFromTime(double dt);
-int JS_GetSecFromTime(double dt);
-double JS_LocalTime(double d);
-double JS_DateParse(const WideString& str);
-double JS_MakeDay(int nYear, int nMonth, int nDay);
-double JS_MakeTime(int nHour, int nMin, int nSec, int nMs);
-double JS_MakeDate(double day, double time);
-
-// Some JS methods have the bizarre convention that they may also be called
-// with a single argument which is an object containing the actual arguments
-// as its properties. The varying arguments to this method are the property
-// names as wchar_t string literals corresponding to each positional argument.
-// The result will always contain |nKeywords| value, with unspecified ones
-// being set to type VT_unknown.
-std::vector<v8::Local<v8::Value>> ExpandKeywordParams(
- CJS_Runtime* pRuntime,
- const std::vector<v8::Local<v8::Value>>& originals,
- size_t nKeywords,
- ...);
-
-#endif // FPDFSDK_JAVASCRIPT_JS_VALUE_H_
diff --git a/fpdfsdk/javascript/PublicMethods.cpp b/fpdfsdk/javascript/PublicMethods.cpp
index b2469ad..7969b62 100644
--- a/fpdfsdk/javascript/PublicMethods.cpp
+++ b/fpdfsdk/javascript/PublicMethods.cpp
@@ -20,7 +20,6 @@
#include "fpdfsdk/cpdfsdk_formfillenvironment.h"
#include "fpdfsdk/cpdfsdk_interform.h"
#include "fpdfsdk/javascript/JS_Define.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_event_context.h"
#include "fpdfsdk/javascript/cjs_eventhandler.h"
#include "fpdfsdk/javascript/cjs_field.h"
diff --git a/fpdfsdk/javascript/app.cpp b/fpdfsdk/javascript/app.cpp
index 8a91a1d..3e8ca0b 100644
--- a/fpdfsdk/javascript/app.cpp
+++ b/fpdfsdk/javascript/app.cpp
@@ -13,7 +13,6 @@
#include "fpdfsdk/cpdfsdk_formfillenvironment.h"
#include "fpdfsdk/cpdfsdk_interform.h"
#include "fpdfsdk/javascript/JS_Define.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_document.h"
#include "fpdfsdk/javascript/cjs_event_context.h"
#include "fpdfsdk/javascript/cjs_eventhandler.h"
diff --git a/fpdfsdk/javascript/cjs_annot.cpp b/fpdfsdk/javascript/cjs_annot.cpp
index fa7773f..8ff0d2c 100644
--- a/fpdfsdk/javascript/cjs_annot.cpp
+++ b/fpdfsdk/javascript/cjs_annot.cpp
@@ -7,7 +7,6 @@
#include "fpdfsdk/javascript/cjs_annot.h"
#include "fpdfsdk/javascript/JS_Define.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_event_context.h"
#include "fpdfsdk/javascript/cjs_object.h"
diff --git a/fpdfsdk/javascript/cjs_document.h b/fpdfsdk/javascript/cjs_document.h
index e6aab6b..f935eae 100644
--- a/fpdfsdk/javascript/cjs_document.h
+++ b/fpdfsdk/javascript/cjs_document.h
@@ -13,6 +13,7 @@
#include "fpdfsdk/javascript/JS_Define.h"
+class CJS_Document;
class CPDF_TextObject;
struct CJS_DelayData;
diff --git a/fpdfsdk/javascript/cjs_eventhandler.cpp b/fpdfsdk/javascript/cjs_eventhandler.cpp
index 002f6b0..406fd0b 100644
--- a/fpdfsdk/javascript/cjs_eventhandler.cpp
+++ b/fpdfsdk/javascript/cjs_eventhandler.cpp
@@ -8,7 +8,6 @@
#include "core/fpdfdoc/cpdf_formfield.h"
#include "fpdfsdk/javascript/JS_Define.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_document.h"
#include "fpdfsdk/javascript/cjs_event_context.h"
#include "fpdfsdk/javascript/cjs_field.h"
diff --git a/fpdfsdk/javascript/cjs_global.cpp b/fpdfsdk/javascript/cjs_global.cpp
index 5ef4d09..d89005d 100644
--- a/fpdfsdk/javascript/cjs_global.cpp
+++ b/fpdfsdk/javascript/cjs_global.cpp
@@ -15,7 +15,6 @@
#include "fpdfsdk/javascript/JS_Define.h"
#include "fpdfsdk/javascript/JS_GlobalData.h"
#include "fpdfsdk/javascript/JS_KeyValue.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_event_context.h"
#include "fpdfsdk/javascript/cjs_eventhandler.h"
#include "fpdfsdk/javascript/cjs_object.h"
diff --git a/fpdfsdk/javascript/cjs_return.cpp b/fpdfsdk/javascript/cjs_return.cpp
new file mode 100644
index 0000000..ecf36da
--- /dev/null
+++ b/fpdfsdk/javascript/cjs_return.cpp
@@ -0,0 +1,18 @@
+// 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
+
+#include "fpdfsdk/javascript/cjs_return.h"
+
+CJS_Return::CJS_Return(bool result) : is_error_(!result) {}
+
+CJS_Return::CJS_Return(const WideString& err) : is_error_(true), error_(err) {}
+
+CJS_Return::CJS_Return(v8::Local<v8::Value> ret)
+ : is_error_(false), return_(ret) {}
+
+CJS_Return::CJS_Return(const CJS_Return&) = default;
+
+CJS_Return::~CJS_Return() = default;
diff --git a/fpdfsdk/javascript/cjs_return.h b/fpdfsdk/javascript/cjs_return.h
new file mode 100644
index 0000000..f277c1a
--- /dev/null
+++ b/fpdfsdk/javascript/cjs_return.h
@@ -0,0 +1,34 @@
+// 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 FPDFSDK_JAVASCRIPT_CJS_RETURN_H_
+#define FPDFSDK_JAVASCRIPT_CJS_RETURN_H_
+
+#include "fxjs/fxjs_v8.h"
+
+class CJS_Return {
+ public:
+ explicit CJS_Return(bool);
+ explicit CJS_Return(const WideString&);
+ explicit CJS_Return(v8::Local<v8::Value>);
+ CJS_Return(const CJS_Return&);
+ ~CJS_Return();
+
+ bool HasError() const { return is_error_; }
+ WideString Error() const { return error_; }
+
+ bool HasReturn() const { return !return_.IsEmpty(); }
+ v8::Local<v8::Value> Return() const { return return_; }
+
+ private:
+ CJS_Return() = delete;
+
+ bool is_error_ = false;
+ WideString error_;
+ v8::Local<v8::Value> return_;
+};
+
+#endif // FPDFSDK_JAVASCRIPT_CJS_RETURN_H_
diff --git a/fpdfsdk/javascript/cjs_runtime.cpp b/fpdfsdk/javascript/cjs_runtime.cpp
index 64123ce..139dacf 100644
--- a/fpdfsdk/javascript/cjs_runtime.cpp
+++ b/fpdfsdk/javascript/cjs_runtime.cpp
@@ -11,7 +11,6 @@
#include "fpdfsdk/cpdfsdk_formfillenvironment.h"
#include "fpdfsdk/javascript/JS_Define.h"
#include "fpdfsdk/javascript/JS_GlobalData.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/PublicMethods.h"
#include "fpdfsdk/javascript/app.h"
#include "fpdfsdk/javascript/cjs_annot.h"
diff --git a/fpdfsdk/javascript/color.cpp b/fpdfsdk/javascript/color.cpp
index 405f12d..0f9ed0a 100644
--- a/fpdfsdk/javascript/color.cpp
+++ b/fpdfsdk/javascript/color.cpp
@@ -9,7 +9,6 @@
#include <vector>
#include "fpdfsdk/javascript/JS_Define.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_event_context.h"
#include "fpdfsdk/javascript/cjs_eventhandler.h"
#include "fpdfsdk/javascript/cjs_object.h"
diff --git a/fpdfsdk/javascript/console.cpp b/fpdfsdk/javascript/console.cpp
index 81db44d..67ca165 100644
--- a/fpdfsdk/javascript/console.cpp
+++ b/fpdfsdk/javascript/console.cpp
@@ -9,7 +9,6 @@
#include <vector>
#include "fpdfsdk/javascript/JS_Define.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_event_context.h"
#include "fpdfsdk/javascript/cjs_eventhandler.h"
#include "fpdfsdk/javascript/cjs_object.h"
diff --git a/fpdfsdk/javascript/event.cpp b/fpdfsdk/javascript/event.cpp
index 7682a64..22aaa04 100644
--- a/fpdfsdk/javascript/event.cpp
+++ b/fpdfsdk/javascript/event.cpp
@@ -7,7 +7,6 @@
#include "fpdfsdk/javascript/event.h"
#include "fpdfsdk/javascript/JS_Define.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_event_context.h"
#include "fpdfsdk/javascript/cjs_eventhandler.h"
#include "fpdfsdk/javascript/cjs_field.h"
diff --git a/fpdfsdk/javascript/report.cpp b/fpdfsdk/javascript/report.cpp
index 676451a..88ea5756 100644
--- a/fpdfsdk/javascript/report.cpp
+++ b/fpdfsdk/javascript/report.cpp
@@ -9,7 +9,6 @@
#include <vector>
#include "fpdfsdk/javascript/JS_Define.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/cjs_object.h"
const JSMethodSpec CJS_Report::MethodSpecs[] = {{"save", save_static},
diff --git a/fpdfsdk/javascript/util.cpp b/fpdfsdk/javascript/util.cpp
index a8f5486..9993472 100644
--- a/fpdfsdk/javascript/util.cpp
+++ b/fpdfsdk/javascript/util.cpp
@@ -16,7 +16,6 @@
#include "core/fxcrt/fx_extension.h"
#include "fpdfsdk/javascript/JS_Define.h"
-#include "fpdfsdk/javascript/JS_Value.h"
#include "fpdfsdk/javascript/PublicMethods.h"
#include "fpdfsdk/javascript/cjs_event_context.h"
#include "fpdfsdk/javascript/cjs_eventhandler.h"