• Lexer
    • [ ] Find a way to optimize and reduce the bundle size for this. Currently, this is the biggest area of bloat.

    • [ ] Test if every ES6 features works properly when doing identifier replacement to proxyWindow.identifier.

      Create test cases at __tests__

    • [ ] Check if nested conditionals work for classes

  • State Management
    • [ ] Warning regarding usage of built-in global variables:

      <script>
        location = 'test' // should throw an error or warning since location
        // is a read-only built-in property.
        // See <https://developer.mozilla.org/en-US/docs/Web/API/Window/location>
      </script>
      
    • [ ] Make objects reactive. This should work:

      <script>
        person = {
         firstName: 'Arya',
         lastName: 'Hearth',
        }
      </script>
      
      <p :text="`Name is ${person.firstName} ${person.lastName}`"></p>
      <button :click="person.lastName = 'Wowsers'"></button>
      
    • [ ] Variables under functions should trigger state updates:

      <script>
        todos = []
        newTodo = ''
      
        // This function:
        function addTodo() {
          todos = todos.addTodo(newTodo)
          newTodo = ''
        }
        // Should be called as:
        function addTodo() {
          todos = proxyWindow.todos.addTodo(proxyWindow.newTodo)
          proxyWindow.newTodo = ''
        }
      </script>
      
      <button :click="addTodo()"></button>