X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/6e51aaf823ae242f0fcd656cb7753b204bfe2efb..15b88a33189cbd3da91900194d8e5c81252f8a4d:/todo.txt?ds=sidebyside diff --git a/todo.txt b/todo.txt index 4613d73..dd16598 100644 --- a/todo.txt +++ b/todo.txt @@ -41,3 +41,41 @@ semi-colin insertion warings should mark after the previous token, not on the cu new for pools should take a reference, not a pointer output errors during Trampoline to some kind of log file + +cy# ["" -> {message:"'undefined' is not an object (evaluating '\"\".$cyi.isa')",line:1,sourceId:30583072,name:"TypeError"} + now: cy# ["" -> *** _assert(false):Console.cpp(214):ParseExpression [errno=12] +there is a reinterpret_cast<> that I replaced with an old-style cast on the output of dladdr + +why do I never deallocate ffi closures? + +cy# (function() { for each (var index in [1, 3]) system.print(index); })() +(function(){with({$cys:[1,3],$cyt:undefined})for($cyt in $cys){index=$cys[$cyt];system.print(index)}})() +1 +3 +cy# (function() { var index; for each (var index in [1, 3]) system.print(index); })() +(function(){var e;;with({$cys:[1,3],$cyt:undefined})for($cyt in $cys){e=$cys[$cyt];system.print(e)}})() + +make a reference holder for namearrays +rename names to accumulator when it is a name accumulator, and retake names for subset +I believe calls to mutableCopy will leak memory +consider pointerTo instead of toPointer +store the last exception in a variable +should WebUndefined be @undefined? + +if something is a function, it should be output differently +evaluate usages of CYTry in ObjectiveC/Library for CYObjectiveTry +verify name targets of "incorrect number of arguments to" +maybe support __objc_{yes,no} intrinisic primitives + +support new objective-c subscript notation: + id key = ...; + id value = object[key]; + -> id value = [object objectForKeyedSubscript:key]; + object[key] = newValue; + -> [object setObject:newValue forKeyedSubscript:key]; +and: + NSUInteger idx = ...; + id value = object[idx]; + -> id value = [object objectAtIndexedSubscript:idx]; + object[idx] = newValue; + -> [object setObject:newValue atIndexedSubscript:idx];