LGTM

On Tue, Sep 9, 2008 at 9:55 AM,  <[EMAIL PROTECTED]> wrote:
>
> Author: [EMAIL PROTECTED]
> Date: Tue Sep  9 00:54:30 2008
> New Revision: 225
>
> Added:
>    changes/[EMAIL PROTECTED]/internal-object-fields/
>
> changes/[EMAIL PROTECTED]/internal-object-fields/bleeding_edge/
>       - copied from r224, /branches/bleeding_edge/
> Modified:
>
> changes/[EMAIL PROTECTED]/internal-object-fields/bleeding_edge/src/api.cc
>
> changes/[EMAIL 
> PROTECTED]/internal-object-fields/bleeding_edge/test/cctest/test-api.cc
>
> Log:
> Fixed issue 54, under some circumstances internal field count set on
> object templates did not take effect.
>
>
>
> Modified:
> changes/[EMAIL PROTECTED]/internal-object-fields/bleeding_edge/src/api.cc
> ==============================================================================
> --- /branches/bleeding_edge/src/api.cc  (original)
> +++
> changes/[EMAIL PROTECTED]/internal-object-fields/bleeding_edge/src/api.cc
> Tue Sep  9 00:54:30 2008
> @@ -979,6 +979,12 @@
>                  "Invalid internal field count")) {
>      return;
>    }
> +  if (value > 0) {
> +    // The internal field count is set by the constructor function's
> +    // construct code, so we ensure that there is a constructor
> +    // function to do the setting.
> +    EnsureConstructor(this);
> +  }
>
> Utils::OpenHandle(this)->set_internal_field_count(i::Smi::FromInt(value));
>  }
>
>
> Modified:
> changes/[EMAIL 
> PROTECTED]/internal-object-fields/bleeding_edge/test/cctest/test-api.cc
> ==============================================================================
> --- /branches/bleeding_edge/test/cctest/test-api.cc     (original)
> +++
> changes/[EMAIL 
> PROTECTED]/internal-object-fields/bleeding_edge/test/cctest/test-api.cc
> Tue Sep  9 00:54:30 2008
> @@ -4825,3 +4825,21 @@
>      inner->Exit();
>    }
>  }
> +
> +
> +// Regression test for issue 54, object templates with internal fields
> +// but no accessors or interceptors did not get their internal field
> +// count set on instances.
> +THREADED_TEST(Regress54) {
> +  v8::HandleScope outer;
> +  LocalContext context;
> +  static v8::Persistent<v8::ObjectTemplate> templ;
> +  if (templ.IsEmpty()) {
> +    v8::HandleScope inner;
> +    v8::Handle<v8::ObjectTemplate> local = v8::ObjectTemplate::New();
> +    local->SetInternalFieldCount(1);
> +    templ = v8::Persistent<v8::ObjectTemplate>::New(inner.Close(local));
> +  }
> +  v8::Handle<v8::Object> result = templ->NewInstance();
> +  CHECK_EQ(1, result->InternalFieldCount());
> +}
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to