| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Google Inc. All rights reserved. | 2 * Copyright (C) 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 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 226 | 226 |
| 227 m_mode = DoNotExternalize; | 227 m_mode = DoNotExternalize; |
| 228 v8::TryCatch block; | 228 v8::TryCatch block; |
| 229 m_v8Object = m_v8Object->ToString(); | 229 m_v8Object = m_v8Object->ToString(); |
| 230 // Handle the case where an exception is thrown as part of invoking
toString on the object. | 230 // Handle the case where an exception is thrown as part of invoking
toString on the object. |
| 231 if (block.HasCaught()) { | 231 if (block.HasCaught()) { |
| 232 block.ReThrow(); | 232 block.ReThrow(); |
| 233 return false; | 233 return false; |
| 234 } | 234 } |
| 235 | 235 |
| 236 // This path is unexpected. However there is hypothesis that it |
| 237 // might be combination of v8 and v8 bindings bugs. For now |
| 238 // just bailout as we'll crash if attempt to convert empty handle in
to a string. |
| 239 if (m_v8Object.IsEmpty()) { |
| 240 ASSERT_NOT_REACHED(); |
| 241 return false; |
| 242 } |
| 243 |
| 236 return true; | 244 return true; |
| 237 } | 245 } |
| 238 | 246 |
| 239 v8::Local<v8::Value> object() { return m_v8Object; } | 247 v8::Local<v8::Value> object() { return m_v8Object; } |
| 240 | 248 |
| 241 void setString(String string) | 249 void setString(String string) |
| 242 { | 250 { |
| 243 m_string = string; | 251 m_string = string; |
| 244 m_v8Object.Clear(); // To signal that String is ready. | 252 m_v8Object.Clear(); // To signal that String is ready. |
| 245 } | 253 } |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 296 setString(String()); | 304 setString(String()); |
| 297 return true; | 305 return true; |
| 298 } | 306 } |
| 299 | 307 |
| 300 return V8ParameterBase::prepareBase(); | 308 return V8ParameterBase::prepareBase(); |
| 301 } | 309 } |
| 302 | 310 |
| 303 } // namespace WebCore | 311 } // namespace WebCore |
| 304 | 312 |
| 305 #endif // V8Binding_h | 313 #endif // V8Binding_h |
| OLD | NEW |