Opened 6 years ago

Last modified 4 years ago

#145 closed change

[meta] Implement typed objects — at Version 8

Reported by: trev Assignee: trev
Priority: P5 Milestone:
Module: Core Keywords: 2014q4, meta
Cc: Blocked By: #147, #148, #149, #150, #151
Blocking: Platform: Unknown
Ready: no Confidential: no
Tester: Unknown Verified working: no
Review URL(s):

Description (last modified by trev)

Background

One way to improve performance and memory efficiency would be typed objects. Now this proposal isn't implemented in any browsers yet, also the proposal doesn't match our needs exactly. So we should create our own implementation, a subset of the proposal with a few deviations:

  • Implement ClassType rather than StructType. Properties with functions as their values should turn into methods. An additional parameter should specify metadata, e.g. constructor and destructor functions.
  • Classes should inherit from each other, with the TypedObject class being the common ancestor. For any property requiring a class as value it should be possible to use its subclass.
  • No automatic garbage collection (cannot be implemented), instead all objects should have a .free() method to trigger manual destruction.
  • A string type needs to be implemented as an array of uint16 characters.
  • Dictionary types need to be implemented in addition to array types: string keys, a fixed type as value.

What to change

Ticket Status Resolution Summary Owner
#42 closed fixed Fix IE devbuild listings trev
#43 closed fixed Don't hardcode IE download link trev
#44 closed fixed [meta] Fix IE updates fhd
#150 closed fixed [Typed objects] Implement string type trev
#151 closed fixed [Typed objects] Implement dynamically-sized array types trev
#258 closed fixed [Typed objects] Implement a garbage collection mechanism trev
#4540 closed fixed Update createNightlies script to support creating dev builds from bookmarked branches jsonesen
#4548 closed fixed Adapt release automation for Safari and Edge kzar
#4551 closed fixed [meta] Remove Safari support from master
#4579 closed fixed Target promise-based browserext API mjethani
#4597 closed fixed Add Safari bookmark, update server configuration for development builds trev
#4602 closed fixed Change 'Samsung Browser' wording to 'Samsung Internet' diegocarloslima
#4605 closed fixed Development build "Recent changes" log is broken kzar
#4608 closed fixed Development build for Safari created from master bookmark jsonesen
#4610 closed fixed Safari development builds are failing trev
#4647 closed fixed onBeforeRequest listener throwing exception for frames without a URL kzar
#4648 closed fixed [ABP for Samsung Internet] - Update source string diegocarloslima
#4672 closed fixed Introduce HockeyApp event-based error reporting
#4783 closed fixed Switch message_responder.js to use the messaging API kzar
#5028 closed fixed Use the browser extension API via the "browser" (instead of "chrome") namespace mjethani


Change History (8)

comment:1 Changed 6 years ago by trev

  • Summary changed from [meta] to [meta] Implement typed objects

comment:2 Changed 6 years ago by trev

  • Owner set to trev
  • Status changed from new to assigned

comment:3 Changed 6 years ago by trev

  • Blocked By 147 added

comment:4 Changed 6 years ago by trev

  • Blocked By 148 added

comment:5 Changed 6 years ago by trev

  • Blocked By 149 added

comment:6 Changed 6 years ago by trev

  • Blocked By 150 added

comment:7 Changed 6 years ago by trev

  • Blocked By 151 added

comment:8 Changed 6 years ago by trev

  • Description modified (diff)
Note: See TracTickets for help on using tickets.