v8.h   v8.h 
skipping to change at line 261 skipping to change at line 261
template <class S> static inline Handle<T> Cast(Handle<S> that) { template <class S> static inline Handle<T> Cast(Handle<S> that) {
#ifdef V8_ENABLE_CHECKS #ifdef V8_ENABLE_CHECKS
// If we're going to perform the type check then we have to check // If we're going to perform the type check then we have to check
// that the handle isn't empty before doing the checked cast. // that the handle isn't empty before doing the checked cast.
if (that.IsEmpty()) return Handle<T>(); if (that.IsEmpty()) return Handle<T>();
#endif #endif
return Handle<T>(T::Cast(*that)); return Handle<T>(T::Cast(*that));
} }
template <class S> inline Handle<S> As() {
return Handle<S>::Cast(*this);
}
private: private:
T* val_; T* val_;
}; };
/** /**
* A light-weight stack-allocated object handle. All operations * A light-weight stack-allocated object handle. All operations
* that return objects from within v8 return them in local handles. They * that return objects from within v8 return them in local handles. They
* are created within HandleScopes, and all local handles allocated within a * are created within HandleScopes, and all local handles allocated within a
* handle scope are destroyed when the handle scope is destroyed. Hence it * handle scope are destroyed when the handle scope is destroyed. Hence it
* is not necessary to explicitly deallocate local handles. * is not necessary to explicitly deallocate local handles.
skipping to change at line 294 skipping to change at line 298
template <class S> inline Local(S* that) : Handle<T>(that) { } template <class S> inline Local(S* that) : Handle<T>(that) { }
template <class S> static inline Local<T> Cast(Local<S> that) { template <class S> static inline Local<T> Cast(Local<S> that) {
#ifdef V8_ENABLE_CHECKS #ifdef V8_ENABLE_CHECKS
// If we're going to perform the type check then we have to check // If we're going to perform the type check then we have to check
// that the handle isn't empty before doing the checked cast. // that the handle isn't empty before doing the checked cast.
if (that.IsEmpty()) return Local<T>(); if (that.IsEmpty()) return Local<T>();
#endif #endif
return Local<T>(T::Cast(*that)); return Local<T>(T::Cast(*that));
} }
template <class S> inline Local<S> As() {
return Local<S>::Cast(*this);
}
/** Create a local handle for the content of another handle. /** Create a local handle for the content of another handle.
* The referee is kept alive by the local handle even when * The referee is kept alive by the local handle even when
* the original handle is destroyed/disposed. * the original handle is destroyed/disposed.
*/ */
inline static Local<T> New(Handle<T> that); inline static Local<T> New(Handle<T> that);
}; };
/** /**
* An object reference that is independent of any handle scope. Where * An object reference that is independent of any handle scope. Where
* a Local handle only lives as long as the HandleScope in which it was * a Local handle only lives as long as the HandleScope in which it was
skipping to change at line 366 skipping to change at line 374
template <class S> static inline Persistent<T> Cast(Persistent<S> that) { template <class S> static inline Persistent<T> Cast(Persistent<S> that) {
#ifdef V8_ENABLE_CHECKS #ifdef V8_ENABLE_CHECKS
// If we're going to perform the type check then we have to check // If we're going to perform the type check then we have to check
// that the handle isn't empty before doing the checked cast. // that the handle isn't empty before doing the checked cast.
if (that.IsEmpty()) return Persistent<T>(); if (that.IsEmpty()) return Persistent<T>();
#endif #endif
return Persistent<T>(T::Cast(*that)); return Persistent<T>(T::Cast(*that));
} }
template <class S> inline Persistent<S> As() {
return Persistent<S>::Cast(*this);
}
/** /**
* Creates a new persistent handle for an existing local or * Creates a new persistent handle for an existing local or
* persistent handle. * persistent handle.
*/ */
inline static Persistent<T> New(Handle<T> that); inline static Persistent<T> New(Handle<T> that);
/** /**
* Releases the storage cell referenced by this persistent handle. * Releases the storage cell referenced by this persistent handle.
* Does not remove the reference to the cell from any handles. * Does not remove the reference to the cell from any handles.
* This handle's reference, and any any other references to the storage * This handle's reference, and any any other references to the storage
skipping to change at line 551 skipping to change at line 563
static Local<Script> New(Handle<String> source, static Local<Script> New(Handle<String> source,
ScriptOrigin* origin = NULL, ScriptOrigin* origin = NULL,
ScriptData* pre_data = NULL, ScriptData* pre_data = NULL,
Handle<String> script_data = Handle<String>()); Handle<String> script_data = Handle<String>());
/** /**
* Compiles the specified script using the specified file name * Compiles the specified script using the specified file name
* object (typically a string) as the script's origin. * object (typically a string) as the script's origin.
* *
* \param source Script source code. * \param source Script source code.
* \patam file_name file name object (typically a string) to be used * \param file_name file name object (typically a string) to be used
* as the script's origin. * as the script's origin.
* \return Compiled script object (context independent; when run it * \return Compiled script object (context independent; when run it
* will use the currently entered context). * will use the currently entered context).
*/ */
static Local<Script> New(Handle<String> source, static Local<Script> New(Handle<String> source,
Handle<Value> file_name); Handle<Value> file_name);
/** /**
* Compiles the specified script (bound to current context). * Compiles the specified script (bound to current context).
* *
skipping to change at line 744 skipping to change at line 756
* Returns true if this value is external. * Returns true if this value is external.
*/ */
bool IsExternal() const; bool IsExternal() const;
/** /**
* Returns true if this value is a 32-bit signed integer. * Returns true if this value is a 32-bit signed integer.
*/ */
bool IsInt32() const; bool IsInt32() const;
/** /**
* Returns true if this value is a 32-bit signed integer.
*/
bool IsUint32() const;
/**
* Returns true if this value is a Date. * Returns true if this value is a Date.
*/ */
bool IsDate() const; bool IsDate() const;
Local<Boolean> ToBoolean() const; Local<Boolean> ToBoolean() const;
Local<Number> ToNumber() const; Local<Number> ToNumber() const;
Local<String> ToString() const; Local<String> ToString() const;
Local<String> ToDetailString() const; Local<String> ToDetailString() const;
Local<Object> ToObject() const; Local<Object> ToObject() const;
Local<Integer> ToInteger() const; Local<Integer> ToInteger() const;
skipping to change at line 1158 skipping to change at line 1175
/** /**
* A JavaScript object (ECMA-262, 4.3.3) * A JavaScript object (ECMA-262, 4.3.3)
*/ */
class V8EXPORT Object : public Value { class V8EXPORT Object : public Value {
public: public:
bool Set(Handle<Value> key, bool Set(Handle<Value> key,
Handle<Value> value, Handle<Value> value,
PropertyAttribute attribs = None); PropertyAttribute attribs = None);
bool Set(uint32_t index,
Handle<Value> value);
// Sets a local property on this object bypassing interceptors and // Sets a local property on this object bypassing interceptors and
// overriding accessors or read-only properties. // overriding accessors or read-only properties.
// //
// Note that if the object has an interceptor the property will be set // Note that if the object has an interceptor the property will be set
// locally, but since the interceptor takes precedence the local property // locally, but since the interceptor takes precedence the local property
// will only be returned if the interceptor doesn't return a value. // will only be returned if the interceptor doesn't return a value.
// //
// Note also that this only works for named properties. // Note also that this only works for named properties.
bool ForceSet(Handle<Value> key, bool ForceSet(Handle<Value> key,
Handle<Value> value, Handle<Value> value,
PropertyAttribute attribs = None); PropertyAttribute attribs = None);
Local<Value> Get(Handle<Value> key); Local<Value> Get(Handle<Value> key);
Local<Value> Get(uint32_t index);
// TODO(1245389): Replace the type-specific versions of these // TODO(1245389): Replace the type-specific versions of these
// functions with generic ones that accept a Handle<Value> key. // functions with generic ones that accept a Handle<Value> key.
bool Has(Handle<String> key); bool Has(Handle<String> key);
bool Delete(Handle<String> key); bool Delete(Handle<String> key);
// Delete a property on this object bypassing interceptors and // Delete a property on this object bypassing interceptors and
// ignoring dont-delete attributes. // ignoring dont-delete attributes.
bool ForceDelete(Handle<Value> key); bool ForceDelete(Handle<Value> key);
skipping to change at line 2423 skipping to change at line 2445
static bool IdleNotification(); static bool IdleNotification();
/** /**
* Optional notification that the system is running low on memory. * Optional notification that the system is running low on memory.
* V8 uses these notifications to attempt to free memory. * V8 uses these notifications to attempt to free memory.
*/ */
static void LowMemoryNotification(); static void LowMemoryNotification();
/** /**
* Optional notification that a context has been disposed. V8 uses * Optional notification that a context has been disposed. V8 uses
* these notifications to guide the garbage collection heuristic. * these notifications to guide the GC heuristic. Returns the number
* of context disposals - including this one - since the last time
* V8 had a chance to clean up.
*/ */
static void ContextDisposedNotification(); static int ContextDisposedNotification();
private: private:
V8(); V8();
static internal::Object** GlobalizeReference(internal::Object** handle); static internal::Object** GlobalizeReference(internal::Object** handle);
static void DisposeGlobal(internal::Object** global_handle); static void DisposeGlobal(internal::Object** global_handle);
static void MakeWeak(internal::Object** global_handle, static void MakeWeak(internal::Object** global_handle,
void* data, void* data,
WeakReferenceCallback); WeakReferenceCallback);
static void ClearWeak(internal::Object** global_handle); static void ClearWeak(internal::Object** global_handle);
 End of changes. 9 change blocks. 
3 lines changed or deleted 27 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/