| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 1153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1164 /** | 1164 /** |
| 1165 * Get the ExternalStringResource for an external string. Returns | 1165 * Get the ExternalStringResource for an external string. Returns |
| 1166 * NULL if IsExternal() doesn't return true. | 1166 * NULL if IsExternal() doesn't return true. |
| 1167 */ | 1167 */ |
| 1168 inline ExternalStringResource* GetExternalStringResource() const; | 1168 inline ExternalStringResource* GetExternalStringResource() const; |
| 1169 | 1169 |
| 1170 /** | 1170 /** |
| 1171 * Get the ExternalAsciiStringResource for an external ASCII string. | 1171 * Get the ExternalAsciiStringResource for an external ASCII string. |
| 1172 * Returns NULL if IsExternalAscii() doesn't return true. | 1172 * Returns NULL if IsExternalAscii() doesn't return true. |
| 1173 */ | 1173 */ |
| 1174 V8EXPORT ExternalAsciiStringResource* GetExternalAsciiStringResource() const; | 1174 V8EXPORT const ExternalAsciiStringResource* GetExternalAsciiStringResource() |
| 1175 const; |
| 1175 | 1176 |
| 1176 static inline String* Cast(v8::Value* obj); | 1177 static inline String* Cast(v8::Value* obj); |
| 1177 | 1178 |
| 1178 /** | 1179 /** |
| 1179 * Allocates a new string from either UTF-8 encoded or ASCII data. | 1180 * Allocates a new string from either UTF-8 encoded or ASCII data. |
| 1180 * The second parameter 'length' gives the buffer length. | 1181 * The second parameter 'length' gives the buffer length. |
| 1181 * If the data is UTF-8 encoded, the caller must | 1182 * If the data is UTF-8 encoded, the caller must |
| 1182 * be careful to supply the length parameter. | 1183 * be careful to supply the length parameter. |
| 1183 * If it is not given, the function calls | 1184 * If it is not given, the function calls |
| 1184 * 'strlen' to determine the buffer length, it might be | 1185 * 'strlen' to determine the buffer length, it might be |
| (...skipping 1259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2444 static Local<TypeSwitch> New(Handle<FunctionTemplate> type); | 2445 static Local<TypeSwitch> New(Handle<FunctionTemplate> type); |
| 2445 static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]); | 2446 static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]); |
| 2446 int match(Handle<Value> value); | 2447 int match(Handle<Value> value); |
| 2447 private: | 2448 private: |
| 2448 TypeSwitch(); | 2449 TypeSwitch(); |
| 2449 }; | 2450 }; |
| 2450 | 2451 |
| 2451 | 2452 |
| 2452 // --- Extensions --- | 2453 // --- Extensions --- |
| 2453 | 2454 |
| 2455 class ExternalAsciiStringResourceImpl |
| 2456 : public String::ExternalAsciiStringResource { |
| 2457 public: |
| 2458 ExternalAsciiStringResourceImpl() : data_(0), length_(0) {} |
| 2459 ExternalAsciiStringResourceImpl(const char* data, size_t length) |
| 2460 : data_(data), length_(length) {} |
| 2461 const char* data() const { return data_; } |
| 2462 size_t length() const { return length_; } |
| 2463 |
| 2464 private: |
| 2465 const char* data_; |
| 2466 size_t length_; |
| 2467 }; |
| 2454 | 2468 |
| 2455 /** | 2469 /** |
| 2456 * Ignore | 2470 * Ignore |
| 2457 */ | 2471 */ |
| 2458 class V8EXPORT Extension { // NOLINT | 2472 class V8EXPORT Extension { // NOLINT |
| 2459 public: | 2473 public: |
| 2474 // Note that the strings passed into this constructor must live as long |
| 2475 // as the Extension itself. |
| 2460 Extension(const char* name, | 2476 Extension(const char* name, |
| 2461 const char* source = 0, | 2477 const char* source = 0, |
| 2462 int dep_count = 0, | 2478 int dep_count = 0, |
| 2463 const char** deps = 0); | 2479 const char** deps = 0, |
| 2480 int source_length = -1); |
| 2464 virtual ~Extension() { } | 2481 virtual ~Extension() { } |
| 2465 virtual v8::Handle<v8::FunctionTemplate> | 2482 virtual v8::Handle<v8::FunctionTemplate> |
| 2466 GetNativeFunction(v8::Handle<v8::String> name) { | 2483 GetNativeFunction(v8::Handle<v8::String> name) { |
| 2467 return v8::Handle<v8::FunctionTemplate>(); | 2484 return v8::Handle<v8::FunctionTemplate>(); |
| 2468 } | 2485 } |
| 2469 | 2486 |
| 2470 const char* name() { return name_; } | 2487 const char* name() const { return name_; } |
| 2471 const char* source() { return source_; } | 2488 size_t source_length() const { return source_length_; } |
| 2489 const String::ExternalAsciiStringResource* source() const { |
| 2490 return &source_; } |
| 2472 int dependency_count() { return dep_count_; } | 2491 int dependency_count() { return dep_count_; } |
| 2473 const char** dependencies() { return deps_; } | 2492 const char** dependencies() { return deps_; } |
| 2474 void set_auto_enable(bool value) { auto_enable_ = value; } | 2493 void set_auto_enable(bool value) { auto_enable_ = value; } |
| 2475 bool auto_enable() { return auto_enable_; } | 2494 bool auto_enable() { return auto_enable_; } |
| 2476 | 2495 |
| 2477 private: | 2496 private: |
| 2478 const char* name_; | 2497 const char* name_; |
| 2479 const char* source_; | 2498 size_t source_length_; // expected to initialize before source_ |
| 2499 ExternalAsciiStringResourceImpl source_; |
| 2480 int dep_count_; | 2500 int dep_count_; |
| 2481 const char** deps_; | 2501 const char** deps_; |
| 2482 bool auto_enable_; | 2502 bool auto_enable_; |
| 2483 | 2503 |
| 2484 // Disallow copying and assigning. | 2504 // Disallow copying and assigning. |
| 2485 Extension(const Extension&); | 2505 Extension(const Extension&); |
| 2486 void operator=(const Extension&); | 2506 void operator=(const Extension&); |
| 2487 }; | 2507 }; |
| 2488 | 2508 |
| 2489 | 2509 |
| (...skipping 1711 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4201 | 4221 |
| 4202 | 4222 |
| 4203 } // namespace v8 | 4223 } // namespace v8 |
| 4204 | 4224 |
| 4205 | 4225 |
| 4206 #undef V8EXPORT | 4226 #undef V8EXPORT |
| 4207 #undef TYPE_CHECK | 4227 #undef TYPE_CHECK |
| 4208 | 4228 |
| 4209 | 4229 |
| 4210 #endif // V8_H_ | 4230 #endif // V8_H_ |
| OLD | NEW |