Handle<Value> fl_shad_AddFragmentShader(const Arguments& args) { HandleScope handle_scope; Local<External> entVal = Local<External>::Cast(args.This()->GetInternalField(0)); Shader* shader = static_cast<Shader*>(entVal->Value()); Handle<Object> obj = args[0]->ToObject(); Local<Value> intVal = obj->GetInternalField(0); Local<External> extVal = Local<External>::Cast(intVal); FragmentShader* toAdd = static_cast<FragmentShader*>(extVal->Value()); shader->AddFragmentShader(toAdd); return handle_scope.Close(args.This()); }