-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
revised API and implementation #37
base: master
Are you sure you want to change the base?
Commits on Jan 23, 2022
-
this implements separate wrappers for ObjC classes and instances, and…
… also now caches method wrappers (ObjC's method introspection APIs are heinously slow, so this caching provides ~1000× speedup on repeated method calls!); caution: this is all *very* Work In Progress (lots of stuff is incomplete/inconsistent/broken/mis-commented/to be redone; including JS↔︎NS type conversions, inout args, unit tests, docs, etc, etc)
Configuration menu - View commit details
-
Copy full SHA for e57a473 - Browse repository at this point
Copy the full SHA e57a473View commit details -
added quick-n-dirty test script (mostly to check that method calling …
…speed is much improved without breaking behavior)
Configuration menu - View commit details
-
Copy full SHA for 99e2b92 - Browse repository at this point
Copy the full SHA 99e2b92View commit details
Commits on Jan 26, 2022
-
*
InOutRef
now works (albeit only for ObjC instances for now, until…… we finish codecs redesign) * renamed `selectorForMethodName` to `Selector.fromjs` (this allows users to create Selector objects from both "foo:bar:" and "foo_bar_" strings) * various rejigging of internal API designs
Configuration menu - View commit details
-
Copy full SHA for 7380fee - Browse repository at this point
Copy the full SHA 7380feeView commit details -
Configuration menu - View commit details
-
Copy full SHA for d6c8e5b - Browse repository at this point
Copy the full SHA d6c8e5bView commit details
Commits on Jan 27, 2022
-
* fixed bugs in
ObjCObject[toPrimitive]
* added `Selector.tojs()` * `callObjCMethod` now includes object and method name in error messages * added extra debug logging/error handling to `introspectMethod`
Configuration menu - View commit details
-
Copy full SHA for 0e2bd2e - Browse repository at this point
Copy the full SHA 0e2bd2eView commit details -
* testing, debugging, rearranging internal APIs
* temporary fixes for `void*` inout arguments (pass a Buffer for now), argument encodings containing inout/out/etc modifiers
Configuration menu - View commit details
-
Copy full SHA for 685fead - Browse repository at this point
Copy the full SHA 685feadView commit details
Commits on Jan 30, 2022
-
more testing, debugging, straightening out kinks (of note:
Proxy
pa……sses a third argument to handler’s `get` which is the proxy object itself, so use that—*not* `this`, which is the handler object only—to call additional ObjC methods on the object)
Configuration menu - View commit details
-
Copy full SHA for b16c84c - Browse repository at this point
Copy the full SHA b16c84cView commit details -
disentangling JS representations of ObjC objects (final representatio…
…ns are TBD, but these should do for now)
Configuration menu - View commit details
-
Copy full SHA for e007c88 - Browse repository at this point
Copy the full SHA e007c88View commit details
Commits on Jan 31, 2022
-
* moved
objc.types
toobjc.__internal__.types
; decluttering `util…….inspect(objc)` result * sorting out (touch-wood) `util.inspect.custom` support
Configuration menu - View commit details
-
Copy full SHA for 70d0785 - Browse repository at this point
Copy the full SHA 70d0785View commit details
Commits on Feb 4, 2022
-
* fixed [hopefully]
util.inspect.custom
support in ObjCObjects* revised `ns`, `js` functions take function/value as optional 2nd argument, allowing handling of unconverted values to be customized * updated examples
Configuration menu - View commit details
-
Copy full SHA for 1849a67 - Browse repository at this point
Copy the full SHA 1849a67View commit details -
fixed an error in the neverending whackamole that is trying to make `…
…[util.inspect.custom]` and `Proxy` behave sensibly together
Configuration menu - View commit details
-
Copy full SHA for dc89010 - Browse repository at this point
Copy the full SHA dc89010View commit details -
Configuration menu - View commit details
-
Copy full SHA for 333f0ca - Browse repository at this point
Copy the full SHA 333f0caView commit details
Commits on Feb 17, 2022
-
* rewrote ObjC type bridging to use ref-napi-compatible type definiti…
…ons, streamlining packing and unpacking of method arguments and results
Configuration menu - View commit details
-
Copy full SHA for 9707831 - Browse repository at this point
Copy the full SHA 9707831View commit details
Commits on Feb 19, 2022
-
*
ns()
should be faster at packing collections (although it's still…… dog-slow overall; which might be ffi overhead) * moved `swizzle` back to its own module, updating implementation (not yet tested) * redesigned block API, dividing it into `BlockType` and `Block` (not yet tested, and `BlockType` is not yet fully ref-napi compatible)
Configuration menu - View commit details
-
Copy full SHA for 5931adb - Browse repository at this point
Copy the full SHA 5931adbView commit details -
Configuration menu - View commit details
-
Copy full SHA for c826505 - Browse repository at this point
Copy the full SHA c826505View commit details
Commits on Feb 22, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 66b1ee4 - Browse repository at this point
Copy the full SHA 66b1ee4View commit details
Commits on Feb 28, 2022
-
* redesigned
objc.structs
API; this now uses standardStructType
……from `ref-struct-di`, with `objc.structs.define` function for defining new struct types, and already-created struct types being cached and exported as `objc.structs.NAME` (note: `ref*` types may eventually go away, or at least be relegated to 'slow fallback' as there is are severe performance bottlenecks in `ref-napi` and `ffi-napi`; thus users should use ObjC encoding strings rather than `objc.types...` when defining new struct types)
Configuration menu - View commit details
-
Copy full SHA for 0e8af70 - Browse repository at this point
Copy the full SHA 0e8af70View commit details
Commits on Mar 2, 2022
-
* reworked block and struct APIs for consistency and ease of use (the…
…se are currently publicly exported as `objc.blocks` and `objc.structs` but should eventually merge into top-level `objc` namespace) * various renamings of public classes for consistency (TBD: should they all have `ObjC` prefix or not; on one hand it may make troubleshooting easier as their names are otherwise very generic; on the other, name prefixing is verbose and clumsy) * reworked CommonJS `require` and `module.exports` usage to allow for circular dependencies (i.e. 1. attach to `module.exports` instead of replacing it; and 2. bind the whole module returned by `require`, not parts of it)
Configuration menu - View commit details
-
Copy full SHA for 111147e - Browse repository at this point
Copy the full SHA 111147eView commit details
Commits on Mar 3, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 29ee162 - Browse repository at this point
Copy the full SHA 29ee162View commit details
Commits on Mar 5, 2022
-
* renamed
create-class.js
tosubclass.js
; updated its implementat……ion, example script, and docs to use current APIs (its own API is still TBD) * struct and block types should now be accessible via `objc`, although this is currently kludgy and doesn’t detect/prevent ObjC namespace collisions (which is a problem in current `objc.blocks` and `objc.structs` API design)
Configuration menu - View commit details
-
Copy full SHA for 1d22aa4 - Browse repository at this point
Copy the full SHA 1d22aa4View commit details
Commits on Mar 10, 2022
-
* simplified block and struct API (all types now appear on top-level …
…`objc` object) * simplified subclassing API (encodings object is now passed as argument before methods object) * tidying code, comments, docs
Configuration menu - View commit details
-
Copy full SHA for 8be2533 - Browse repository at this point
Copy the full SHA 8be2533View commit details
Commits on Mar 22, 2022
-
Configuration menu - View commit details
-
Copy full SHA for 2166589 - Browse repository at this point
Copy the full SHA 2166589View commit details
Commits on May 17, 2022
-
* create a new instance of
ObjCTypeEncodingParser
for each use (sha……red parser object isn't thread safe) * added `objc.auto()` convenience function, equivalent to `@autoreleasepool {...}` * tidied comments
Configuration menu - View commit details
-
Copy full SHA for 37576ab - Browse repository at this point
Copy the full SHA 37576abView commit details
Commits on Jan 15, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 78c3df3 - Browse repository at this point
Copy the full SHA 78c3df3View commit details -
Merge branch 'master' of https://github.com/hhas/objc
# Conflicts: # src/instance.js # src/objctypes.js # test/test-inout.js
Configuration menu - View commit details
-
Copy full SHA for d673d79 - Browse repository at this point
Copy the full SHA d673d79View commit details
Commits on Feb 25, 2023
-
Configuration menu - View commit details
-
Copy full SHA for 9bb5c34 - Browse repository at this point
Copy the full SHA 9bb5c34View commit details -
Configuration menu - View commit details
-
Copy full SHA for 59b6d12 - Browse repository at this point
Copy the full SHA 59b6d12View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1e809f2 - Browse repository at this point
Copy the full SHA 1e809f2View commit details