Repository: incubator-weex Updated Branches: refs/heads/master a2f1f13a9 -> 075da7024
* [iOS] set the protoType of Vue to the protoType of globalObject Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/2edbeddf Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2edbeddf Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2edbeddf Branch: refs/heads/master Commit: 2edbeddf011545380c5d8dd51ac67b029db13d62 Parents: 0090cb8 Author: acton393 <[email protected]> Authored: Wed Dec 20 11:07:57 2017 +0800 Committer: acton393 <[email protected]> Committed: Wed Dec 20 11:07:57 2017 +0800 ---------------------------------------------------------------------- ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2edbeddf/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m ---------------------------------------------------------------------- diff --git a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m index 5828d3c..13b92c8 100644 --- a/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m +++ b/ios/sdk/WeexSDK/Sources/Bridge/WXBridgeContext.m @@ -471,7 +471,16 @@ _Pragma("clang diagnostic pop") \ JSClassRelease(globalObjectClass); sdkInstance.instanceJavaScriptContext = [JSContext contextWithJSGlobalContextRef:sandboxGlobalContextRef]; JSGlobalContextRelease(sandboxGlobalContextRef); - JSObjectSetPrototype(sdkInstance.instanceJavaScriptContext.JSGlobalContextRef,JSContextGetGlobalObject(sdkInstance.instanceJavaScriptContext.JSGlobalContextRef), [instanceContextEnvironment JSValueRef]); + JSContextRef instanceContextRef = sdkInstance.instanceJavaScriptContext.JSGlobalContextRef; + JSObjectRef globalObject = JSContextGetGlobalObject(sdkInstance.instanceJavaScriptContext.JSGlobalContextRef); + for (NSString * key in [[instanceContextEnvironment toDictionary] allKeys]) { + JSStringRef propertyName = JSStringCreateWithUTF8CString([key cStringUsingEncoding:NSUTF8StringEncoding]); + if ([key isEqualToString:@"Vue"]) { + JSObjectSetPrototype(instanceContextRef, JSValueToObject(instanceContextRef, [instanceContextEnvironment valueForProperty:key].JSValueRef, NULL), JSObjectGetPrototype(instanceContextRef, globalObject)); + } + JSObjectSetProperty(instanceContextRef, globalObject, propertyName, [instanceContextEnvironment valueForProperty:key].JSValueRef, 0, NULL); + } + [sdkInstance.instanceJavaScriptContext evaluateScript:jsBundleString]; }]; } else {
