]> git.saurik.com Git - cycript.git/blobdiff - todo.txt
Implement (modified) ECMA6 array comprehensions.
[cycript.git] / todo.txt
index 1c9c3d8bf356f8f174b03dc68a75f116024266ef..dd16598b56b9d21e58dcba92e36d91bd4b746ae4 100644 (file)
--- a/todo.txt
+++ b/todo.txt
@@ -1,11 +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
@@ -14,10 +15,67 @@ numerification needs to use specific precision values
 consider a mode where unicode string content is saved
   https://bugzilla.mozilla.org/show_bug.cgi?id=274152
 
-cy# SBAwayController.sharedAwayController->_displayValues
-"*** -[NSCFNumber length]: unrecognized selector sent to instance 0x4a4bda0"
-b = []; for (x in a) b.push(x); <- crashes
-
+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];