Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008, 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 2008, 2009 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 31 #ifndef ScriptValue_h | 31 #ifndef ScriptValue_h |
| 32 #define ScriptValue_h | 32 #define ScriptValue_h |
| 33 | 33 |
| 34 #include "bindings/common/AbstractScriptValue.h" | 34 #include "bindings/common/AbstractScriptValue.h" |
| 35 #include "bindings/dart/DartScriptValue.h" | 35 #include "bindings/dart/DartScriptValue.h" |
| 36 #include "bindings/v8/SharedPersistent.h" | 36 #include "bindings/v8/SharedPersistent.h" |
| 37 #include "bindings/v8/V8ScriptValue.h" | 37 #include "bindings/v8/V8ScriptValue.h" |
| 38 #include "wtf/PassRefPtr.h" | 38 #include "wtf/PassRefPtr.h" |
| 39 #include "wtf/RefPtr.h" | 39 #include "wtf/RefPtr.h" |
| 40 #include "wtf/text/WTFString.h" | 40 #include "wtf/text/WTFString.h" |
| 41 #include <dart_debugger_api.h> | |
| 41 #include <v8.h> | 42 #include <v8.h> |
| 42 | 43 |
| 43 namespace WebCore { | 44 namespace WebCore { |
| 44 | 45 |
| 45 class JSONValue; | 46 class JSONValue; |
| 46 class ScriptState; | 47 class ScriptState; |
| 47 | 48 |
| 48 // Indirection to avoid re-writing the parts of Blink that pass ScriptValue by | 49 // Indirection to avoid re-writing the parts of Blink that pass ScriptValue by |
| 49 // value. | 50 // value. |
| 50 // FIXME: Should change pass by value uses to pass by reference and use | 51 // FIXME: Should change pass by value uses to pass by reference and use |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 177 | 178 |
| 178 AbstractScriptValue* scriptValue() const | 179 AbstractScriptValue* scriptValue() const |
| 179 { | 180 { |
| 180 return m_implScriptValue.get(); | 181 return m_implScriptValue.get(); |
| 181 } | 182 } |
| 182 | 183 |
| 183 private: | 184 private: |
| 184 RefPtr<AbstractScriptValue> m_implScriptValue; | 185 RefPtr<AbstractScriptValue> m_implScriptValue; |
| 185 }; | 186 }; |
| 186 | 187 |
| 188 // FIXMEDART: where should we define this class that holds either a V8 or Dart | |
| 189 // stack trace? | |
| 190 class StackTrace { | |
| 191 public: | |
| 192 explicit StackTrace() | |
| 193 { | |
| 194 m_isJavaScript = true; | |
| 195 m_dartStackTrace = 0; | |
| 196 } | |
| 197 | |
| 198 explicit StackTrace(const ScriptValue& stackTrace) | |
| 199 { | |
| 200 m_isJavaScript = true; | |
| 201 m_scriptValue = stackTrace; | |
| 202 m_dartStackTrace = 0; | |
| 203 } | |
| 204 | |
| 205 explicit StackTrace(Dart_StackTrace stackTrace) | |
| 206 { | |
| 207 m_isJavaScript = false; | |
| 208 m_dartStackTrace = stackTrace; | |
| 209 } | |
| 210 | |
| 211 bool isJavaScript() const | |
| 212 { | |
| 213 return m_isJavaScript; | |
| 214 } | |
| 215 | |
| 216 ScriptValue asJavaScript() const | |
| 217 { | |
|
vsm
2014/06/03 14:24:49
ASSERT(m_isJavaScript) ?
Jacob
2014/06/03 20:23:12
Done.
| |
| 218 return m_scriptValue; | |
| 219 } | |
| 220 | |
| 221 Dart_StackTrace asDart() const | |
| 222 { | |
|
vsm
2014/06/03 14:24:49
ASSERT(!m_isJavaScript) ?
Jacob
2014/06/03 20:23:12
Done.
| |
| 223 return m_dartStackTrace; | |
| 224 } | |
| 225 | |
| 226 bool isNull() const | |
| 227 { | |
| 228 return m_isJavaScript ? m_scriptValue.isNull() : !m_dartStackTrace; | |
| 229 } | |
| 230 | |
| 231 private: | |
| 232 bool m_isJavaScript; | |
| 233 ScriptValue m_scriptValue; | |
|
rmacnak
2014/06/03 17:32:34
RefPtr<V8ScriptValue>
Jacob
2014/06/03 20:23:13
Done.
| |
| 234 Dart_StackTrace m_dartStackTrace; | |
| 235 }; | |
| 236 | |
| 237 // FIXMEDART: where should we define this class that holds either a V8 or Dart | |
| 238 // activation frame? | |
| 239 class ActivationFrame { | |
| 240 public: | |
| 241 explicit ActivationFrame() | |
| 242 { | |
| 243 m_isJavaScript = true; | |
| 244 m_dartActivationFrame = 0; | |
| 245 } | |
| 246 | |
| 247 explicit ActivationFrame(const ScriptValue& activationFrame) | |
| 248 { | |
| 249 m_isJavaScript = true; | |
| 250 m_scriptValue = activationFrame; | |
| 251 m_dartActivationFrame = 0; | |
| 252 } | |
| 253 | |
| 254 explicit ActivationFrame(Dart_ActivationFrame activationFrame) | |
| 255 { | |
| 256 m_isJavaScript = false; | |
| 257 m_dartActivationFrame = activationFrame; | |
| 258 } | |
| 259 | |
| 260 bool isJavaScript() const { return m_isJavaScript; } | |
| 261 ScriptValue asJavaScript() const { return m_scriptValue; } | |
| 262 Dart_ActivationFrame asDart() const { return m_dartActivationFrame; } | |
|
vsm
2014/06/03 14:24:49
Ditto on asserts for these two.
Jacob
2014/06/03 20:23:13
Done.
| |
| 263 | |
| 264 private: | |
| 265 bool m_isJavaScript; | |
| 266 ScriptValue m_scriptValue; | |
|
rmacnak
2014/06/03 17:32:34
RefPtr<V8ScriptValue>
Jacob
2014/06/03 20:23:12
Done.
| |
| 267 Dart_ActivationFrame m_dartActivationFrame; | |
| 268 }; | |
| 269 | |
| 187 } // namespace WebCore | 270 } // namespace WebCore |
| 188 | 271 |
| 189 #endif // ScriptValue_h | 272 #endif // ScriptValue_h |
| OLD | NEW |