Shaka Player Embedded
register_member.cc
Go to the documentation of this file.
1 // Copyright 2017 Google LLC
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // https://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
16 
19 
20 namespace shaka {
21 namespace impl {
22 
23 bool ConstructWrapperObject(const CallbackArguments& arguments,
24  BackingObject* that) {
25 #if defined(USING_V8)
26  that->SetJsThis(arguments.This());
27  arguments.This()->SetAlignedPointerInInternalField(0, that);
28  arguments.This()->SetAlignedPointerInInternalField(1, nullptr);
29 #elif defined(USING_JSC)
30  JSClassRef cls = that->factory()->GetClass();
31  LocalVar<JsObject> obj(JSObjectMake(GetContext(), cls, that));
32  if (!obj)
33  return false;
34  that->SetJsThis(obj);
35  arguments.SetReturn(obj);
36 #endif
37  return true;
38 }
39 
40 } // namespace impl
41 } // namespace shaka
virtual BackingObjectFactoryBase * factory() const =0
void SetJsThis(Handle< JsObject > this_)
bool ConstructWrapperObject(const CallbackArguments &arguments, BackingObject *that)
JSContextRef GetContext()
Definition: jsc_utils.cc:24