| Index: Source/bindings/tests/results/V8TestInterfaceWillBeGarbageCollected.cpp | 
| diff --git a/Source/bindings/tests/results/V8TestInterfaceWillBeGarbageCollected.cpp b/Source/bindings/tests/results/V8TestInterfaceWillBeGarbageCollected.cpp | 
| index 59322aefa0b2f13d40ead64458694f37bb48b6aa..ffe3ae8a6c98d76fd40b4f3bce56ff87906e1dcb 100644 | 
| --- a/Source/bindings/tests/results/V8TestInterfaceWillBeGarbageCollected.cpp | 
| +++ b/Source/bindings/tests/results/V8TestInterfaceWillBeGarbageCollected.cpp | 
| @@ -115,6 +115,58 @@ static const V8DOMConfiguration::MethodConfiguration V8TestInterfaceWillBeGarbag | 
| {"func", TestInterfaceWillBeGarbageCollectedV8Internal::funcMethodCallback, 0, 1}, | 
| }; | 
|  | 
| +const WrapperTypeInfo V8TestInterfaceWillBeGarbageCollectedConstructor::wrapperTypeInfo = { gin::kEmbedderBlink, V8TestInterfaceWillBeGarbageCollectedConstructor::domTemplate, V8TestInterfaceWillBeGarbageCollected::derefObject, 0, V8TestInterfaceWillBeGarbageCollected::toEventTarget, 0, V8TestInterfaceWillBeGarbageCollected::installPerContextEnabledMethods, 0, WrapperTypeObjectPrototype, WillBeGarbageCollectedObject }; | 
| + | 
| +static void V8TestInterfaceWillBeGarbageCollectedConstructorCallback(const v8::FunctionCallbackInfo<v8::Value>& info) | 
| +{ | 
| +    v8::Isolate* isolate = info.GetIsolate(); | 
| +    if (!info.IsConstructCall()) { | 
| +        throwTypeError(ExceptionMessages::constructorNotCallableAsFunction("TestInterface"), isolate); | 
| +        return; | 
| +    } | 
| + | 
| +    if (ConstructorMode::current(isolate) == ConstructorMode::WrapExistingObject) { | 
| +        v8SetReturnValue(info, info.Holder()); | 
| +        return; | 
| +    } | 
| + | 
| +    Document* document = currentDOMWindow(isolate)->document(); | 
| +    ASSERT(document); | 
| + | 
| +    // Make sure the document is added to the DOM Node map. Otherwise, the TestInterfaceWillBeGarbageCollected instance | 
| +    // may end up being the only node in the map and get garbage-collected prematurely. | 
| +    toV8(document, info.Holder(), isolate); | 
| + | 
| +    if (UNLIKELY(info.Length() < 1)) { | 
| +        throwMinimumArityTypeErrorForConstructor("TestInterfaceWillBeGarbageCollected", 1, info.Length(), info.GetIsolate()); | 
| +        return; | 
| +    } | 
| +    TOSTRING_VOID(V8StringResource<>, str, info[0]); | 
| +    RefPtrWillBeRawPtr<TestInterfaceWillBeGarbageCollected> impl = TestInterfaceWillBeGarbageCollected::createForJSConstructor(*document, str); | 
| + | 
| +    v8::Handle<v8::Object> wrapper = info.Holder(); | 
| +    V8DOMWrapper::associateObjectWithWrapper<V8TestInterfaceWillBeGarbageCollected>(impl.release(), &V8TestInterfaceWillBeGarbageCollectedConstructor::wrapperTypeInfo, wrapper, isolate, WrapperConfiguration::Independent); | 
| +    v8SetReturnValue(info, wrapper); | 
| +} | 
| + | 
| +v8::Handle<v8::FunctionTemplate> V8TestInterfaceWillBeGarbageCollectedConstructor::domTemplate(v8::Isolate* isolate) | 
| +{ | 
| +    static int domTemplateKey; // This address is used for a key to look up the dom template. | 
| +    V8PerIsolateData* data = V8PerIsolateData::from(isolate); | 
| +    v8::Local<v8::FunctionTemplate> result = data->existingDOMTemplate(&domTemplateKey); | 
| +    if (!result.IsEmpty()) | 
| +        return result; | 
| + | 
| +    TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "BuildDOMTemplate"); | 
| +    result = v8::FunctionTemplate::New(isolate, V8TestInterfaceWillBeGarbageCollectedConstructorCallback); | 
| +    v8::Local<v8::ObjectTemplate> instanceTemplate = result->InstanceTemplate(); | 
| +    instanceTemplate->SetInternalFieldCount(V8TestInterfaceWillBeGarbageCollected::internalFieldCount); | 
| +    result->SetClassName(v8AtomicString(isolate, "TestInterfaceWillBeGarbageCollected")); | 
| +    result->Inherit(V8TestInterfaceWillBeGarbageCollected::domTemplate(isolate)); | 
| +    data->setDOMTemplate(&domTemplateKey, result); | 
| +    return result; | 
| +} | 
| + | 
| void V8TestInterfaceWillBeGarbageCollected::constructorCallback(const v8::FunctionCallbackInfo<v8::Value>& info) | 
| { | 
| TRACE_EVENT_SCOPED_SAMPLING_STATE("Blink", "DOMConstructor"); | 
|  |