diff options
Diffstat (limited to 'chromium/v8/src/extensions/externalize-string-extension.cc')
-rw-r--r-- | chromium/v8/src/extensions/externalize-string-extension.cc | 47 |
1 files changed, 10 insertions, 37 deletions
diff --git a/chromium/v8/src/extensions/externalize-string-extension.cc b/chromium/v8/src/extensions/externalize-string-extension.cc index edc7dd8052c..c3b1ec756d9 100644 --- a/chromium/v8/src/extensions/externalize-string-extension.cc +++ b/chromium/v8/src/extensions/externalize-string-extension.cc @@ -1,31 +1,8 @@ // Copyright 2010 the V8 project authors. All rights reserved. -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following -// disclaimer in the documentation and/or other materials provided -// with the distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived -// from this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -#include "externalize-string-extension.h" +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "src/extensions/externalize-string-extension.h" namespace v8 { namespace internal { @@ -64,10 +41,12 @@ v8::Handle<v8::FunctionTemplate> ExternalizeStringExtension::GetNativeFunctionTemplate( v8::Isolate* isolate, v8::Handle<v8::String> str) { if (strcmp(*v8::String::Utf8Value(str), "externalizeString") == 0) { - return v8::FunctionTemplate::New(ExternalizeStringExtension::Externalize); + return v8::FunctionTemplate::New(isolate, + ExternalizeStringExtension::Externalize); } else { ASSERT(strcmp(*v8::String::Utf8Value(str), "isAsciiString") == 0); - return v8::FunctionTemplate::New(ExternalizeStringExtension::IsAscii); + return v8::FunctionTemplate::New(isolate, + ExternalizeStringExtension::IsAscii); } } @@ -105,7 +84,7 @@ void ExternalizeStringExtension::Externalize( SimpleAsciiStringResource* resource = new SimpleAsciiStringResource( reinterpret_cast<char*>(data), string->length()); result = string->MakeExternal(resource); - if (result && !string->IsInternalizedString()) { + if (result) { i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate()); isolate->heap()->external_string_table()->AddString(*string); } @@ -116,7 +95,7 @@ void ExternalizeStringExtension::Externalize( SimpleTwoByteStringResource* resource = new SimpleTwoByteStringResource( data, string->length()); result = string->MakeExternal(resource); - if (result && !string->IsInternalizedString()) { + if (result) { i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate()); isolate->heap()->external_string_table()->AddString(*string); } @@ -143,10 +122,4 @@ void ExternalizeStringExtension::IsAscii( args.GetReturnValue().Set(is_one_byte); } - -void ExternalizeStringExtension::Register() { - static ExternalizeStringExtension externalize_extension; - static v8::DeclareExtension declaration(&externalize_extension); -} - } } // namespace v8::internal |