perf(runtime): Lazy evaluation of properties#1100
Merged
mbektchiev merged 4 commits intomasterfrom Mar 21, 2019
Merged
Conversation
Contributor
Author
|
test --performance |
|
test --performance-only |
e03923d to
87bd509
Compare
Contributor
Author
|
test --performance |
1 similar comment
Contributor
Author
|
test --performance |
vtrifonov
approved these changes
Mar 20, 2019
87bd509 to
e50577e
Compare
* Patch JSC to allow for dynamic property definition during assignment (write access) * Make `ObjCPrototype::materializeProperties` a no op * Make `ObjCPrototype::getOwnPropertySlot` check metadata for properties, before searching for a method * Merge metadata of duplicated properties coming from a category * Add tests
Properties cannot have "JS overloads" in base classes as methods do and there's no need to traverse the hierarchy. JS overloads are methods with different selectors and number of arguments which have the same jsName
Create a reusable StopwatchLogger class and replace the commented profiling code in `ObjCPrototype::getOwnPropertySlot` to use it.
There's an issue with the linker paths to `NativeScript.framework`. Add `NativeScript` target as a target dependency and manually add the path to the binary
b286214 to
d2f15c7
Compare
Contributor
Author
|
test --performance |
Contributor
|
test |
mbektchiev
added a commit
to NativeScript/sample-Groceries
that referenced
this pull request
Mar 21, 2019
The latest iOS Runtime exposes `UIApplication`'s `statusBarStyle` property as readonly because write access to it has been deprecated since iOS 9.0. See https://developer.apple.com/documentation/uikit/uiapplication/1622988-statusbarstyle?language=objc The new behavior in iOS is introduced with NativeScript/ios-jsc#1100
mbektchiev
added a commit
to NativeScript/sample-Groceries
that referenced
this pull request
Mar 21, 2019
The latest iOS Runtime exposes `UIApplication`'s `statusBarStyle` property as readonly because write access to it has been deprecated since iOS 9.0. See https://developer.apple.com/documentation/uikit/uiapplication/1622988-statusbarstyle?language=objc The new behavior in iOS is introduced with NativeScript/ios-jsc#1100
mbektchiev
added a commit
to NativeScript/nativescript-marketplace-demo
that referenced
this pull request
Mar 21, 2019
The latest iOS Runtime exposes UIApplication's statusBarStyle property as read-only because write access to it has been deprecated since iOS 9.0. The status bar's style is automatically adjusted and this code should not be needed. See https://developer.apple.com/documentation/uikit/uiapplication/1622988-statusbarstyle?language=objc The new behavior in iOS is introduced with NativeScript/ios-jsc#1100
This was referenced Mar 21, 2019
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Patch JSC to allow for dynamic property definition during assignment
(write access)
Make
ObjCPrototype::materializePropertiesa no opMake
ObjCPrototype::getOwnPropertySlotcheck metadata for properties,before searching for a method
perf(metadata): Do not scan for property overloads
Properties cannot have "JS overloads" in base classes as methods do
and there's no need to traverse the hierarchy. JS overloads are methods
with different selectors and number of arguments which have the same jsName.
fix(metadata): Remove duplicate properties coming from categories
UIKit has some examples of such cases that need deduplication:
UIApplication(UIApplicationDeprecated)category defines a couple ofproperties which are duplicated in the UIApplication class. In this case,
all of them are deprecated and only the class' members should be left in
the metadata.
UIGestureRecognizer (UIGestureRecognizerProtected)category redefinesthe
stateproperty asreadwritefor use by subclasses ofUIGestureRecognizer.In this case, it's better to take the category's property as it is more generic and hasn't
got any deprecation or obsoletion attributes set. This way users will be able to use it
in a JS implemented subclass of
UIGestureRecognizer.PR Checklist
BREAKING CHANGES
Properties
UIApplication.statusBarStyleandUIApplication.statusBarHiddenare now read-only. Any code assigning to them should be removed. See #1104