X-Git-Url: https://git.saurik.com/cycript.git/blobdiff_plain/e360efbb3de1f2bf99ee03e8aac7e86abbd35135..abadba191738e5d27797718fccf50d82ffe7b0b6:/todo.txt diff --git a/todo.txt b/todo.txt index 7941c5e..dd16598 100644 --- a/todo.txt +++ b/todo.txt @@ -1,3 +1,4 @@ +lol unicode identifier support (native and \u) support unions (right now 0-1 fields parsed as struct) look into what String is, and whether to bridge it @@ -34,3 +35,47 @@ GS #defines should be _finline replace procmod g+s with gdb's macosx_get_task_for_pid_rights non-local return prologue is not being Replace()d: multipass compiler! interpretation of documentation comments should be compiler-only and off by default +don't ever generate $ CYWith, in particular for CYLet... use CYFunctionExpression + +semi-colin insertion warings should mark after the previous token, not on the current one: makes a /lot/ more sense +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];