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

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

Issue 2227673005: Remove backpointer to CJS_Runtime from CJS_Value (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Const member Created 4 years, 4 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
« no previous file with comments | « fpdfsdk/javascript/JS_Object.cpp ('k') | fpdfsdk/javascript/JS_Value.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_JAVASCRIPT_JS_VALUE_H_ 7 #ifndef FPDFSDK_JAVASCRIPT_JS_VALUE_H_
8 #define FPDFSDK_JAVASCRIPT_JS_VALUE_H_ 8 #define FPDFSDK_JAVASCRIPT_JS_VALUE_H_
9 9
10 #include <vector> 10 #include <vector>
(...skipping 24 matching lines...) Expand all
35 CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue); 35 CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue);
36 CJS_Value(CJS_Runtime* pRuntime, const int& iValue); 36 CJS_Value(CJS_Runtime* pRuntime, const int& iValue);
37 CJS_Value(CJS_Runtime* pRuntime, const double& dValue); 37 CJS_Value(CJS_Runtime* pRuntime, const double& dValue);
38 CJS_Value(CJS_Runtime* pRuntime, const float& fValue); 38 CJS_Value(CJS_Runtime* pRuntime, const float& fValue);
39 CJS_Value(CJS_Runtime* pRuntime, const bool& bValue); 39 CJS_Value(CJS_Runtime* pRuntime, const bool& bValue);
40 CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pObj); 40 CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pObj);
41 CJS_Value(CJS_Runtime* pRuntime, const FX_CHAR* pStr); 41 CJS_Value(CJS_Runtime* pRuntime, const FX_CHAR* pStr);
42 CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr); 42 CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr);
43 CJS_Value(CJS_Runtime* pRuntime, const CJS_Array& array); 43 CJS_Value(CJS_Runtime* pRuntime, const CJS_Array& array);
44 CJS_Value(CJS_Runtime* pRuntime, const CJS_Date& date); 44 CJS_Value(CJS_Runtime* pRuntime, const CJS_Date& date);
45 CJS_Value(CJS_Runtime* pRuntime, const CJS_Object* object);
45 CJS_Value(const CJS_Value& other); 46 CJS_Value(const CJS_Value& other);
46 47
47 ~CJS_Value(); 48 ~CJS_Value();
48 49
49 void SetNull(); 50 void SetNull(CJS_Runtime* pRuntime);
51 void SetValue(const CJS_Value& other);
50 void Attach(v8::Local<v8::Value> pValue); 52 void Attach(v8::Local<v8::Value> pValue);
51 void Detach(); 53 void Detach();
52 54
53 static Type GetValueType(v8::Local<v8::Value> value); 55 static Type GetValueType(v8::Local<v8::Value> value);
54 Type GetType() const { return GetValueType(m_pValue); } 56 Type GetType() const { return GetValueType(m_pValue); }
55 int ToInt() const; 57
56 bool ToBool() const; 58 int ToInt(v8::Isolate* pIsolate) const;
57 double ToDouble() const; 59 bool ToBool(v8::Isolate* pIsolate) const;
58 float ToFloat() const; 60 double ToDouble(v8::Isolate* pIsolate) const;
59 CJS_Object* ToCJSObject() const; 61 float ToFloat(v8::Isolate* pIsolate) const;
60 CFX_WideString ToCFXWideString() const; 62 CJS_Object* ToCJSObject(v8::Isolate* pIsolate) const;
61 CFX_ByteString ToCFXByteString() const; 63 CFX_WideString ToCFXWideString(v8::Isolate* pIsolate) const;
62 v8::Local<v8::Object> ToV8Object() const; 64 CFX_ByteString ToCFXByteString(v8::Isolate* pIsolate) const;
63 v8::Local<v8::Array> ToV8Array() const; 65 v8::Local<v8::Object> ToV8Object(v8::Isolate* pIsolate) const;
64 v8::Local<v8::Value> ToV8Value() const; 66 v8::Local<v8::Array> ToV8Array(v8::Isolate* pIsolate) const;
67 v8::Local<v8::Value> ToV8Value(v8::Isolate* pIsolate) const;
65 68
66 // Replace the current |m_pValue| with a v8::Number if possible 69 // Replace the current |m_pValue| with a v8::Number if possible
67 // to make one from the current |m_pValue|. 70 // to make one from the current |m_pValue|.
68 void MaybeCoerceToNumber(); 71 void MaybeCoerceToNumber(v8::Isolate* pIsolate);
69 72
70 void operator=(int iValue); 73 bool IsArrayObject() const;
71 void operator=(bool bValue); 74 bool IsDateObject() const;
72 void operator=(double val); 75 bool ConvertToArray(v8::Isolate* pIsolate, CJS_Array&) const;
73 void operator=(float val); 76 bool ConvertToDate(v8::Isolate* pIsolate, CJS_Date&) const;
74 void operator=(CJS_Object* val);
75 void operator=(v8::Local<v8::Object> val);
76 void operator=(const CJS_Value& value);
77 void operator=(const FX_CHAR* pStr);
78 void operator=(const FX_WCHAR* pWstr);
79
80 FX_BOOL IsArrayObject() const;
81 FX_BOOL IsDateObject() const;
82 FX_BOOL ConvertToArray(CJS_Array&) const;
83 FX_BOOL ConvertToDate(CJS_Date&) const;
84
85 CJS_Runtime* GetJSRuntime() const { return m_pJSRuntime; }
86 77
87 protected: 78 protected:
88 v8::Local<v8::Value> m_pValue; 79 v8::Local<v8::Value> m_pValue;
89 CJS_Runtime* const m_pJSRuntime;
90 }; 80 };
91 81
92 class CJS_PropValue : public CJS_Value { 82 class CJS_PropValue {
93 public: 83 public:
94 explicit CJS_PropValue(CJS_Runtime* pRuntime); 84 explicit CJS_PropValue(CJS_Runtime* pRuntime);
95 CJS_PropValue(const CJS_Value&); 85 CJS_PropValue(CJS_Runtime* pRuntime, const CJS_Value&);
96 ~CJS_PropValue(); 86 ~CJS_PropValue();
97 87
98 void StartSetting() { m_bIsSetting = true; } 88 void StartSetting() { m_bIsSetting = true; }
99 void StartGetting() { m_bIsSetting = false; } 89 void StartGetting() { m_bIsSetting = false; }
100 bool IsSetting() const { return m_bIsSetting; } 90 bool IsSetting() const { return m_bIsSetting; }
101 bool IsGetting() const { return !m_bIsSetting; } 91 bool IsGetting() const { return !m_bIsSetting; }
92 CJS_Runtime* GetJSRuntime() const { return m_pJSRuntime; }
93 CJS_Value* GetJSValue() { return &m_Value; }
102 94
103 void operator<<(int val); 95 void operator<<(int val);
104 void operator>>(int&) const; 96 void operator>>(int&) const;
105 void operator<<(bool val); 97 void operator<<(bool val);
106 void operator>>(bool&) const; 98 void operator>>(bool&) const;
107 void operator<<(double val); 99 void operator<<(double val);
108 void operator>>(double&) const; 100 void operator>>(double&) const;
109 void operator<<(CJS_Object* pObj); 101 void operator<<(CJS_Object* pObj);
110 void operator>>(CJS_Object*& ppObj) const; 102 void operator>>(CJS_Object*& ppObj) const;
111 void operator<<(CJS_Document* pJsDoc); 103 void operator<<(CJS_Document* pJsDoc);
112 void operator>>(CJS_Document*& ppJsDoc) const; 104 void operator>>(CJS_Document*& ppJsDoc) const;
113 void operator<<(CFX_ByteString); 105 void operator<<(CFX_ByteString);
114 void operator>>(CFX_ByteString&) const; 106 void operator>>(CFX_ByteString&) const;
115 void operator<<(CFX_WideString); 107 void operator<<(CFX_WideString);
116 void operator>>(CFX_WideString&) const; 108 void operator>>(CFX_WideString&) const;
117 void operator<<(const FX_WCHAR* c_string); 109 void operator<<(const FX_WCHAR* c_string);
118 void operator<<(v8::Local<v8::Object>); 110 void operator<<(v8::Local<v8::Object>);
119 void operator>>(v8::Local<v8::Object>&) const; 111 void operator>>(v8::Local<v8::Object>&) const;
120 void operator>>(CJS_Array& array) const; 112 void operator>>(CJS_Array& array) const;
121 void operator<<(CJS_Array& array); 113 void operator<<(CJS_Array& array);
122 void operator<<(CJS_Date& date); 114 void operator<<(CJS_Date& date);
123 void operator>>(CJS_Date& date) const; 115 void operator>>(CJS_Date& date) const;
124 116
125 private: 117 private:
126 bool m_bIsSetting; 118 bool m_bIsSetting;
119 CJS_Value m_Value;
120 CJS_Runtime* const m_pJSRuntime;
127 }; 121 };
128 122
129 class CJS_Array { 123 class CJS_Array {
130 public: 124 public:
131 CJS_Array(); 125 CJS_Array();
132 CJS_Array(const CJS_Array& other); 126 CJS_Array(const CJS_Array& other);
133 virtual ~CJS_Array(); 127 virtual ~CJS_Array();
134 128
135 void Attach(v8::Local<v8::Array> pArray); 129 void Attach(v8::Local<v8::Array> pArray);
136 void GetElement(v8::Isolate* pIsolate, 130 void GetElement(v8::Isolate* pIsolate,
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
209 // names as wchar_t string literals corresponding to each positional argument. 203 // names as wchar_t string literals corresponding to each positional argument.
210 // The result will always contain |nKeywords| value, with unspecified ones 204 // The result will always contain |nKeywords| value, with unspecified ones
211 // being set to type VT_unknown. 205 // being set to type VT_unknown.
212 std::vector<CJS_Value> JS_ExpandKeywordParams( 206 std::vector<CJS_Value> JS_ExpandKeywordParams(
213 CJS_Runtime* pRuntime, 207 CJS_Runtime* pRuntime,
214 const std::vector<CJS_Value>& originals, 208 const std::vector<CJS_Value>& originals,
215 size_t nKeywords, 209 size_t nKeywords,
216 ...); 210 ...);
217 211
218 #endif // FPDFSDK_JAVASCRIPT_JS_VALUE_H_ 212 #endif // FPDFSDK_JAVASCRIPT_JS_VALUE_H_
OLDNEW
« no previous file with comments | « fpdfsdk/javascript/JS_Object.cpp ('k') | fpdfsdk/javascript/JS_Value.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698