Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Side by Side Diff: fpdfsdk/src/javascript/JS_Value.h

Issue 1394103002: Wean CJS_Value off of v8::Isolate. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #ifndef FPDFSDK_SRC_JAVASCRIPT_JS_VALUE_H_ 7 #ifndef FPDFSDK_SRC_JAVASCRIPT_JS_VALUE_H_
8 #define FPDFSDK_SRC_JAVASCRIPT_JS_VALUE_H_ 8 #define FPDFSDK_SRC_JAVASCRIPT_JS_VALUE_H_
9 9
10 #include "../../../core/include/fxcrt/fx_basic.h" 10 #include "../../../core/include/fxcrt/fx_basic.h"
11 #include "../../include/jsapi/fxjs_v8.h" 11 #include "../../include/jsapi/fxjs_v8.h"
12 12
13 class CJS_Array; 13 class CJS_Array;
14 class CJS_Date; 14 class CJS_Date;
15 class CJS_Document; 15 class CJS_Document;
16 class CJS_Object; 16 class CJS_Object;
17 class CJS_Runtime;
17 18
18 class CJS_Value { 19 class CJS_Value {
19 public: 20 public:
20 enum Type { 21 enum Type {
21 VT_unknown, 22 VT_unknown,
22 VT_string, 23 VT_string,
23 VT_number, 24 VT_number,
24 VT_boolean, 25 VT_boolean,
25 VT_date, 26 VT_date,
26 VT_object, 27 VT_object,
27 VT_fxobject, 28 VT_fxobject,
28 VT_null, 29 VT_null,
29 VT_undefined 30 VT_undefined
30 }; 31 };
31 32
32 CJS_Value(v8::Isolate* isolate); 33 CJS_Value(CJS_Runtime* pRuntime);
33 CJS_Value(v8::Isolate* isolate, v8::Local<v8::Value> pValue, Type t); 34 CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue, Type t);
34 CJS_Value(v8::Isolate* isolate, const int& iValue); 35 CJS_Value(CJS_Runtime* pRuntime, const int& iValue);
35 CJS_Value(v8::Isolate* isolate, const double& dValue); 36 CJS_Value(CJS_Runtime* pRuntime, const double& dValue);
36 CJS_Value(v8::Isolate* isolate, const float& fValue); 37 CJS_Value(CJS_Runtime* pRuntime, const float& fValue);
37 CJS_Value(v8::Isolate* isolate, const bool& bValue); 38 CJS_Value(CJS_Runtime* pRuntime, const bool& bValue);
38 CJS_Value(v8::Isolate* isolate, v8::Local<v8::Object>); 39 CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Object>);
39 CJS_Value(v8::Isolate* isolate, CJS_Object*); 40 CJS_Value(CJS_Runtime* pRuntime, CJS_Object*);
40 CJS_Value(v8::Isolate* isolate, CJS_Document*); 41 CJS_Value(CJS_Runtime* pRuntime, CJS_Document*);
41 CJS_Value(v8::Isolate* isolate, const FX_CHAR* pStr); 42 CJS_Value(CJS_Runtime* pRuntime, const FX_CHAR* pStr);
42 CJS_Value(v8::Isolate* isolate, const FX_WCHAR* pWstr); 43 CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr);
43 CJS_Value(v8::Isolate* isolate, CJS_Array& array); 44 CJS_Value(CJS_Runtime* pRuntime, CJS_Array& array);
44 45
45 ~CJS_Value(); 46 ~CJS_Value();
46 47
47 void SetNull(); 48 void SetNull();
48 void Attach(v8::Local<v8::Value> pValue, Type t); 49 void Attach(v8::Local<v8::Value> pValue, Type t);
49 void Attach(CJS_Value* pValue); 50 void Attach(CJS_Value* pValue);
50 void Detach(); 51 void Detach();
51 52
52 Type GetType() const; 53 Type GetType() const;
53 int ToInt() const; 54 int ToInt() const;
(...skipping 18 matching lines...) Expand all
72 void operator=(CJS_Date&); 73 void operator=(CJS_Date&);
73 void operator=(const FX_WCHAR* pWstr); 74 void operator=(const FX_WCHAR* pWstr);
74 void operator=(const FX_CHAR* pStr); 75 void operator=(const FX_CHAR* pStr);
75 void operator=(CJS_Value value); 76 void operator=(CJS_Value value);
76 77
77 FX_BOOL IsArrayObject() const; 78 FX_BOOL IsArrayObject() const;
78 FX_BOOL IsDateObject() const; 79 FX_BOOL IsDateObject() const;
79 FX_BOOL ConvertToArray(CJS_Array&) const; 80 FX_BOOL ConvertToArray(CJS_Array&) const;
80 FX_BOOL ConvertToDate(CJS_Date&) const; 81 FX_BOOL ConvertToDate(CJS_Date&) const;
81 82
82 v8::Isolate* GetIsolate() { return m_isolate; } 83 CJS_Runtime* GetJSRuntime() const { return m_pJSRuntime; }
83 84
84 protected: 85 protected:
85 Type m_eType; 86 Type m_eType;
86 v8::Local<v8::Value> m_pValue; 87 v8::Local<v8::Value> m_pValue;
87 v8::Isolate* m_isolate; 88 CJS_Runtime* m_pJSRuntime;
88 }; 89 };
89 90
90 class CJS_Parameters : public CFX_ArrayTemplate<CJS_Value> { 91 class CJS_Parameters : public CFX_ArrayTemplate<CJS_Value> {
91 public: 92 public:
92 void push_back(const CJS_Value& newElement) { 93 void push_back(const CJS_Value& newElement) {
93 CFX_ArrayTemplate<CJS_Value>::Add(newElement); 94 CFX_ArrayTemplate<CJS_Value>::Add(newElement);
94 } 95 }
95 int size() const { return CFX_ArrayTemplate<CJS_Value>::GetSize(); } 96 int size() const { return CFX_ArrayTemplate<CJS_Value>::GetSize(); }
96 }; 97 };
97 98
98 class CJS_PropValue : public CJS_Value { 99 class CJS_PropValue : public CJS_Value {
99 public: 100 public:
100 CJS_PropValue(const CJS_Value&); 101 CJS_PropValue(const CJS_Value&);
101 CJS_PropValue(v8::Isolate* isolate); 102 CJS_PropValue(CJS_Runtime* pRuntime);
102 ~CJS_PropValue(); 103 ~CJS_PropValue();
103 104
104 public: 105 FX_BOOL IsSetting() const { return m_bIsSetting; }
105 FX_BOOL IsSetting(); 106 FX_BOOL IsGetting() const { return !m_bIsSetting; }
106 FX_BOOL IsGetting(); 107
107 void operator<<(int); 108 void operator<<(int);
108 void operator>>(int&) const; 109 void operator>>(int&) const;
109 void operator<<(bool); 110 void operator<<(bool);
110 void operator>>(bool&) const; 111 void operator>>(bool&) const;
111 void operator<<(double); 112 void operator<<(double);
112 void operator>>(double&) const; 113 void operator>>(double&) const;
113 void operator<<(CJS_Object* pObj); 114 void operator<<(CJS_Object* pObj);
114 void operator>>(CJS_Object*& ppObj) const; 115 void operator>>(CJS_Object*& ppObj) const;
115 void operator<<(CJS_Document* pJsDoc); 116 void operator<<(CJS_Document* pJsDoc);
116 void operator>>(CJS_Document*& ppJsDoc) const; 117 void operator>>(CJS_Document*& ppJsDoc) const;
(...skipping 11 matching lines...) Expand all
128 operator v8::Local<v8::Value>() const; 129 operator v8::Local<v8::Value>() const;
129 void StartSetting(); 130 void StartSetting();
130 void StartGetting(); 131 void StartGetting();
131 132
132 private: 133 private:
133 FX_BOOL m_bIsSetting; 134 FX_BOOL m_bIsSetting;
134 }; 135 };
135 136
136 class CJS_Array { 137 class CJS_Array {
137 public: 138 public:
138 CJS_Array(v8::Isolate* isolate); 139 CJS_Array(CJS_Runtime* pRuntime);
139 virtual ~CJS_Array(); 140 virtual ~CJS_Array();
140 141
141 void Attach(v8::Local<v8::Array> pArray); 142 void Attach(v8::Local<v8::Array> pArray);
142 void GetElement(unsigned index, CJS_Value& value); 143 void GetElement(unsigned index, CJS_Value& value);
143 void SetElement(unsigned index, CJS_Value value); 144 void SetElement(unsigned index, CJS_Value value);
144 int GetLength(); 145 int GetLength();
145 FX_BOOL IsAttached(); 146 FX_BOOL IsAttached();
146 operator v8::Local<v8::Array>(); 147 operator v8::Local<v8::Array>();
147 148
148 v8::Isolate* GetIsolate() { return m_isolate; } 149 CJS_Runtime* GetJSRuntime() const { return m_pJSRuntime; }
149 150
150 private: 151 private:
151 v8::Local<v8::Array> m_pArray; 152 v8::Local<v8::Array> m_pArray;
152 v8::Isolate* m_isolate; 153 CJS_Runtime* m_pJSRuntime;
153 }; 154 };
154 155
155 class CJS_Date { 156 class CJS_Date {
156 friend class CJS_Value; 157 friend class CJS_Value;
157 158
158 public: 159 public:
159 CJS_Date(v8::Isolate* isolate); 160 CJS_Date(CJS_Runtime* pRuntime);
160 CJS_Date(v8::Isolate* isolate, double dMsec_time); 161 CJS_Date(CJS_Runtime* pRuntime, double dMsec_time);
161 CJS_Date(v8::Isolate* isolate, 162 CJS_Date(CJS_Runtime* pRuntime,
162 int year, 163 int year,
163 int mon, 164 int mon,
164 int day, 165 int day,
165 int hour, 166 int hour,
166 int min, 167 int min,
167 int sec); 168 int sec);
168 virtual ~CJS_Date(); 169 virtual ~CJS_Date();
169 void Attach(v8::Local<v8::Value> pDate); 170 void Attach(v8::Local<v8::Value> pDate);
170 171
171 int GetYear(); 172 int GetYear();
(...skipping 19 matching lines...) Expand all
191 192
192 CFX_WideString ToString() const; 193 CFX_WideString ToString() const;
193 194
194 static double 195 static double
195 MakeDate(int year, int mon, int mday, int hour, int min, int sec, int ms); 196 MakeDate(int year, int mon, int mday, int hour, int min, int sec, int ms);
196 197
197 FX_BOOL IsValidDate(); 198 FX_BOOL IsValidDate();
198 199
199 protected: 200 protected:
200 v8::Local<v8::Value> m_pDate; 201 v8::Local<v8::Value> m_pDate;
201 v8::Isolate* m_isolate; 202 CJS_Runtime* m_pJSRuntime;
202 }; 203 };
203 204
204 double JS_GetDateTime(); 205 double JS_GetDateTime();
205 int JS_GetYearFromTime(double dt); 206 int JS_GetYearFromTime(double dt);
206 int JS_GetMonthFromTime(double dt); 207 int JS_GetMonthFromTime(double dt);
207 int JS_GetDayFromTime(double dt); 208 int JS_GetDayFromTime(double dt);
208 int JS_GetHourFromTime(double dt); 209 int JS_GetHourFromTime(double dt);
209 int JS_GetMinFromTime(double dt); 210 int JS_GetMinFromTime(double dt);
210 int JS_GetSecFromTime(double dt); 211 int JS_GetSecFromTime(double dt);
211 double JS_DateParse(const wchar_t* string); 212 double JS_DateParse(const wchar_t* string);
212 double JS_MakeDay(int nYear, int nMonth, int nDay); 213 double JS_MakeDay(int nYear, int nMonth, int nDay);
213 double JS_MakeTime(int nHour, int nMin, int nSec, int nMs); 214 double JS_MakeTime(int nHour, int nMin, int nSec, int nMs);
214 double JS_MakeDate(double day, double time); 215 double JS_MakeDate(double day, double time);
215 bool JS_PortIsNan(double d); 216 bool JS_PortIsNan(double d);
216 double JS_LocalTime(double d); 217 double JS_LocalTime(double d);
217 218
218 #endif // FPDFSDK_SRC_JAVASCRIPT_JS_VALUE_H_ 219 #endif // FPDFSDK_SRC_JAVASCRIPT_JS_VALUE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698