]> git.saurik.com Git - cycript.git/blobdiff - todo.txt
Refactor CYSetLast to return a reference to the eol.
[cycript.git] / todo.txt
index f64e66d2fec62cdab72de2f4583dd180bbd224de..dd16598b56b9d21e58dcba92e36d91bd4b746ae4 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -1,6 +1,81 @@
-labelled statements don't get labelled
-blocks and empty statements are poorly factored
-functors use both ffiData and ffoData...
-rename "data" variables to "internal"
+lol
 unicode identifier support (native and \u)
-object literal compilation should use numerify strings
+support unions (right now 0-1 fields parsed as struct)
+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 replay (psql uses ^A)
+
+consider replacing regex literals with constructors
+  https://bugzilla.mozilla.org/show_bug.cgi?id=98409
+numerification needs to use specific precision values
+  https://bugzilla.mozilla.org/show_bug.cgi?id=5856
+consider a mode where unicode string content is saved
+  https://bugzilla.mozilla.org/show_bug.cgi?id=274152
+
+NSDictionaries that have NSNumber keys don't getProperty
+errors in another process aren't displayed; to fix this, parse errors should get converted to exceptions and thrown
+CYPoolTry/Catch now carefully save the exception after it /no longer needs the exception/... uhh... wtf?
+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
+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];