* [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/b274f4d3 Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b274f4d3 Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b274f4d3 Branch: refs/heads/master Commit: b274f4d350cc29e04e64729ae5bea924084c1a90 Parents: 12f82b2 Author: acton393 <[email protected]> Authored: Wed Dec 20 11:07:57 2017 +0800 Committer: acton393 <[email protected]> Committed: Wed Dec 20 17:53:12 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/b274f4d3/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 {
