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

Side by Side Diff: include/v8.h

Issue 559913002: Rename ascii to one-byte where applicable. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 3 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | src/accessors.cc » ('j') | src/jsregexp.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** \mainpage V8 API Reference Guide 5 /** \mainpage V8 API Reference Guide
6 * 6 *
7 * V8 is Google's open source JavaScript engine. 7 * V8 is Google's open source JavaScript engine.
8 * 8 *
9 * This set of documents provides reference material generated from the 9 * This set of documents provides reference material generated from the
10 * V8 header file, include/v8.h. 10 * V8 header file, include/v8.h.
(...skipping 1630 matching lines...) Expand 10 before | Expand all | Expand 10 after
1641 1641
1642 1642
1643 /** 1643 /**
1644 * A JavaScript string value (ECMA-262, 4.3.17). 1644 * A JavaScript string value (ECMA-262, 4.3.17).
1645 */ 1645 */
1646 class V8_EXPORT String : public Name { 1646 class V8_EXPORT String : public Name {
1647 public: 1647 public:
1648 enum Encoding { 1648 enum Encoding {
1649 UNKNOWN_ENCODING = 0x1, 1649 UNKNOWN_ENCODING = 0x1,
1650 TWO_BYTE_ENCODING = 0x0, 1650 TWO_BYTE_ENCODING = 0x0,
1651 ASCII_ENCODING = 0x4, 1651 ASCII_ENCODING = 0x4, // TODO(yangguo): deprecate this.
1652 ONE_BYTE_ENCODING = 0x4 1652 ONE_BYTE_ENCODING = 0x4
1653 }; 1653 };
1654 /** 1654 /**
1655 * Returns the number of characters in this string. 1655 * Returns the number of characters in this string.
1656 */ 1656 */
1657 int Length() const; 1657 int Length() const;
1658 1658
1659 /** 1659 /**
1660 * Returns the number of bytes in the UTF-8 encoded 1660 * Returns the number of bytes in the UTF-8 encoded
1661 * representation of this string. 1661 * representation of this string.
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1697 * \param options Various options that might affect performance of this or 1697 * \param options Various options that might affect performance of this or
1698 * subsequent operations. 1698 * subsequent operations.
1699 * \return The number of characters copied to the buffer excluding the null 1699 * \return The number of characters copied to the buffer excluding the null
1700 * terminator. For WriteUtf8: The number of bytes copied to the buffer 1700 * terminator. For WriteUtf8: The number of bytes copied to the buffer
1701 * including the null terminator (if written). 1701 * including the null terminator (if written).
1702 */ 1702 */
1703 enum WriteOptions { 1703 enum WriteOptions {
1704 NO_OPTIONS = 0, 1704 NO_OPTIONS = 0,
1705 HINT_MANY_WRITES_EXPECTED = 1, 1705 HINT_MANY_WRITES_EXPECTED = 1,
1706 NO_NULL_TERMINATION = 2, 1706 NO_NULL_TERMINATION = 2,
1707 PRESERVE_ASCII_NULL = 4, 1707 PRESERVE_ASCII_NULL = 4, // TODO(yangguo): deprecate this.
1708 PRESERVE_ONE_BYTE_NULL = 4,
1708 // Used by WriteUtf8 to replace orphan surrogate code units with the 1709 // Used by WriteUtf8 to replace orphan surrogate code units with the
1709 // unicode replacement character. Needs to be set to guarantee valid UTF-8 1710 // unicode replacement character. Needs to be set to guarantee valid UTF-8
1710 // output. 1711 // output.
1711 REPLACE_INVALID_UTF8 = 8 1712 REPLACE_INVALID_UTF8 = 8
1712 }; 1713 };
1713 1714
1714 // 16-bit character codes. 1715 // 16-bit character codes.
1715 int Write(uint16_t* buffer, 1716 int Write(uint16_t* buffer,
1716 int start = 0, 1717 int start = 0,
1717 int length = -1, 1718 int length = -1,
(...skipping 13 matching lines...) Expand all
1731 * A zero length string. 1732 * A zero length string.
1732 */ 1733 */
1733 V8_INLINE static v8::Local<v8::String> Empty(Isolate* isolate); 1734 V8_INLINE static v8::Local<v8::String> Empty(Isolate* isolate);
1734 1735
1735 /** 1736 /**
1736 * Returns true if the string is external 1737 * Returns true if the string is external
1737 */ 1738 */
1738 bool IsExternal() const; 1739 bool IsExternal() const;
1739 1740
1740 /** 1741 /**
1741 * Returns true if the string is both external and ASCII 1742 * Returns true if the string is both external and one-byte.
1742 */ 1743 */
1743 bool IsExternalAscii() const; 1744 bool IsExternalOneByte() const;
1745
1746 // TODO(yangguo): deprecate this.
1747 bool IsExternalAscii() const { return IsExternalOneByte(); }
1744 1748
1745 class V8_EXPORT ExternalStringResourceBase { // NOLINT 1749 class V8_EXPORT ExternalStringResourceBase { // NOLINT
1746 public: 1750 public:
1747 virtual ~ExternalStringResourceBase() {} 1751 virtual ~ExternalStringResourceBase() {}
1748 1752
1749 protected: 1753 protected:
1750 ExternalStringResourceBase() {} 1754 ExternalStringResourceBase() {}
1751 1755
1752 /** 1756 /**
1753 * Internally V8 will call this Dispose method when the external string 1757 * Internally V8 will call this Dispose method when the external string
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
1788 /** 1792 /**
1789 * The length of the string. That is, the number of two-byte characters. 1793 * The length of the string. That is, the number of two-byte characters.
1790 */ 1794 */
1791 virtual size_t length() const = 0; 1795 virtual size_t length() const = 0;
1792 1796
1793 protected: 1797 protected:
1794 ExternalStringResource() {} 1798 ExternalStringResource() {}
1795 }; 1799 };
1796 1800
1797 /** 1801 /**
1798 * An ExternalAsciiStringResource is a wrapper around an ASCII 1802 * An ExternalOneByteStringResource is a wrapper around an one-byte
1799 * string buffer that resides outside V8's heap. Implement an 1803 * string buffer that resides outside V8's heap. Implement an
1800 * ExternalAsciiStringResource to manage the life cycle of the 1804 * ExternalOneByteStringResource to manage the life cycle of the
1801 * underlying buffer. Note that the string data must be immutable 1805 * underlying buffer. Note that the string data must be immutable
1802 * and that the data must be strict (7-bit) ASCII, not Latin-1 or 1806 * and that the data must be Latin-1 and not UTF-8, which would require
1803 * UTF-8, which would require special treatment internally in the 1807 * special treatment internally in the engine and do not allow efficient
1804 * engine and, in the case of UTF-8, do not allow efficient indexing. 1808 * indexing. Use String::New or convert to 16 bit data for non-Latin1.
1805 * Use String::New or convert to 16 bit data for non-ASCII.
1806 */ 1809 */
1807 1810
1808 class V8_EXPORT ExternalAsciiStringResource 1811 class V8_EXPORT ExternalOneByteStringResource
1809 : public ExternalStringResourceBase { 1812 : public ExternalStringResourceBase {
1810 public: 1813 public:
1811 /** 1814 /**
1812 * Override the destructor to manage the life cycle of the underlying 1815 * Override the destructor to manage the life cycle of the underlying
1813 * buffer. 1816 * buffer.
1814 */ 1817 */
1815 virtual ~ExternalAsciiStringResource() {} 1818 virtual ~ExternalOneByteStringResource() {}
1816 /** The string data from the underlying buffer.*/ 1819 /** The string data from the underlying buffer.*/
1817 virtual const char* data() const = 0; 1820 virtual const char* data() const = 0;
1818 /** The number of ASCII characters in the string.*/ 1821 /** The number of Latin-1 characters in the string.*/
1819 virtual size_t length() const = 0; 1822 virtual size_t length() const = 0;
1820 protected: 1823 protected:
1821 ExternalAsciiStringResource() {} 1824 ExternalOneByteStringResource() {}
1822 }; 1825 };
1823 1826
1824 typedef ExternalAsciiStringResource ExternalOneByteStringResource; 1827 typedef ExternalOneByteStringResource ExternalAsciiStringResource;
1825 1828
1826 /** 1829 /**
1827 * If the string is an external string, return the ExternalStringResourceBase 1830 * If the string is an external string, return the ExternalStringResourceBase
1828 * regardless of the encoding, otherwise return NULL. The encoding of the 1831 * regardless of the encoding, otherwise return NULL. The encoding of the
1829 * string is returned in encoding_out. 1832 * string is returned in encoding_out.
1830 */ 1833 */
1831 V8_INLINE ExternalStringResourceBase* GetExternalStringResourceBase( 1834 V8_INLINE ExternalStringResourceBase* GetExternalStringResourceBase(
1832 Encoding* encoding_out) const; 1835 Encoding* encoding_out) const;
1833 1836
1834 /** 1837 /**
1835 * Get the ExternalStringResource for an external string. Returns 1838 * Get the ExternalStringResource for an external string. Returns
1836 * NULL if IsExternal() doesn't return true. 1839 * NULL if IsExternal() doesn't return true.
1837 */ 1840 */
1838 V8_INLINE ExternalStringResource* GetExternalStringResource() const; 1841 V8_INLINE ExternalStringResource* GetExternalStringResource() const;
1839 1842
1840 /** 1843 /**
1841 * Get the ExternalAsciiStringResource for an external ASCII string. 1844 * Get the ExternalOneByteStringResource for an external one-byte string.
1842 * Returns NULL if IsExternalAscii() doesn't return true. 1845 * Returns NULL if IsExternalOneByte() doesn't return true.
1843 */ 1846 */
1844 const ExternalAsciiStringResource* GetExternalAsciiStringResource() const; 1847 const ExternalOneByteStringResource* GetExternalOneByteStringResource() const;
1848
1849 // TODO(yangguo): deprecate this.
1850 const ExternalAsciiStringResource* GetExternalAsciiStringResource() const {
1851 return GetExternalOneByteStringResource();
1852 }
1845 1853
1846 V8_INLINE static String* Cast(v8::Value* obj); 1854 V8_INLINE static String* Cast(v8::Value* obj);
1847 1855
1848 enum NewStringType { 1856 enum NewStringType {
1849 kNormalString, kInternalizedString, kUndetectableString 1857 kNormalString, kInternalizedString, kUndetectableString
1850 }; 1858 };
1851 1859
1852 /** Allocates a new string from UTF-8 data.*/ 1860 /** Allocates a new string from UTF-8 data.*/
1853 static Local<String> NewFromUtf8(Isolate* isolate, 1861 static Local<String> NewFromUtf8(Isolate* isolate,
1854 const char* data, 1862 const char* data,
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1891 * in place so that existing references to this string in the JavaScript heap 1899 * in place so that existing references to this string in the JavaScript heap
1892 * will use the external string resource. The external string resource's 1900 * will use the external string resource. The external string resource's
1893 * character contents need to be equivalent to this string. 1901 * character contents need to be equivalent to this string.
1894 * Returns true if the string has been changed to be an external string. 1902 * Returns true if the string has been changed to be an external string.
1895 * The string is not modified if the operation fails. See NewExternal for 1903 * The string is not modified if the operation fails. See NewExternal for
1896 * information on the lifetime of the resource. 1904 * information on the lifetime of the resource.
1897 */ 1905 */
1898 bool MakeExternal(ExternalStringResource* resource); 1906 bool MakeExternal(ExternalStringResource* resource);
1899 1907
1900 /** 1908 /**
1901 * Creates a new external string using the ASCII data defined in the given 1909 * Creates a new external string using the one-byte data defined in the given
1902 * resource. When the external string is no longer live on V8's heap the 1910 * resource. When the external string is no longer live on V8's heap the
1903 * resource will be disposed by calling its Dispose method. The caller of 1911 * resource will be disposed by calling its Dispose method. The caller of
1904 * this function should not otherwise delete or modify the resource. Neither 1912 * this function should not otherwise delete or modify the resource. Neither
1905 * should the underlying buffer be deallocated or modified except through the 1913 * should the underlying buffer be deallocated or modified except through the
1906 * destructor of the external string resource. 1914 * destructor of the external string resource.
1907 */ 1915 */
1908 static Local<String> NewExternal(Isolate* isolate, 1916 static Local<String> NewExternal(Isolate* isolate,
1909 ExternalAsciiStringResource* resource); 1917 ExternalOneByteStringResource* resource);
1910 1918
1911 /** 1919 /**
1912 * Associate an external string resource with this string by transforming it 1920 * Associate an external string resource with this string by transforming it
1913 * in place so that existing references to this string in the JavaScript heap 1921 * in place so that existing references to this string in the JavaScript heap
1914 * will use the external string resource. The external string resource's 1922 * will use the external string resource. The external string resource's
1915 * character contents need to be equivalent to this string. 1923 * character contents need to be equivalent to this string.
1916 * Returns true if the string has been changed to be an external string. 1924 * Returns true if the string has been changed to be an external string.
1917 * The string is not modified if the operation fails. See NewExternal for 1925 * The string is not modified if the operation fails. See NewExternal for
1918 * information on the lifetime of the resource. 1926 * information on the lifetime of the resource.
1919 */ 1927 */
1920 bool MakeExternal(ExternalAsciiStringResource* resource); 1928 bool MakeExternal(ExternalOneByteStringResource* resource);
1921 1929
1922 /** 1930 /**
1923 * Returns true if this string can be made external. 1931 * Returns true if this string can be made external.
1924 */ 1932 */
1925 bool CanMakeExternal(); 1933 bool CanMakeExternal();
1926 1934
1927 /** 1935 /**
1928 * Converts an object to a UTF-8-encoded character array. Useful if 1936 * Converts an object to a UTF-8-encoded character array. Useful if
1929 * you want to print the object. If conversion to a string fails 1937 * you want to print the object. If conversion to a string fails
1930 * (e.g. due to an exception in the toString() method of the object) 1938 * (e.g. due to an exception in the toString() method of the object)
(...skipping 1936 matching lines...) Expand 10 before | Expand all | Expand 10 after
3867 static Local<TypeSwitch> New(Handle<FunctionTemplate> type); 3875 static Local<TypeSwitch> New(Handle<FunctionTemplate> type);
3868 static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]); 3876 static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]);
3869 int match(Handle<Value> value); 3877 int match(Handle<Value> value);
3870 private: 3878 private:
3871 TypeSwitch(); 3879 TypeSwitch();
3872 }; 3880 };
3873 3881
3874 3882
3875 // --- Extensions --- 3883 // --- Extensions ---
3876 3884
3877 class V8_EXPORT ExternalAsciiStringResourceImpl 3885 class V8_EXPORT ExternalOneByteStringResourceImpl
3878 : public String::ExternalAsciiStringResource { 3886 : public String::ExternalOneByteStringResource {
3879 public: 3887 public:
3880 ExternalAsciiStringResourceImpl() : data_(0), length_(0) {} 3888 ExternalOneByteStringResourceImpl() : data_(0), length_(0) {}
3881 ExternalAsciiStringResourceImpl(const char* data, size_t length) 3889 ExternalOneByteStringResourceImpl(const char* data, size_t length)
3882 : data_(data), length_(length) {} 3890 : data_(data), length_(length) {}
3883 const char* data() const { return data_; } 3891 const char* data() const { return data_; }
3884 size_t length() const { return length_; } 3892 size_t length() const { return length_; }
3885 3893
3886 private: 3894 private:
3887 const char* data_; 3895 const char* data_;
3888 size_t length_; 3896 size_t length_;
3889 }; 3897 };
3890 3898
3891 /** 3899 /**
3892 * Ignore 3900 * Ignore
3893 */ 3901 */
3894 class V8_EXPORT Extension { // NOLINT 3902 class V8_EXPORT Extension { // NOLINT
3895 public: 3903 public:
3896 // Note that the strings passed into this constructor must live as long 3904 // Note that the strings passed into this constructor must live as long
3897 // as the Extension itself. 3905 // as the Extension itself.
3898 Extension(const char* name, 3906 Extension(const char* name,
3899 const char* source = 0, 3907 const char* source = 0,
3900 int dep_count = 0, 3908 int dep_count = 0,
3901 const char** deps = 0, 3909 const char** deps = 0,
3902 int source_length = -1); 3910 int source_length = -1);
3903 virtual ~Extension() { } 3911 virtual ~Extension() { }
3904 virtual v8::Handle<v8::FunctionTemplate> GetNativeFunctionTemplate( 3912 virtual v8::Handle<v8::FunctionTemplate> GetNativeFunctionTemplate(
3905 v8::Isolate* isolate, v8::Handle<v8::String> name) { 3913 v8::Isolate* isolate, v8::Handle<v8::String> name) {
3906 return v8::Handle<v8::FunctionTemplate>(); 3914 return v8::Handle<v8::FunctionTemplate>();
3907 } 3915 }
3908 3916
3909 const char* name() const { return name_; } 3917 const char* name() const { return name_; }
3910 size_t source_length() const { return source_length_; } 3918 size_t source_length() const { return source_length_; }
3911 const String::ExternalAsciiStringResource* source() const { 3919 const String::ExternalOneByteStringResource* source() const {
3912 return &source_; } 3920 return &source_; }
3913 int dependency_count() { return dep_count_; } 3921 int dependency_count() { return dep_count_; }
3914 const char** dependencies() { return deps_; } 3922 const char** dependencies() { return deps_; }
3915 void set_auto_enable(bool value) { auto_enable_ = value; } 3923 void set_auto_enable(bool value) { auto_enable_ = value; }
3916 bool auto_enable() { return auto_enable_; } 3924 bool auto_enable() { return auto_enable_; }
3917 3925
3918 private: 3926 private:
3919 const char* name_; 3927 const char* name_;
3920 size_t source_length_; // expected to initialize before source_ 3928 size_t source_length_; // expected to initialize before source_
3921 ExternalAsciiStringResourceImpl source_; 3929 ExternalOneByteStringResourceImpl source_;
3922 int dep_count_; 3930 int dep_count_;
3923 const char** deps_; 3931 const char** deps_;
3924 bool auto_enable_; 3932 bool auto_enable_;
3925 3933
3926 // Disallow copying and assigning. 3934 // Disallow copying and assigning.
3927 Extension(const Extension&); 3935 Extension(const Extension&);
3928 void operator=(const Extension&); 3936 void operator=(const Extension&);
3929 }; 3937 };
3930 3938
3931 3939
(...skipping 1742 matching lines...) Expand 10 before | Expand all | Expand 10 after
5674 5682
5675 static const int kOddballKindOffset = 3 * kApiPointerSize; 5683 static const int kOddballKindOffset = 3 * kApiPointerSize;
5676 static const int kForeignAddressOffset = kApiPointerSize; 5684 static const int kForeignAddressOffset = kApiPointerSize;
5677 static const int kJSObjectHeaderSize = 3 * kApiPointerSize; 5685 static const int kJSObjectHeaderSize = 3 * kApiPointerSize;
5678 static const int kFixedArrayHeaderSize = 2 * kApiPointerSize; 5686 static const int kFixedArrayHeaderSize = 2 * kApiPointerSize;
5679 static const int kContextHeaderSize = 2 * kApiPointerSize; 5687 static const int kContextHeaderSize = 2 * kApiPointerSize;
5680 static const int kContextEmbedderDataIndex = 95; 5688 static const int kContextEmbedderDataIndex = 95;
5681 static const int kFullStringRepresentationMask = 0x07; 5689 static const int kFullStringRepresentationMask = 0x07;
5682 static const int kStringEncodingMask = 0x4; 5690 static const int kStringEncodingMask = 0x4;
5683 static const int kExternalTwoByteRepresentationTag = 0x02; 5691 static const int kExternalTwoByteRepresentationTag = 0x02;
5684 static const int kExternalAsciiRepresentationTag = 0x06; 5692 static const int kExternalOneByteRepresentationTag = 0x06;
5685 5693
5686 static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize; 5694 static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize;
5687 static const int kAmountOfExternalAllocatedMemoryOffset = 5695 static const int kAmountOfExternalAllocatedMemoryOffset =
5688 4 * kApiPointerSize; 5696 4 * kApiPointerSize;
5689 static const int kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset = 5697 static const int kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset =
5690 kAmountOfExternalAllocatedMemoryOffset + kApiInt64Size; 5698 kAmountOfExternalAllocatedMemoryOffset + kApiInt64Size;
5691 static const int kIsolateRootsOffset = 5699 static const int kIsolateRootsOffset =
5692 kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset + kApiInt64Size + 5700 kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset + kApiInt64Size +
5693 kApiPointerSize; 5701 kApiPointerSize;
5694 static const int kUndefinedValueRootIndex = 5; 5702 static const int kUndefinedValueRootIndex = 5;
(...skipping 650 matching lines...) Expand 10 before | Expand all | Expand 10 after
6345 6353
6346 6354
6347 String::ExternalStringResourceBase* String::GetExternalStringResourceBase( 6355 String::ExternalStringResourceBase* String::GetExternalStringResourceBase(
6348 String::Encoding* encoding_out) const { 6356 String::Encoding* encoding_out) const {
6349 typedef internal::Object O; 6357 typedef internal::Object O;
6350 typedef internal::Internals I; 6358 typedef internal::Internals I;
6351 O* obj = *reinterpret_cast<O* const*>(this); 6359 O* obj = *reinterpret_cast<O* const*>(this);
6352 int type = I::GetInstanceType(obj) & I::kFullStringRepresentationMask; 6360 int type = I::GetInstanceType(obj) & I::kFullStringRepresentationMask;
6353 *encoding_out = static_cast<Encoding>(type & I::kStringEncodingMask); 6361 *encoding_out = static_cast<Encoding>(type & I::kStringEncodingMask);
6354 ExternalStringResourceBase* resource = NULL; 6362 ExternalStringResourceBase* resource = NULL;
6355 if (type == I::kExternalAsciiRepresentationTag || 6363 if (type == I::kExternalOneByteRepresentationTag ||
6356 type == I::kExternalTwoByteRepresentationTag) { 6364 type == I::kExternalTwoByteRepresentationTag) {
6357 void* value = I::ReadField<void*>(obj, I::kStringResourceOffset); 6365 void* value = I::ReadField<void*>(obj, I::kStringResourceOffset);
6358 resource = static_cast<ExternalStringResourceBase*>(value); 6366 resource = static_cast<ExternalStringResourceBase*>(value);
6359 } 6367 }
6360 #ifdef V8_ENABLE_CHECKS 6368 #ifdef V8_ENABLE_CHECKS
6361 VerifyExternalStringResourceBase(resource, *encoding_out); 6369 VerifyExternalStringResourceBase(resource, *encoding_out);
6362 #endif 6370 #endif
6363 return resource; 6371 return resource;
6364 } 6372 }
6365 6373
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
6824 */ 6832 */
6825 6833
6826 6834
6827 } // namespace v8 6835 } // namespace v8
6828 6836
6829 6837
6830 #undef TYPE_CHECK 6838 #undef TYPE_CHECK
6831 6839
6832 6840
6833 #endif // V8_H_ 6841 #endif // V8_H_
OLDNEW
« no previous file with comments | « no previous file | src/accessors.cc » ('j') | src/jsregexp.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698