Summary: This change applies all Arcanist recommended lint changes, which amounts to changing copyright headers and some cases of whitespace changes. Reviewed By: yungsters Differential Revision: D40060899 fbshipit-source-id: b62f9472e6ef58a3fc3d22eed661578a2635cb1f
255 lines
8.3 KiB
JavaScript
255 lines
8.3 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
var JavascriptEmitter = function() {
|
|
Emitter.call(this, 'js', ' ');
|
|
};
|
|
|
|
function toValueJavascript(value) {
|
|
if (value.match(/^[0-9.e+-]+px$/i)) return parseFloat(value);
|
|
if (value.match(/^[0-9.e+-]+%/i)) return JSON.stringify(value);
|
|
if (value == 'Yoga.AUTO') return '"auto"';
|
|
return value;
|
|
}
|
|
|
|
function toJavascriptUpper(symbol) {
|
|
var out = '';
|
|
for (var i = 0; i < symbol.length; i++) {
|
|
var c = symbol[i];
|
|
if (c == c.toUpperCase() && i != 0 && symbol[i - 1] != symbol[i - 1].toUpperCase()) {
|
|
out += '_';
|
|
}
|
|
out += c.toUpperCase();
|
|
}
|
|
return out;
|
|
}
|
|
|
|
JavascriptEmitter.prototype = Object.create(Emitter.prototype, {
|
|
constructor:{value:JavascriptEmitter},
|
|
|
|
emitPrologue:{value:function() {
|
|
this.push([
|
|
'var Yoga = Yoga || require("../../sources/entry-" + process.env.TEST_ENTRY);',
|
|
''
|
|
]);
|
|
}},
|
|
|
|
emitTestPrologue:{value:function(name, experiments) {
|
|
this.push('it(' + JSON.stringify(name) + ', function () {');
|
|
this.pushIndent();
|
|
this.push('var config = Yoga.Config.create();');
|
|
this.push('');
|
|
|
|
if (experiments.length > 0) {
|
|
for (var i in experiments) {
|
|
this.push('config.setExperimentalFeatureEnabled(Yoga.EXPERIMENTAL_FEATURE_' + toJavascriptUpper(experiments[i]) + ', true);');
|
|
}
|
|
this.push('');
|
|
}
|
|
|
|
this.push('try {');
|
|
this.pushIndent();
|
|
}},
|
|
|
|
emitTestTreePrologue:{value:function(nodeName) {
|
|
this.push('var ' + nodeName + ' = Yoga.Node.create(config);');
|
|
}},
|
|
|
|
emitTestEpilogue:{value:function(experiments) {
|
|
this.popIndent();
|
|
this.push('} finally {');
|
|
this.pushIndent();
|
|
|
|
this.push('if (typeof root !== "undefined") {');
|
|
this.pushIndent();
|
|
this.push('root.freeRecursive();');
|
|
this.popIndent();
|
|
this.push('}');
|
|
this.push('');
|
|
this.push('config.free();');
|
|
|
|
this.popIndent();
|
|
this.push('}');
|
|
|
|
this.popIndent();
|
|
this.push('});');
|
|
}},
|
|
|
|
emitEpilogue:{value:function () {
|
|
this.push('');
|
|
}},
|
|
|
|
AssertEQ:{value:function(v0, v1) {
|
|
this.push('console.assert(' + v0 + ' === ' + v1 + ', "' + v0 + ' === ' + v1 + ' (" + ' + v1 + ' + ")");');
|
|
}},
|
|
|
|
YGAlignAuto:{value:'Yoga.ALIGN_AUTO'},
|
|
YGAlignCenter:{value:'Yoga.ALIGN_CENTER'},
|
|
YGAlignFlexEnd:{value:'Yoga.ALIGN_FLEX_END'},
|
|
YGAlignFlexStart:{value:'Yoga.ALIGN_FLEX_START'},
|
|
YGAlignStretch:{value:'Yoga.ALIGN_STRETCH'},
|
|
YGAlignSpaceBetween:{value:'Yoga.ALIGN_SPACE_BETWEEN'},
|
|
YGAlignSpaceAround:{value:'Yoga.ALIGN_SPACE_AROUND'},
|
|
YGAlignBaseline:{value:'Yoga.ALIGN_BASELINE'},
|
|
|
|
YGDirectionInherit:{value:'Yoga.DIRECTION_INHERIT'},
|
|
YGDirectionLTR:{value:'Yoga.DIRECTION_LTR'},
|
|
YGDirectionRTL:{value:'Yoga.DIRECTION_RTL'},
|
|
|
|
YGEdgeBottom:{value:'Yoga.EDGE_BOTTOM'},
|
|
YGEdgeEnd:{value:'Yoga.EDGE_END'},
|
|
YGEdgeLeft:{value:'Yoga.EDGE_LEFT'},
|
|
YGEdgeRight:{value:'Yoga.EDGE_RIGHT'},
|
|
YGEdgeStart:{value:'Yoga.EDGE_START'},
|
|
YGEdgeTop:{value:'Yoga.EDGE_TOP'},
|
|
|
|
YGFlexDirectionColumn:{value:'Yoga.FLEX_DIRECTION_COLUMN'},
|
|
YGFlexDirectionColumnReverse:{value:'Yoga.FLEX_DIRECTION_COLUMN_REVERSE'},
|
|
YGFlexDirectionRow:{value:'Yoga.FLEX_DIRECTION_ROW'},
|
|
YGFlexDirectionRowReverse:{value:'Yoga.FLEX_DIRECTION_ROW_REVERSE'},
|
|
|
|
YGJustifyCenter:{value:'Yoga.JUSTIFY_CENTER'},
|
|
YGJustifyFlexEnd:{value:'Yoga.JUSTIFY_FLEX_END'},
|
|
YGJustifyFlexStart:{value:'Yoga.JUSTIFY_FLEX_START'},
|
|
YGJustifySpaceAround:{value:'Yoga.JUSTIFY_SPACE_AROUND'},
|
|
YGJustifySpaceBetween:{value:'Yoga.JUSTIFY_SPACE_BETWEEN'},
|
|
YGJustifySpaceEvenly:{value:'Yoga.JUSTIFY_SPACE_EVENLY'},
|
|
|
|
YGOverflowHidden:{value:'Yoga.OVERFLOW_HIDDEN'},
|
|
YGOverflowVisible:{value:'Yoga.OVERFLOW_VISIBLE'},
|
|
|
|
YGPositionTypeAbsolute:{value:'Yoga.POSITION_TYPE_ABSOLUTE'},
|
|
YGPositionTypeRelative:{value:'Yoga.POSITION_TYPE_RELATIVE'},
|
|
|
|
YGAuto:{value:'Yoga.AUTO'},
|
|
|
|
YGWrapNoWrap:{value:'Yoga.WRAP_NO_WRAP'},
|
|
YGWrapWrap:{value:'Yoga.WRAP_WRAP'},
|
|
YGWrapWrapReverse:{value: 'Yoga.WRAP_WRAP_REVERSE'},
|
|
|
|
YGUndefined:{value:'Yoga.UNDEFINED'},
|
|
|
|
YGDisplayFlex:{value:'Yoga.DISPLAY_FLEX'},
|
|
YGDisplayNone:{value:'Yoga.DISPLAY_NONE'},
|
|
|
|
YGNodeCalculateLayout:{value:function(node, dir, experiments) {
|
|
this.push(node + '.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, ' + dir + ');');
|
|
}},
|
|
|
|
YGNodeInsertChild:{value:function(parentName, nodeName, index) {
|
|
this.push(parentName + '.insertChild(' + nodeName + ', ' + index + ');');
|
|
}},
|
|
|
|
YGNodeLayoutGetLeft:{value:function(nodeName) {
|
|
return nodeName + '.getComputedLeft()';
|
|
}},
|
|
|
|
YGNodeLayoutGetTop:{value:function(nodeName) {
|
|
return nodeName + '.getComputedTop()';
|
|
}},
|
|
|
|
YGNodeLayoutGetWidth:{value:function(nodeName) {
|
|
return nodeName + '.getComputedWidth()';
|
|
}},
|
|
|
|
YGNodeLayoutGetHeight:{value:function(nodeName) {
|
|
return nodeName + '.getComputedHeight()';
|
|
}},
|
|
|
|
YGNodeStyleSetAlignContent:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setAlignContent(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetAlignItems:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setAlignItems(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetAlignSelf:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setAlignSelf(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetBorder:{value:function(nodeName, edge, value) {
|
|
this.push(nodeName + '.setBorder(' + toValueJavascript(edge) + ', ' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetDirection:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setDirection(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetDisplay:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setDisplay(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetFlexBasis:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setFlexBasis(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetFlexDirection:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setFlexDirection(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetFlexGrow:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setFlexGrow(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetFlexShrink:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setFlexShrink(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetFlexWrap:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setFlexWrap(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetHeight:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setHeight(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetJustifyContent:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setJustifyContent(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetMargin:{value:function(nodeName, edge, value) {
|
|
this.push(nodeName + '.setMargin(' + toValueJavascript(edge) + ', ' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetMaxHeight:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setMaxHeight(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetMaxWidth:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setMaxWidth(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetMinHeight:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setMinHeight(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetMinWidth:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setMinWidth(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetOverflow:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setOverflow(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetPadding:{value:function(nodeName, edge, value) {
|
|
this.push(nodeName + '.setPadding(' + toValueJavascript(edge) + ', ' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetPosition:{value:function(nodeName, edge, value) {
|
|
this.push(nodeName + '.setPosition(' + toValueJavascript(edge) + ', ' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetPositionType:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setPositionType(' + toValueJavascript(value) + ');');
|
|
}},
|
|
|
|
YGNodeStyleSetWidth:{value:function(nodeName, value) {
|
|
this.push(nodeName + '.setWidth(' + toValueJavascript(value) + ');');
|
|
}},
|
|
});
|