Skip to content

Latest commit

 

History

History
121 lines (110 loc) · 4.49 KB

File metadata and controls

121 lines (110 loc) · 4.49 KB

TODO

  • Scoping. Fc move to top of block, classes too probably {High}
  • Recursive Functions for different data types{High}
  • TS exports {Mid}
  • RegExp Object {Mid}
  • more cli params {Mid}
  • Optimize compiling errors (missing nodemodule, wrong statements, etc) {Mid}
  • JS_methods for nlohmann json. (only for the duplicate methods for more types) {Mid}
  • Typescript discovery {Low}
  • eval {Low}
  • Error Object {Low}
  • Weak Map/Set {Very Low}
  • Readme todos section
  • Readme possibilities section
  • Readme known bugs sections
  • Create Coco Logo
  • Release!!!!
In Future
  • var vs let
  • child_process.spawn() HARD!
  • Generated code clenup -> whitespaces, ;, indents, ...
  • == vs ===
  • Dynamic imports
Maybe in long long future
  • no "strict" mode HARD!!!
Bugs
  • Fix bug with running async code. nodejs spawns waits for end of the exe and then output all at once.
Single methods Bugs
  • fix num.toString(213) -> binary formats? {Very Low}
  • fix double stars and other syntaxes (pointer problems) {Very Low}
  • options argument inside toLocaleDateString {Very Low}
  • implement timezone handling in Date {Very Low}
  • Fix concate for JS_array and more arguments {Very Low}
  • String raw static method {Very Very Very Low}
  • cpu model and cpu speed in os module {Very Very Very Low}
  • birth time in fs.stats {Very Very Very Low}
  • Add groups to string JS_match {Very Very Very Low}
  • Normalize string JS_match {Very Very Very Low}
  • Default values in import statements {Very Very Very Low}

FINISHED

  • -std=c++17 discovery {High}
  • array {Very High}
  • string {Very High}
  • bool dont have .toString when printing
  • lambda functions {High}
  • length() -> length {High}
  • +/- prefixes {High}
  • objects {Very High}
  • JSON {High}
  • Migration from custom types to custom functions {Very High}
  • testing even the output of c++ to match the nodejs {Mid}
  • rewrite of data types (number->static_cast) {High}
  • accesing objects [], ., [""] {High}
  • enable mutability in fcs {High}
  • array methods {Very High}
  • more vars inside loop [index, value] of .entries {Low}
  • pointer params {Mid}
  • ignore multiple includes {Very High}
  • Fix compile options for tests {High}
  • template literal {High}
  • regex {High}
  • Typescript variable types {Mid}
  • Typescript types in arguments {Mid}
  • operators for diferent data types -> problem with nlohmann json {High}
  • string operators {High}
  • rewrite bin and index js {Low}
  • dont copy whole json content but include it {Mid}
  • fix different data types in array methods {High}
  • Fix flatmap and reduce/reduceright {Low}
  • Date Object implementation{High}
  • String Object implementation{High}
  • Hadle !! operator {Low}
  • Array Object implementation{High}
  • built-in (Array, String, etc...) {Mid}
  • Fix "nonoptions" in node module methods, eg function overload {Mid}
  • Remove unused methods in translation process {High}
  • Handle objects like __dirname, __filename
  • block npm modules {Low}
  • Fix issue with same functions in global scope and built-in class scope (Date.toString gets called as JS_toString(Date)) {Mid}
  • Export compile options to cpp generation for linking files{Mid}
  • Fix ts type declaration leads to undefined variable in asignment {Mid}
  • Add more ts types. llint, lluint, etc {Mid}
  • optional params fix in JS_ c++ methods {Low}
  • requires, linking files with exports.test{Mid}
  • Object destructuring {Mid}
  • escape characters {Low}
  • Timers - setInterval/setTimeout {Low}
  • need for custom c++ compiling flags (-liphlpapi -lws2_32) {Low}
  • other data types (undefined/null/nan) {High}
  • exporting files with module.exports. {Mid}
  • TS imports, import from {Mid}
  • Map {Low}
  • Set {Low}
  • Spread Operator {Mid}
  • C++ Linking {Very High}
  • basic node modules {High}
  • Async/await -> solved by removing them :D {High}
  • classes {Very High}
  • this! {High}
  • bigint --> long long {Low}
  • Finish unfinished ast type handling (SpreadElement, Catch, ...) {Mid}
  • Fix empty json key acessment {Mid}
  • Fix constructor and prototype {Mid}
  • AST types discovery {Mid}
  • Recursive Lambdas {High}
  • Handle % operator for doubles (error: invalid operands of types 'float' and 'float' to binary 'operator%') {Low}
  • fix exists in callbacks (arr.filter((item) => item)) {Mid}
  • Handle empty mapping in translation. (classes with no methods, etc) {Mid}
  • Fix nonstrings inside console.time {Mid}
  • Fix the module.exports