I don't see how this helps us. The identifiers need to be globally (per JS Context) unique to the extent that they are globals. The Project based identifierGenerator fails if we create more than one Project per JS Context. The fixup is to pass a global offset, identifierIndex. But I think this just paints the problem a different color. A better solution makes the identifierGenerator a private var in System. That is, make a single IdentifierGenerator per runtime. This abandons the flexible IdentifierGenerator per project, but its a headache and I don't see the gain.