15a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines// Copyright 2010 the V8 project authors. All rights reserved.
25a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines// Use of this source code is governed by a BSD-style license that can be
35a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines// found in the LICENSE file.
45a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines
55a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines#ifndef V8_EXTENSIONS_EXTERNALIZE_STRING_EXTENSION_H_
65a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines#define V8_EXTENSIONS_EXTERNALIZE_STRING_EXTENSION_H_
75a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines
85a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines#include "include/v8.h"
95a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines
105a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hinesnamespace v8 {
115a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hinesnamespace internal {
125a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines
135a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hinesclass ExternalizeStringExtension : public v8::Extension {
145a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines public:
155a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines  ExternalizeStringExtension() : v8::Extension("v8/externalize", kSource) {}
165a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines  virtual v8::Local<v8::FunctionTemplate> GetNativeFunctionTemplate(
175a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines      v8::Isolate* isolate, v8::Local<v8::String> name);
185a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines  static void Externalize(const v8::FunctionCallbackInfo<v8::Value>& args);
195a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines  static void IsOneByte(const v8::FunctionCallbackInfo<v8::Value>& args);
205a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines
215a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines private:
225a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines  static const char* const kSource;
235a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines};
245a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines
255a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines}  // namespace internal
265a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines}  // namespace v8
275a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines
285a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines#endif  // V8_EXTENSIONS_EXTERNALIZE_STRING_EXTENSION_H_
295a47020542c52af3e879c1cd67674ca979ff0a18Stephen Hines