| Index: test/cctest/test-decls.cc
|
| diff --git a/test/cctest/test-decls.cc b/test/cctest/test-decls.cc
|
| index f083027d0bf1be8f19931b4fc42fbd5ce6f5adc2..c4be35ee38c38f1fe3b7620a77dcfd5ea6b59d34 100644
|
| --- a/test/cctest/test-decls.cc
|
| +++ b/test/cctest/test-decls.cc
|
| @@ -27,6 +27,8 @@
|
|
|
| #include <stdlib.h>
|
|
|
| +#define USE_NEW_QUERY_CALLBACKS
|
| +
|
| #include "v8.h"
|
|
|
| #include "heap.h"
|
| @@ -63,12 +65,12 @@ class DeclarationContext {
|
|
|
| int get_count() const { return get_count_; }
|
| int set_count() const { return set_count_; }
|
| - int has_count() const { return has_count_; }
|
| + int query_count() const { return query_count_; }
|
|
|
| protected:
|
| virtual v8::Handle<Value> Get(Local<String> key);
|
| virtual v8::Handle<Value> Set(Local<String> key, Local<Value> value);
|
| - virtual v8::Handle<Boolean> Has(Local<String> key);
|
| + virtual v8::Handle<Integer> Query(Local<String> key);
|
|
|
| void InitializeIfNeeded();
|
|
|
| @@ -85,8 +87,8 @@ class DeclarationContext {
|
| static v8::Handle<Value> HandleSet(Local<String> key,
|
| Local<Value> value,
|
| const AccessorInfo& info);
|
| - static v8::Handle<Boolean> HandleHas(Local<String> key,
|
| - const AccessorInfo& info);
|
| + static v8::Handle<Integer> HandleQuery(Local<String> key,
|
| + const AccessorInfo& info);
|
|
|
| private:
|
| bool is_initialized_;
|
| @@ -95,14 +97,14 @@ class DeclarationContext {
|
|
|
| int get_count_;
|
| int set_count_;
|
| - int has_count_;
|
| + int query_count_;
|
|
|
| static DeclarationContext* GetInstance(const AccessorInfo& info);
|
| };
|
|
|
|
|
| DeclarationContext::DeclarationContext()
|
| - : is_initialized_(false), get_count_(0), set_count_(0), has_count_(0) {
|
| + : is_initialized_(false), get_count_(0), set_count_(0), query_count_(0) {
|
| // Do nothing.
|
| }
|
|
|
| @@ -114,7 +116,7 @@ void DeclarationContext::InitializeIfNeeded() {
|
| Local<Value> data = External::New(this);
|
| GetHolder(function)->SetNamedPropertyHandler(&HandleGet,
|
| &HandleSet,
|
| - &HandleHas,
|
| + &HandleQuery,
|
| 0, 0,
|
| data);
|
| context_ = Context::New(0, function->InstanceTemplate(), Local<Value>());
|
| @@ -124,7 +126,7 @@ void DeclarationContext::InitializeIfNeeded() {
|
|
|
|
|
| void DeclarationContext::Check(const char* source,
|
| - int get, int set, int has,
|
| + int get, int set, int query,
|
| Expectations expectations,
|
| v8::Handle<Value> value) {
|
| InitializeIfNeeded();
|
| @@ -137,7 +139,7 @@ void DeclarationContext::Check(const char* source,
|
| Local<Value> result = Script::Compile(String::New(source))->Run();
|
| CHECK_EQ(get, get_count());
|
| CHECK_EQ(set, set_count());
|
| - CHECK_EQ(has, has_count());
|
| + CHECK_EQ(query, query_count());
|
| if (expectations == EXPECT_RESULT) {
|
| CHECK(!catcher.HasCaught());
|
| if (!value.IsEmpty()) {
|
| @@ -170,11 +172,11 @@ v8::Handle<Value> DeclarationContext::HandleSet(Local<String> key,
|
| }
|
|
|
|
|
| -v8::Handle<Boolean> DeclarationContext::HandleHas(Local<String> key,
|
| - const AccessorInfo& info) {
|
| +v8::Handle<Integer> DeclarationContext::HandleQuery(Local<String> key,
|
| + const AccessorInfo& info) {
|
| DeclarationContext* context = GetInstance(info);
|
| - context->has_count_++;
|
| - return context->Has(key);
|
| + context->query_count_++;
|
| + return context->Query(key);
|
| }
|
|
|
|
|
| @@ -194,8 +196,8 @@ v8::Handle<Value> DeclarationContext::Set(Local<String> key,
|
| }
|
|
|
|
|
| -v8::Handle<Boolean> DeclarationContext::Has(Local<String> key) {
|
| - return v8::Handle<Boolean>();
|
| +v8::Handle<Integer> DeclarationContext::Query(Local<String> key) {
|
| + return v8::Handle<Integer>();
|
| }
|
|
|
|
|
| @@ -249,8 +251,8 @@ TEST(Unknown) {
|
|
|
| class PresentPropertyContext: public DeclarationContext {
|
| protected:
|
| - virtual v8::Handle<Boolean> Has(Local<String> key) {
|
| - return True();
|
| + virtual v8::Handle<Integer> Query(Local<String> key) {
|
| + return Integer::New(v8::None);
|
| }
|
| };
|
|
|
| @@ -304,8 +306,8 @@ TEST(Present) {
|
|
|
| class AbsentPropertyContext: public DeclarationContext {
|
| protected:
|
| - virtual v8::Handle<Boolean> Has(Local<String> key) {
|
| - return False();
|
| + virtual v8::Handle<Integer> Query(Local<String> key) {
|
| + return v8::Handle<Integer>();
|
| }
|
| };
|
|
|
| @@ -316,7 +318,7 @@ TEST(Absent) {
|
| { AbsentPropertyContext context;
|
| context.Check("var x; x",
|
| 1, // access
|
| - 2, // declaration + initialization
|
| + 1, // declaration
|
| 2, // declaration + initialization
|
| EXPECT_RESULT, Undefined());
|
| }
|
| @@ -375,24 +377,24 @@ class AppearingPropertyContext: public DeclarationContext {
|
| AppearingPropertyContext() : state_(DECLARE) { }
|
|
|
| protected:
|
| - virtual v8::Handle<Boolean> Has(Local<String> key) {
|
| + virtual v8::Handle<Integer> Query(Local<String> key) {
|
| switch (state_) {
|
| case DECLARE:
|
| // Force declaration by returning that the
|
| // property is absent.
|
| state_ = INITIALIZE_IF_ASSIGN;
|
| - return False();
|
| + return Handle<Integer>();
|
| case INITIALIZE_IF_ASSIGN:
|
| // Return that the property is present so we only get the
|
| // setter called when initializing with a value.
|
| state_ = UNKNOWN;
|
| - return True();
|
| + return Integer::New(v8::None);
|
| default:
|
| CHECK(state_ == UNKNOWN);
|
| break;
|
| }
|
| // Do the lookup in the object.
|
| - return v8::Local<Boolean>();
|
| + return v8::Handle<Integer>();
|
| }
|
|
|
| private:
|
| @@ -458,31 +460,31 @@ class ReappearingPropertyContext: public DeclarationContext {
|
| ReappearingPropertyContext() : state_(DECLARE) { }
|
|
|
| protected:
|
| - virtual v8::Handle<Boolean> Has(Local<String> key) {
|
| + virtual v8::Handle<Integer> Query(Local<String> key) {
|
| switch (state_) {
|
| case DECLARE:
|
| // Force the first declaration by returning that
|
| // the property is absent.
|
| state_ = DONT_DECLARE;
|
| - return False();
|
| + return Handle<Integer>();
|
| case DONT_DECLARE:
|
| // Ignore the second declaration by returning
|
| // that the property is already there.
|
| state_ = INITIALIZE;
|
| - return True();
|
| + return Integer::New(v8::None);
|
| case INITIALIZE:
|
| // Force an initialization by returning that
|
| // the property is absent. This will make sure
|
| // that the setter is called and it will not
|
| // lead to redeclaration conflicts (yet).
|
| state_ = UNKNOWN;
|
| - return False();
|
| + return Handle<Integer>();
|
| default:
|
| CHECK(state_ == UNKNOWN);
|
| break;
|
| }
|
| // Do the lookup in the object.
|
| - return v8::Local<Boolean>();
|
| + return Handle<Integer>();
|
| }
|
|
|
| private:
|
| @@ -506,9 +508,9 @@ TEST(Reappearing) {
|
|
|
| class ExistsInPrototypeContext: public DeclarationContext {
|
| protected:
|
| - virtual v8::Handle<Boolean> Has(Local<String> key) {
|
| + virtual v8::Handle<Integer> Query(Local<String> key) {
|
| // Let it seem that the property exists in the prototype object.
|
| - return True();
|
| + return Integer::New(v8::None);
|
| }
|
|
|
| // Use the prototype as the holder for the interceptors.
|
| @@ -568,9 +570,9 @@ TEST(ExistsInPrototype) {
|
|
|
| class AbsentInPrototypeContext: public DeclarationContext {
|
| protected:
|
| - virtual v8::Handle<Boolean> Has(Local<String> key) {
|
| + virtual v8::Handle<Integer> Query(Local<String> key) {
|
| // Let it seem that the property is absent in the prototype object.
|
| - return False();
|
| + return Handle<Integer>();
|
| }
|
|
|
| // Use the prototype as the holder for the interceptors.
|
|
|