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

Side by Side Diff: Source/WebCore/bindings/v8/V8Binding.cpp

Issue 6368135: Merge 77597 - 2011-02-03 Anton Muhin <antonm@chromium.org>... (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/648/
Patch Set: Created 9 years, 10 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 | « Source/WebCore/bindings/v8/V8Binding.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 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 394 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 if (object->IsInt32()) 405 if (object->IsInt32())
406 return int32ToWebCoreString(object->Int32Value()); 406 return int32ToWebCoreString(object->Int32Value());
407 407
408 v8::TryCatch block; 408 v8::TryCatch block;
409 v8::Handle<v8::String> v8String = object->ToString(); 409 v8::Handle<v8::String> v8String = object->ToString();
410 // Handle the case where an exception is thrown as part of invoking toString on the object. 410 // Handle the case where an exception is thrown as part of invoking toString on the object.
411 if (block.HasCaught()) { 411 if (block.HasCaught()) {
412 throwError(block.Exception()); 412 throwError(block.Exception());
413 return StringImpl::empty(); 413 return StringImpl::empty();
414 } 414 }
415 // This path is unexpected. However there is hypothesis that it
416 // might be combination of v8 and v8 bindings bugs. For now
417 // just bailout as we'll crash if attempt to convert empty handle into a str ing.
418 if (v8String.IsEmpty()) {
419 ASSERT_NOT_REACHED();
420 return StringImpl::empty();
421 }
415 return v8StringToWebCoreString<String>(v8String, DoNotExternalize); 422 return v8StringToWebCoreString<String>(v8String, DoNotExternalize);
416 } 423 }
417 424
418 AtomicString v8NonStringValueToAtomicWebCoreString(v8::Handle<v8::Value> object) 425 AtomicString v8NonStringValueToAtomicWebCoreString(v8::Handle<v8::Value> object)
419 { 426 {
420 ASSERT(!object->IsString()); 427 ASSERT(!object->IsString());
421 return AtomicString(v8NonStringValueToWebCoreString(object)); 428 return AtomicString(v8NonStringValueToWebCoreString(object));
422 } 429 }
423 430
424 static bool stringImplCacheEnabled = false; 431 static bool stringImplCacheEnabled = false;
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
572 void setElementStringAttr(const v8::AccessorInfo& info, 579 void setElementStringAttr(const v8::AccessorInfo& info,
573 const QualifiedName& name, 580 const QualifiedName& name,
574 v8::Local<v8::Value> value) 581 v8::Local<v8::Value> value)
575 { 582 {
576 Element* imp = V8Element::toNative(info.Holder()); 583 Element* imp = V8Element::toNative(info.Holder());
577 AtomicString v = toAtomicWebCoreStringWithNullCheck(value); 584 AtomicString v = toAtomicWebCoreStringWithNullCheck(value);
578 imp->setAttribute(name, v); 585 imp->setAttribute(name, v);
579 } 586 }
580 587
581 } // namespace WebCore 588 } // namespace WebCore
OLDNEW
« no previous file with comments | « Source/WebCore/bindings/v8/V8Binding.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698