]> git.saurik.com Git - cycript.git/blobdiff - todo.txt
Refactor CYSetLast to return a reference to the eol.
[cycript.git] / todo.txt
index 14c0fb72d48e60912d26b389b5c08ecd486ea448..dd16598b56b9d21e58dcba92e36d91bd4b746ae4 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -1,12 +1,12 @@
+lol
 unicode identifier support (native and \u)
 support unions (right now 0-1 fields parsed as struct)
-\\\n escapes in strings aren't handled in the console
 look into what String is, and whether to bridge it
 think about bridging NSNumber with Number prototype
 some JS callbacks don't use exception pointers at all...
 a newline needs to not be allowed after a unary *
 finish implementing default xml namespace statement
-encode newlines in history for later reply (psql uses ^A)
+encode newlines in history for later replay (psql uses ^A)
 
 consider replacing regex literals with constructors
   https://bugzilla.mozilla.org/show_bug.cgi?id=98409
@@ -22,5 +22,60 @@ throw CYJSError should probably be replaced with CYThrow() across the board
 figure out what to do about global context refs: I really really want to retain the bastards
 the concept of NULL pooling is entirely incorrect and sad... bad... evil... need to work on this... really
 NSArray's .toString() and .toLocaleString() fail hard, as Array.prototype.to*String are Array-specific
-(4).toString() is legal, but I'm stripping the ()'s somehow in the serializer
 applyOnMainThread, when done at console, loops the cyonifier
+special work needs to be done to correctly handle the "arguments" symbol: Declare("arguments", ...Special)
+at the Program level I seem to be eating away all of the var statements
+function pointers are ?; note that blocks are currently block_P = '?'
+I should probably attempt to use the auto_ flag somehow to not do contexts_ push when compiling
+Object_callAsFunction_toCYON should be implemented
+
+[NSString stringWithString:""] crashes, on linux, not on mac
+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# ["" <TAB> -> {message:"'undefined' is not an object (evaluating '\"\".$cyi.isa')",line:1,sourceId:30583072,name:"TypeError"}
+  now: cy# ["" <TAB> -> *** _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];