Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ember.js compatibility #10

Open
14 tasks done
lifeart opened this issue Jan 7, 2024 · 7 comments
Open
14 tasks done

Ember.js compatibility #10

lifeart opened this issue Jan 7, 2024 · 7 comments

Comments

@lifeart
Copy link
Owner

lifeart commented Jan 7, 2024

We could explore drop-in glimmer-vm replacement approach for glimmer-next. To achieve it, we need to build compatibility layer matching glimmer-vm API.

Here is a list of things to explore:

Here list of ~used glimmer parts in ember:

import { DEBUG } from '@glimmer/env';
import { isDestroyed, destroy, registerDestructor, associateDestroyableChild } from '@glimmer/destroyable';
import { getCustomTagFor, setInternalHelperManager, getInternalHelperManager, helperCapabilities, setHelperManager, capabilityFlagsFrom } from '@glimmer/manager';
import type { Tag, TagMeta } from '@glimmer/validator';
import { CONSTANT_TAG, consumeTag, dirtyTagFor, tagFor, untrack } from '@glimmer/validator';
import { CurriedType } from '@glimmer/vm';
import { programCompilationContext } from '@glimmer/opcode-compiler';
import { artifacts, RuntimeOpImpl } from '@glimmer/program';
import { createComputeRef, createConstRef, createPrimitiveRef, childRefFor, UNDEFINED_REFERENCE, valueForRef } from '@glimmer/reference';
import { EMPTY_ARRAY, unwrapTemplate } from '@glimmer/util';
import { reifyPositional } from '@glimmer/runtime';

@lifeart lifeart pinned this issue Jan 24, 2024
@lifeart
Copy link
Owner Author

lifeart commented Jan 26, 2024

we need to create compat for

import { 
  createStorage, getValue, setValue 
} from '@glimmer/tracking/primitives/storage';
import {
  createStorage,
  getValue,
  setValue,
} from 'ember-tracked-storage-polyfill';

https://github.com/emberjs/rfcs/blob/2845588c167f2584ed3f24569d53d14abf8ab5ef/text/0669-tracked-storage-primitive.md

@lifeart
Copy link
Owner Author

lifeart commented Feb 6, 2024

TODO: glimmer reference

@lifeart
Copy link
Owner Author

lifeart commented Feb 7, 2024

TODO: poke with ember-source

@lifeart
Copy link
Owner Author

lifeart commented Feb 13, 2024

Here is POC with working ember-modifier, ember-helper, and glimmer components #25

@lifeart
Copy link
Owner Author

lifeart commented Jun 29, 2024

Linking here: emberjs/ember.js#20711

@lifeart
Copy link
Owner Author

lifeart commented Jul 1, 2024

To add:

  • Ability to control runloop outside of framework (call syncDOM manually)
  • isRendering -> isTracking
  • Fix babel async plugin issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant