Revert "refactor(ivy): Use AttributeMarker instead of NS (#23899)"

This reverts commit 1208a35373.
This commit is contained in:
Victor Berchet
2018-06-06 13:38:18 -07:00
parent c151f9cdc8
commit 4f5b01a98a
5 changed files with 27 additions and 17 deletions

View File

@ -262,7 +262,7 @@ export function injectAttribute(attrNameToInject: string): string|undefined {
for (let i = 0; i < attrs.length; i = i + 2) {
let attrName = attrs[i];
if (attrName === AttributeMarker.SELECT_ONLY) break;
if (attrName === AttributeMarker.NAMESPACE_URI) {
if (attrName === 0) { // NS.FULL
attrName = attrs[i += 2];
}
if (attrName == attrNameToInject) {

View File

@ -843,7 +843,8 @@ function setUpAttributes(native: RElement, attrs: TAttributes): void {
const isProc = isProceduralRenderer(renderer);
for (let i = 0; i < attrs.length; i += 2) {
let attrName = attrs[i];
if (attrName === AttributeMarker.NAMESPACE_URI) {
if (attrName === 0) { // NS.FULL
// Namespaced attribute
const attrNS = attrs[i + 1] as string;
attrName = attrs[i + 2] as string;
const attrVal = attrs[i + 3] as string;
@ -1515,7 +1516,7 @@ function generateInitialInputs(
const attrs = tNode.attrs !;
for (let i = 0; i < attrs.length; i += 2) {
const first = attrs[i];
const attrName = first === AttributeMarker.NAMESPACE_URI ? attrs[i += 2] : first;
const attrName = first === 0 ? attrs[i += 2] : first; // 0 = NS.FULL
const minifiedInputName = inputs[attrName];
const attrValue = attrs[i + 1];

View File

@ -12,6 +12,18 @@ import {LQueries} from './query';
import {RElement, RNode, RText} from './renderer';
import {LView, TData, TView} from './view';
/**
* Namespace attribute flags.
*/
export const enum NS {
/**
* Use the next value as the full namespaces URI, the values after that
* are then the name and the value, respectively.
*/
FULL = 0,
}
/**
* TNodeType corresponds to the TNode.type property. It contains information
* on how to map a particular set of bits in LNode.flags to the node type.
@ -160,11 +172,7 @@ export interface LProjectionNode extends LNode {
* items are not regular attributes and the processing should be adapted accordingly.
*/
export const enum AttributeMarker {
/**
* Use the next value as the full namespaces URI, the values after that
* are then the name and the value, respectively.
*/
NAMESPACE_URI = 0, // namespace. Has to be repeated.
NS = 0, // namespace. Has to be repeated.
/**
* This marker indicates that the following attribute names were extracted from bindings (ex.:
@ -180,7 +188,7 @@ export const enum AttributeMarker {
* - attribute names and values
* - special markers acting as flags to alter attributes processing.
*/
export type TAttributes = (string | AttributeMarker)[];
export type TAttributes = (string | AttributeMarker | NS)[];
/**
* LNode binding data (flyweight) for a particular node that is shared between all templates

View File

@ -107,7 +107,8 @@ function findAttrIndexInNode(name: string, attrs: TAttributes | null): number {
if (attrs === null) return -1;
for (let i = 0; i < attrs.length; i += step) {
const attrName = attrs[i];
if (attrName === AttributeMarker.NAMESPACE_URI) {
if (attrName === 0) {
// NS.FULL
step = 2;
} else if (attrName === name) {
return i;