1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "gin/context_holder.h"
7 #include "base/logging.h"
8 #include "gin/per_context_data.h"
12 ContextHolder::ContextHolder(v8::Isolate
* isolate
)
16 ContextHolder::~ContextHolder() {
17 v8::HandleScope
handle_scope(isolate());
18 v8::Handle
<v8::Context
> context
= this->context();
20 data_
->Detach(context
);
23 // TODO(abarth): Figure out how to set kResetInDestructor to true.
27 void ContextHolder::SetContext(v8::Handle
<v8::Context
> context
) {
28 DCHECK(context_
.IsEmpty());
29 context_
.Reset(isolate_
, context
);
30 data_
.reset(new PerContextData(context
));