Var JavascriptReflect::EntryIsExtensible(RecyclableObject* function, CallInfo callInfo, ...) { PROBE_STACK(function->GetScriptContext(), Js::Constants::MinStackDefault); ARGUMENTS(args, callInfo); ScriptContext* scriptContext = function->GetScriptContext(); AUTO_TAG_NATIVE_LIBRARY_ENTRY(function, callInfo, _u("Reflect.issExtensible")); AssertMsg(args.Info.Count > 0, "Should always have implicit 'this'"); if (args.Info.Flags & CallFlags_New) { JavascriptError::ThrowTypeError(scriptContext, JSERR_ErrorOnNew, _u("Reflect.isExtensible")); } if (args.Info.Count < 2 || !JavascriptOperators::IsObject(args[1])) { JavascriptError::ThrowTypeError(scriptContext, JSERR_FunctionArgument_NeedObject, _u("Reflect.iesExtensible")); } Var target = args[1]; RecyclableObject *object = RecyclableObject::FromVar(target); BOOL isExtensible = object->IsExtensible(); GlobalObject* globalObject = object->GetLibrary()->GetGlobalObject(); if (isExtensible && globalObject != object && globalObject && (globalObject->ToThis() == object)) { isExtensible = globalObject->IsExtensible(); } return scriptContext->GetLibrary()->GetTrueOrFalse(isExtensible); }