Full Code of facebook/yoga for AI

main 0a2398d532e1 cached
465 files
11.2 MB
3.0M tokens
3304 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (11,846K chars total). Download the full file to get everything.
Repository: facebook/yoga
Branch: main
Commit: 0a2398d532e1
Files: 465
Total size: 11.2 MB

Directory structure:
gitextract_lqavlrcu/

├── .clang-format
├── .clang-tidy
├── .editorconfig
├── .eslintrc.cjs
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── actions/
│   │   ├── black/
│   │   │   └── action.yml
│   │   ├── cache-emsdk/
│   │   │   └── action.yml
│   │   ├── install-ninja/
│   │   │   └── action.yml
│   │   ├── setup-android/
│   │   │   └── action.yml
│   │   ├── setup-apple/
│   │   │   └── action.yml
│   │   ├── setup-cpp/
│   │   │   └── action.yml
│   │   └── setup-js/
│   │       └── action.yml
│   └── workflows/
│       ├── publish-android-release.yml
│       ├── publish-android-snashot.yml
│       ├── publish-npm-release.yml
│       ├── validate-android.yml
│       ├── validate-cpp.yml
│       ├── validate-js.yml
│       ├── validate-swiftpm.yml
│       ├── validate-tests.yml
│       └── validate-website.yml
├── .gitignore
├── .prettierignore
├── .prettierrc.js
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── LICENSE-examples
├── Package.swift
├── README.md
├── benchmark/
│   ├── Benchmark.cpp
│   ├── Benchmark.h
│   ├── CMakeLists.txt
│   ├── TreeDeserialization.cpp
│   ├── TreeDeserialization.h
│   ├── YGBenchmark.c
│   ├── benchmark
│   └── captures/
│       ├── chat-mac.json
│       ├── feed-android.json
│       ├── profile-ios.json
│       └── rendering-sample-mac.json
├── build.gradle
├── build_fuzz_tests
├── capture/
│   ├── CMakeLists.txt
│   ├── CaptureTree.cpp
│   ├── CaptureTree.h
│   ├── NodeToString.cpp
│   └── NodeToString.h
├── cmake/
│   ├── project-defaults.cmake
│   └── yoga-config.cmake.in
├── enums.py
├── fuzz/
│   ├── CMakeLists.txt
│   └── FuzzLayout.cpp
├── gentest/
│   ├── babel.config.cjs
│   ├── fixtures/
│   │   ├── YGAbsolutePositionTest.html
│   │   ├── YGAlignContentTest.html
│   │   ├── YGAlignItemsTest.html
│   │   ├── YGAlignSelfTest.html
│   │   ├── YGAndroidNewsFeed.html
│   │   ├── YGAspectRatioTest.html
│   │   ├── YGAutoTest.html
│   │   ├── YGBorderTest.html
│   │   ├── YGBoxSizingTest.html
│   │   ├── YGDimensionTest.html
│   │   ├── YGDisplayTest.html
│   │   ├── YGFlexBasisFitContentTest.html
│   │   ├── YGFlexDirectionTest.html
│   │   ├── YGFlexTest.html
│   │   ├── YGFlexWrapTest.html
│   │   ├── YGGapTest.html
│   │   ├── YGIntrinsicSizeTest.html
│   │   ├── YGJustifyContentTest.html
│   │   ├── YGMarginTest.html
│   │   ├── YGMinMaxDimensionTest.html
│   │   ├── YGPaddingTest.html
│   │   ├── YGPercentageTest.html
│   │   ├── YGRoundingTest.html
│   │   ├── YGSizeOverflowTest.html
│   │   └── YGStaticPositionTest.html
│   ├── gentest-driver.ts
│   ├── gentest-validate.ts
│   ├── package.json
│   ├── scripts/
│   │   └── gentest-validate.ts
│   ├── signedsource.d.ts
│   ├── src/
│   │   ├── ChromePool.ts
│   │   ├── CssToYoga.ts
│   │   ├── buildLayoutTree.ts
│   │   ├── cli.ts
│   │   ├── emitters/
│   │   │   ├── CppEmitter.ts
│   │   │   ├── Emitter.ts
│   │   │   ├── JavaEmitter.ts
│   │   │   └── JavascriptEmitter.ts
│   │   └── types.ts
│   ├── test-template.html
│   └── tsconfig.json
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── java/
│   ├── AndroidManifest.xml
│   ├── CMakeLists.txt
│   ├── build.gradle.kts
│   ├── com/
│   │   └── facebook/
│   │       └── yoga/
│   │           ├── LayoutPassReason.kt
│   │           ├── YogaAlign.java
│   │           ├── YogaBaselineFunction.kt
│   │           ├── YogaBoxSizing.java
│   │           ├── YogaConfig.kt
│   │           ├── YogaConfigFactory.kt
│   │           ├── YogaConfigJNIBase.kt
│   │           ├── YogaConfigJNIFinalizer.kt
│   │           ├── YogaConstants.kt
│   │           ├── YogaDimension.java
│   │           ├── YogaDirection.kt
│   │           ├── YogaDisplay.java
│   │           ├── YogaEdge.java
│   │           ├── YogaErrata.java
│   │           ├── YogaExperimentalFeature.java
│   │           ├── YogaFlexDirection.java
│   │           ├── YogaGridTrackType.java
│   │           ├── YogaGutter.java
│   │           ├── YogaJustify.java
│   │           ├── YogaLayoutType.kt
│   │           ├── YogaLogLevel.java
│   │           ├── YogaLogger.kt
│   │           ├── YogaMeasureFunction.kt
│   │           ├── YogaMeasureMode.java
│   │           ├── YogaMeasureOutput.kt
│   │           ├── YogaNative.kt
│   │           ├── YogaNode.kt
│   │           ├── YogaNodeFactory.kt
│   │           ├── YogaNodeJNIBase.java
│   │           ├── YogaNodeJNIFinalizer.kt
│   │           ├── YogaNodeType.java
│   │           ├── YogaOverflow.java
│   │           ├── YogaPositionType.java
│   │           ├── YogaProps.kt
│   │           ├── YogaStyleInputs.kt
│   │           ├── YogaUnit.java
│   │           ├── YogaValue.kt
│   │           ├── YogaWrap.java
│   │           └── annotations/
│   │               └── DoNotStrip.kt
│   ├── gen/
│   │   └── com/
│   │       └── facebook/
│   │           └── yoga/
│   │               └── BuildConfig.java
│   ├── jni/
│   │   ├── LayoutContext.cpp
│   │   ├── LayoutContext.h
│   │   ├── ScopedGlobalRef.h
│   │   ├── ScopedLocalRef.h
│   │   ├── YGJNI.h
│   │   ├── YGJNIVanilla.cpp
│   │   ├── YGJNIVanilla.h
│   │   ├── YGJTypesVanilla.h
│   │   ├── YogaJniException.cpp
│   │   ├── YogaJniException.h
│   │   ├── common.cpp
│   │   ├── common.h
│   │   ├── corefunctions.cpp
│   │   ├── corefunctions.h
│   │   ├── macros.h
│   │   └── yogajni.cpp
│   ├── proguard-rules.pro
│   ├── res/
│   │   └── values/
│   │       └── strings.xml
│   ├── tests/
│   │   ├── com/
│   │   │   └── facebook/
│   │   │       └── yoga/
│   │   │           ├── TestParametrization.java
│   │   │           ├── YGAlignBaselineTest.java
│   │   │           ├── YogaExceptionTest.java
│   │   │           ├── YogaLoggerTest.java
│   │   │           ├── YogaNodeStylePropertiesTest.java
│   │   │           ├── YogaNodeTest.java
│   │   │           ├── YogaValueTest.java
│   │   │           └── utils/
│   │   │               └── TestUtils.java
│   │   └── generated/
│   │       └── com/
│   │           └── facebook/
│   │               └── yoga/
│   │                   ├── YGAbsolutePositionTest.java
│   │                   ├── YGAlignContentTest.java
│   │                   ├── YGAlignItemsTest.java
│   │                   ├── YGAlignSelfTest.java
│   │                   ├── YGAndroidNewsFeed.java
│   │                   ├── YGAspectRatioTest.java
│   │                   ├── YGAutoTest.java
│   │                   ├── YGBorderTest.java
│   │                   ├── YGBoxSizingTest.java
│   │                   ├── YGDimensionTest.java
│   │                   ├── YGDisplayContentsTest.java
│   │                   ├── YGDisplayTest.java
│   │                   ├── YGFlexBasisFitContentTest.java
│   │                   ├── YGFlexDirectionTest.java
│   │                   ├── YGFlexTest.java
│   │                   ├── YGFlexWrapTest.java
│   │                   ├── YGGapTest.java
│   │                   ├── YGIntrinsicSizeTest.java
│   │                   ├── YGJustifyContentTest.java
│   │                   ├── YGMarginTest.java
│   │                   ├── YGMinMaxDimensionTest.java
│   │                   ├── YGPaddingTest.java
│   │                   ├── YGPercentageTest.java
│   │                   ├── YGRoundingTest.java
│   │                   ├── YGSizeOverflowTest.java
│   │                   └── YGStaticPositionTest.java
│   └── yogajni.version
├── javascript/
│   ├── .gitignore
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── babel.config.cjs
│   ├── jest.config.js
│   ├── jest.setup.js
│   ├── just.config.cjs
│   ├── package.json
│   ├── src/
│   │   ├── generated/
│   │   │   └── YGEnums.ts
│   │   ├── index.ts
│   │   ├── load.ts
│   │   ├── wasm_bridge.c
│   │   └── wrapAssembly.ts
│   ├── tests/
│   │   ├── Benchmarks/
│   │   │   └── YGBenchmark.test.ts
│   │   ├── YGAlignBaselineTest.test.ts
│   │   ├── YGComputedBorderTest.test.ts
│   │   ├── YGComputedMarginTest.test.ts
│   │   ├── YGComputedPaddingTest.test.ts
│   │   ├── YGDirtiedTest.test.ts
│   │   ├── YGErrataTest.test.ts
│   │   ├── YGFlexBasisAuto.test.ts
│   │   ├── YGHasNewLayout.test.ts
│   │   ├── YGMeasureCacheTest.test.ts
│   │   ├── YGMeasureTest.test.ts
│   │   ├── bin/
│   │   │   └── run-bench.ts
│   │   ├── generated/
│   │   │   ├── YGAbsolutePositionTest.test.ts
│   │   │   ├── YGAlignContentTest.test.ts
│   │   │   ├── YGAlignItemsTest.test.ts
│   │   │   ├── YGAlignSelfTest.test.ts
│   │   │   ├── YGAndroidNewsFeed.test.ts
│   │   │   ├── YGAspectRatioTest.test.ts
│   │   │   ├── YGAutoTest.test.ts
│   │   │   ├── YGBorderTest.test.ts
│   │   │   ├── YGBoxSizingTest.test.ts
│   │   │   ├── YGDimensionTest.test.ts
│   │   │   ├── YGDisplayContentsTest.test.ts
│   │   │   ├── YGDisplayTest.test.ts
│   │   │   ├── YGFlexBasisFitContentTest.test.ts
│   │   │   ├── YGFlexDirectionTest.test.ts
│   │   │   ├── YGFlexTest.test.ts
│   │   │   ├── YGFlexWrapTest.test.ts
│   │   │   ├── YGGapTest.test.ts
│   │   │   ├── YGIntrinsicSizeTest.test.ts
│   │   │   ├── YGJustifyContentTest.test.ts
│   │   │   ├── YGMarginTest.test.ts
│   │   │   ├── YGMinMaxDimensionTest.test.ts
│   │   │   ├── YGPaddingTest.test.ts
│   │   │   ├── YGPercentageTest.test.ts
│   │   │   ├── YGRoundingTest.test.ts
│   │   │   ├── YGSizeOverflowTest.test.ts
│   │   │   └── YGStaticPositionTest.test.ts
│   │   └── tools/
│   │       ├── MeasureCounter.ts
│   │       ├── globals.ts
│   │       └── utils.ts
│   └── tsconfig.json
├── lib/
│   ├── jni/
│   │   ├── jni.h
│   │   └── real/
│   │       └── jni.h
│   ├── jsr-305/
│   │   └── jsr305.jar
│   ├── nlohmann/
│   │   └── json.hpp
│   └── soloader/
│       └── soloader-0.5.1.aar
├── package.json
├── set-version.py
├── settings.gradle.kts
├── tests/
│   ├── .clang-tidy
│   ├── CMakeLists.txt
│   ├── EventsTest.cpp
│   ├── FlexGapTest.cpp
│   ├── FloatOptionalTest.cpp
│   ├── OrdinalsTest.cpp
│   ├── SmallValueBufferTest.cpp
│   ├── StyleTest.cpp
│   ├── StyleValuePoolTest.cpp
│   ├── YGAlignBaselineTest.cpp
│   ├── YGAspectRatioTest.cpp
│   ├── YGBaselineFuncTest.cpp
│   ├── YGCloneNodeTest.cpp
│   ├── YGComputedMarginTest.cpp
│   ├── YGComputedPaddingTest.cpp
│   ├── YGConfigTest.cpp
│   ├── YGDefaultValuesTest.cpp
│   ├── YGDirtiedTest.cpp
│   ├── YGDirtyMarkingTest.cpp
│   ├── YGEdgeTest.cpp
│   ├── YGFlexBasisFitContentTest.cpp
│   ├── YGHadOverflowTest.cpp
│   ├── YGLayoutableChildrenTest.cpp
│   ├── YGMeasureCacheTest.cpp
│   ├── YGMeasureModeTest.cpp
│   ├── YGMeasureTest.cpp
│   ├── YGNodeCallbackTest.cpp
│   ├── YGNodeChildTest.cpp
│   ├── YGPersistenceTest.cpp
│   ├── YGPersistentNodeCloningTest.cpp
│   ├── YGRelayoutTest.cpp
│   ├── YGRoundingFunctionTest.cpp
│   ├── YGRoundingMeasureFuncTest.cpp
│   ├── YGScaleChangeTest.cpp
│   ├── YGStyleTest.cpp
│   ├── YGTreeMutationTest.cpp
│   ├── YGValueTest.cpp
│   ├── YGZeroOutLayoutRecursivelyTest.cpp
│   ├── generated/
│   │   ├── YGAbsolutePositionTest.cpp
│   │   ├── YGAlignContentTest.cpp
│   │   ├── YGAlignItemsTest.cpp
│   │   ├── YGAlignSelfTest.cpp
│   │   ├── YGAndroidNewsFeed.cpp
│   │   ├── YGAspectRatioTest.cpp
│   │   ├── YGAutoTest.cpp
│   │   ├── YGBorderTest.cpp
│   │   ├── YGBoxSizingTest.cpp
│   │   ├── YGDimensionTest.cpp
│   │   ├── YGDisplayContentsTest.cpp
│   │   ├── YGDisplayTest.cpp
│   │   ├── YGFlexBasisFitContentTest.cpp
│   │   ├── YGFlexDirectionTest.cpp
│   │   ├── YGFlexTest.cpp
│   │   ├── YGFlexWrapTest.cpp
│   │   ├── YGGapTest.cpp
│   │   ├── YGIntrinsicSizeTest.cpp
│   │   ├── YGJustifyContentTest.cpp
│   │   ├── YGMarginTest.cpp
│   │   ├── YGMinMaxDimensionTest.cpp
│   │   ├── YGPaddingTest.cpp
│   │   ├── YGPercentageTest.cpp
│   │   ├── YGRoundingTest.cpp
│   │   ├── YGSizeOverflowTest.cpp
│   │   └── YGStaticPositionTest.cpp
│   └── util/
│       ├── TestUtil.cpp
│       └── TestUtil.h
├── unit_tests
├── unit_tests.bat
├── website/
│   ├── .eslintrc.cjs
│   ├── .gitignore
│   ├── README.md
│   ├── babel.config.cjs
│   ├── blog/
│   │   ├── 2023-06-30-announcing-yoga-2.0.md
│   │   ├── 2024-06-24-announcing-yoga-3.1.md
│   │   ├── 2024-12-02-announcing-yoga-3.2.md
│   │   ├── authors.yml
│   │   └── yoga-3-release/
│   │       └── 2024-03-14-announcing-yoga-3.0.md
│   ├── docs/
│   │   ├── about-yoga.md
│   │   ├── advanced/
│   │   │   ├── _category_.json
│   │   │   ├── containing-block.md
│   │   │   ├── external-layout-systems.mdx
│   │   │   └── incremental-layout.mdx
│   │   ├── getting-started/
│   │   │   ├── _category_.json
│   │   │   ├── configuring-yoga.mdx
│   │   │   └── laying-out-a-tree.mdx
│   │   └── styling/
│   │       ├── _category_.json
│   │       ├── align-content.mdx
│   │       ├── align-items-self.mdx
│   │       ├── aspect-ratio.mdx
│   │       ├── display.mdx
│   │       ├── flex-basis-grow-shrink.mdx
│   │       ├── flex-direction.mdx
│   │       ├── flex-wrap.mdx
│   │       ├── gap.mdx
│   │       ├── index.md
│   │       ├── insets.mdx
│   │       ├── justify-content.mdx
│   │       ├── layout-direction.mdx
│   │       ├── margin-padding-border.mdx
│   │       ├── min-max-width-height.mdx
│   │       ├── position.mdx
│   │       └── width-height.mdx
│   ├── docusaurus.config.js
│   ├── package.json
│   ├── sidebars.cjs
│   ├── src/
│   │   ├── components/
│   │   │   ├── EditorToolbar.module.css
│   │   │   ├── EditorToolbar.tsx
│   │   │   ├── FlexStyle.ts
│   │   │   ├── LayoutBox.module.css
│   │   │   ├── LayoutBox.tsx
│   │   │   ├── Playground.module.css
│   │   │   ├── Playground.tsx
│   │   │   └── YogaViewer.tsx
│   │   ├── css/
│   │   │   └── custom.css
│   │   └── pages/
│   │       ├── index.module.css
│   │       ├── index.tsx
│   │       ├── markdown-page.md
│   │       ├── playground.module.css
│   │       └── playground.tsx
│   ├── static/
│   │   └── .nojekyll
│   └── tsconfig.json
└── yoga/
    ├── CMakeLists.txt
    ├── YGConfig.cpp
    ├── YGConfig.h
    ├── YGEnums.cpp
    ├── YGEnums.h
    ├── YGMacros.h
    ├── YGNode.cpp
    ├── YGNode.h
    ├── YGNodeLayout.cpp
    ├── YGNodeLayout.h
    ├── YGNodeStyle.cpp
    ├── YGNodeStyle.h
    ├── YGPixelGrid.cpp
    ├── YGPixelGrid.h
    ├── YGValue.cpp
    ├── YGValue.h
    ├── Yoga.h
    ├── algorithm/
    │   ├── AbsoluteLayout.cpp
    │   ├── AbsoluteLayout.h
    │   ├── Align.h
    │   ├── Baseline.cpp
    │   ├── Baseline.h
    │   ├── BoundAxis.h
    │   ├── Cache.cpp
    │   ├── Cache.h
    │   ├── CalculateLayout.cpp
    │   ├── CalculateLayout.h
    │   ├── FlexDirection.h
    │   ├── FlexLine.cpp
    │   ├── FlexLine.h
    │   ├── PixelGrid.cpp
    │   ├── PixelGrid.h
    │   ├── SizingMode.h
    │   └── TrailingPosition.h
    ├── config/
    │   ├── Config.cpp
    │   └── Config.h
    ├── debug/
    │   ├── AssertFatal.cpp
    │   ├── AssertFatal.h
    │   ├── Log.cpp
    │   └── Log.h
    ├── enums/
    │   ├── Align.h
    │   ├── BoxSizing.h
    │   ├── Dimension.h
    │   ├── Direction.h
    │   ├── Display.h
    │   ├── Edge.h
    │   ├── Errata.h
    │   ├── ExperimentalFeature.h
    │   ├── FlexDirection.h
    │   ├── GridTrackType.h
    │   ├── Gutter.h
    │   ├── Justify.h
    │   ├── LogLevel.h
    │   ├── MeasureMode.h
    │   ├── NodeType.h
    │   ├── Overflow.h
    │   ├── PhysicalEdge.h
    │   ├── PositionType.h
    │   ├── Unit.h
    │   ├── Wrap.h
    │   └── YogaEnums.h
    ├── event/
    │   ├── event.cpp
    │   └── event.h
    ├── module.modulemap
    ├── node/
    │   ├── CachedMeasurement.h
    │   ├── LayoutResults.cpp
    │   ├── LayoutResults.h
    │   ├── LayoutableChildren.h
    │   ├── Node.cpp
    │   └── Node.h
    ├── numeric/
    │   ├── Comparison.h
    │   └── FloatOptional.h
    └── style/
        ├── GridLine.h
        ├── GridTrack.h
        ├── SmallValueBuffer.h
        ├── Style.h
        ├── StyleLength.h
        ├── StyleSizeLength.h
        ├── StyleValueHandle.h
        └── StyleValuePool.h

================================================
FILE CONTENTS
================================================

================================================
FILE: .clang-format
================================================
AccessModifierOffset: -1
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveMacros: false
AlignConsecutiveAssignments: false
AlignConsecutiveBitFields: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Left
AlignOperands: DontAlign
AlignTrailingComments: false
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortEnumsOnASingleLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Empty
AllowShortLambdasOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Attach
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: false
ColumnLimit: 80
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: true
DerivePointerAlignment: false
DisableFormat: false
FixNamespaceComments: true
ForEachMacros:
  - FOR_EACH
  - FOR_EACH_R
  - FOR_EACH_RANGE
IncludeBlocks: Preserve
IncludeCategories:
  - Regex:           '^<.*\.h(pp)?>'
    Priority:        1
  - Regex:           '^<.*'
    Priority:        2
  - Regex:           '.*'
    Priority:        3
IndentCaseLabels: true
IndentCaseBlocks: false
IndentGotoLabels: true
IndentPPDirectives: None
IndentExternBlock: AfterExternBlock
IndentWidth: 2
IndentWrappedFunctionNames: false
InsertTrailingCommas: None
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCBreakBeforeNestedBlockParam: true
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyBreakTemplateDeclaration: 10
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
Standard: Latest
TabWidth: 8
UseCRLF: false
UseTab: Never


================================================
FILE: .clang-tidy
================================================
---
InheritParentConfig: true
Checks: '>
bugprone-argument-comment,
bugprone-assert-side-effect,
bugprone-bool-pointer-implicit-conversion,
bugprone-copy-constructor-init,
bugprone-dangling-handle,
bugprone-exception-escape,
bugprone-fold-init-type,
bugprone-forward-declaration-namespace,
bugprone-forwarding-reference-overload,
bugprone-incorrect-enable-if,
bugprone-inaccurate-erase,
bugprone-incorrect-roundings,
bugprone-infinite-loop,
bugprone-integer-division,
bugprone-macro-parentheses,
bugprone-macro-repeated-side-effects,
bugprone-misplaced-operator-in-strlen-in-alloc,
bugprone-misplaced-widening-cast,
bugprone-move-forwarding-reference,
bugprone-multiple-statement-macro,
bugprone-optional-value-conversion,
bugprone-parent-virtual-call,
bugprone-redundant-branch-condition,
bugprone-shared-ptr-array-mismatch,
bugprone-signed-char-misuse,
bugprone-sizeof-container,
bugprone-sizeof-expression,
bugprone-string-constructor,
bugprone-string-integer-assignment,
bugprone-string-literal-with-embedded-nul,
bugprone-suspicious-enum-usage,
bugprone-suspicious-memset-usage,
bugprone-suspicious-missing-comma,
bugprone-suspicious-semicolon,
bugprone-suspicious-string-compare,
bugprone-swapped-arguments,
bugprone-terminating-continue,
bugprone-throw-keyword-missing,
bugprone-too-small-loop-variable,
bugprone-undefined-memory-manipulation,
bugprone-undelegated-constructor,
bugprone-unique-ptr-array-mismatch,
bugprone-unsafe-functions,
bugprone-unused-raii,
bugprone-unused-return-value,
bugprone-use-after-move,
bugprone-virtual-near-miss,
clang-analyzer-apiModeling.google.GTest,
clang-analyzer-apiModeling.StdCLibraryFunctions,
clang-analyzer-apiModeling.TrustNonnull,
clang-analyzer-core.builtin.BuiltinFunctions,
clang-analyzer-core.builtin.NoReturnFunctions,
clang-analyzer-core.CallAndMessage,
clang-analyzer-core.DivideZero,
clang-analyzer-core.DynamicTypePropagation,
clang-analyzer-core.NonnilStringConstants,
clang-analyzer-core.NonNullParamChecker,
clang-analyzer-core.NullDereference,
clang-analyzer-core.StackAddressEscape,
clang-analyzer-core.UndefinedBinaryOperatorResult,
clang-analyzer-core.uninitialized.ArraySubscript,
clang-analyzer-core.uninitialized.Assign,
clang-analyzer-core.uninitialized.Branch,
clang-analyzer-core.uninitialized.CapturedBlockVariable,
clang-analyzer-core.uninitialized.UndefReturn,
clang-analyzer-core.VLASize,
clang-analyzer-cplusplus.InnerPointer,
clang-analyzer-cplusplus.Move,
clang-analyzer-cplusplus.NewDelete,
clang-analyzer-cplusplus.NewDeleteLeaks,
clang-analyzer-cplusplus.SelfAssignment,
clang-analyzer-deadcode.DeadStores,
clang-analyzer-nullability.NullableDereferenced,
clang-analyzer-nullability.NullablePassedToNonnull,
clang-analyzer-nullability.NullableReturnedFromNonnull,
clang-analyzer-nullability.NullPassedToNonnull,
clang-analyzer-nullability.NullReturnedFromNonnull,
clang-analyzer-optin.cplusplus.VirtualCall,
clang-analyzer-optin.mpi.MPI-Checker,
clang-analyzer-optin.performance.GCDAntipattern,
clang-analyzer-optin.performance.Padding,
clang-analyzer-optin.portability.UnixAPI,
clang-analyzer-security.FloatLoopCounter,
clang-analyzer-security.insecureAPI.bcmp,
clang-analyzer-security.insecureAPI.bcopy,
clang-analyzer-security.insecureAPI.bzero,
clang-analyzer-security.insecureAPI.getpw,
clang-analyzer-security.insecureAPI.gets,
clang-analyzer-security.insecureAPI.mkstemp,
clang-analyzer-security.insecureAPI.mktemp,
clang-analyzer-security.insecureAPI.rand,
clang-analyzer-security.insecureAPI.strcpy,
clang-analyzer-security.insecureAPI.UncheckedReturn,
clang-analyzer-security.insecureAPI.vfork,
clang-analyzer-unix.API,
clang-analyzer-unix.cstring.BadSizeArg,
clang-analyzer-unix.cstring.NullArg,
clang-analyzer-unix.Malloc,
clang-analyzer-unix.MallocSizeof,
clang-analyzer-unix.MismatchedDeallocator,
clang-analyzer-unix.Vfork,
clang-analyzer-valist.CopyToSelf,
clang-analyzer-valist.Uninitialized,
clang-analyzer-valist.Unterminated,
clang-diagnostic-*,
cppcoreguidelines-avoid-const-or-ref-data-members,
cppcoreguidelines-avoid-non-const-global-variables,
cppcoreguidelines-init-variables,
cppcoreguidelines-interfaces-global-init,
cppcoreguidelines-macro-usage,
cppcoreguidelines-missing-std-forward,
cppcoreguidelines-narrowing-conversions,
cppcoreguidelines-no-malloc,
cppcoreguidelines-prefer-member-initializer,
cppcoreguidelines-pro-bounds-pointer-arithmetic,
cppcoreguidelines-pro-type-const-cast,
cppcoreguidelines-pro-type-cstyle-cast,
cppcoreguidelines-pro-type-member-init,
cppcoreguidelines-pro-type-reinterpret-cast,
cppcoreguidelines-pro-type-union-access,
cppcoreguidelines-pro-type-vararg,
cppcoreguidelines-slicing,
cppcoreguidelines-special-member-functions,
facebook-hte-BadEnum,
facebook-hte-MissingStatic,
google-build-using-namespace,
misc-definitions-in-headers,
misc-header-include-cycle,
misc-misplaced-const,
misc-new-delete-overloads,
misc-non-copyable-objects,
misc-static-assert,
misc-throw-by-value-catch-by-reference,
misc-unconventional-assign-operator,
misc-uniqueptr-reset-release,
misc-unused-alias-decls,
misc-unused-parameters,
misc-unused-using-decls,
modernize-avoid-bind,
modernize-avoid-c-arrays,
modernize-concat-nested-namespaces,
modernize-deprecated-headers,
modernize-deprecated-ios-base-aliases,
modernize-loop-convert,
modernize-make-shared,
modernize-make-unique,
modernize-pass-by-value,
modernize-raw-string-literal,
modernize-redundant-void-arg,
modernize-replace-auto-ptr,
modernize-replace-random-shuffle,
modernize-return-braced-init-list,
modernize-shrink-to-fit,
modernize-unary-static-assert,
modernize-use-auto,
modernize-use-bool-literals,
modernize-use-constraints,
modernize-use-default-member-init,
modernize-use-designated-initializers,
modernize-use-emplace,
modernize-use-equals-default,
modernize-use-equals-delete,
modernize-use-noexcept,
modernize-use-nullptr,
modernize-use-override,
modernize-use-starts-ends-with,
modernize-use-transparent-functors,
modernize-use-using,
performance-faster-string-find,
performance-for-range-copy,
performance-implicit-conversion-in-loop,
performance-inefficient-algorithm,
performance-inefficient-string-concatenation,
performance-inefficient-vector-operation,
performance-move-const-arg,
performance-move-constructor-init,
performance-noexcept-move-constructor,
performance-type-promotion-in-math-fn,
performance-unnecessary-copy-initialization,
performance-unnecessary-value-param,
readability-avoid-const-params-in-decls,
readability-braces-around-statements,
readability-const-return-type,
readability-container-size-empty,
readability-delete-null-pointer,
readability-deleted-default,
readability-implicit-bool-conversion,
readability-inconsistent-declaration-parameter-name,
readability-isolate-declaration,
readability-misplaced-array-index,
readability-named-parameter,
readability-non-const-parameter,
readability-redundant-control-flow,
readability-redundant-declaration,
readability-redundant-function-ptr-dereference,
readability-redundant-preprocessor,
readability-redundant-smartptr-get,
readability-redundant-string-cstr,
readability-redundant-string-init,
readability-simplify-boolean-expr,
readability-simplify-subscript-expr,
readability-static-accessed-through-instance,
readability-static-definition-in-anonymous-namespace,
readability-string-compare,
readability-uniqueptr-delete-release,
'

CheckOptions:
- key: performance-unnecessary-value-param.AllowedTypes
  value: '[Pp]ointer$;[Pp]tr$;[Rr]ef(erence)?$;'
- key: performance-unnecessary-copy-initialization.AllowedTypes
  value: '[Pp]ointer$;[Pp]tr$;[Rr]ef(erence)?$'

...


================================================
FILE: .editorconfig
================================================
root = true

[*]
indent_style = space
indent_size = 2
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false


================================================
FILE: .eslintrc.cjs
================================================
/**
 * 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.
 *
 * @format
 */

module.exports = {
  root: true,
  ignorePatterns: ['**/binaries/**', '**/build/**', '**/generated/**'],
  overrides: [
    // Catch-all
    {
      files: ['**/*.?(m|c){j,t}s?(x)'],
      extends: ['eslint:recommended', 'plugin:prettier/recommended'],
      plugins: ['prettier'],
      rules: {
        'no-unused-vars': ['error', {argsIgnorePattern: '^_'}],
        'no-var': 'error',
        'prefer-arrow-callback': 'error',
        'prefer-const': 'error',
        'prefer-object-spread': 'error',
        'prefer-spread': 'error',
        'require-await': 'error',
      },
      env: {
        es2020: true,
        'shared-node-browser': true,
      },
      parserOptions: {
        ecmaVersion: 'latest',
      },
    },
    // ES Modules
    {
      files: ['**/*.?(m){j,t}s?(x)'],
      parserOptions: {
        sourceType: 'module',
      },
    },
    // CommonJS Modules
    {
      files: ['**/*.c{j,t}s?(x)'],
      env: {
        commonjs: true,
      },
      parserOptions: {
        sourceType: 'commonjs',
      },
    },
    // TypeScript
    {
      files: ['**/*.?(m|c)ts?(x)'],
      extends: ['plugin:@typescript-eslint/recommended'],
      parser: '@typescript-eslint/parser',
      parserOptions: {
        project: true,
      },
      plugins: ['@typescript-eslint'],
      rules: {
        '@typescript-eslint/ban-ts-comment': 'off',
        '@typescript-eslint/no-unused-vars': [
          'error',
          {argsIgnorePattern: '^_'},
        ],
        '@typescript-eslint/no-var-requires': 'off',
      },
    },
    // Node
    {
      files: ['**/.*rc.(c){j,t}s', '**/*.config.?(c){j,t}s'],
      env: {
        node: true,
      },
    },
    // Jest
    {
      files: ['**/tests/**'],
      extends: ['plugin:jest/recommended'],
    },
  ],
};


================================================
FILE: .github/ISSUE_TEMPLATE.md
================================================
# Report

- [ ] I have searched [existing issues](https://github.com/facebook/yoga/issues) and this is not a duplicate

# Issues and Steps to Reproduce
***Replaces this with steps to repro your issue.***

# Expected Behavior
***Describe what you expected would happen.***

# Actual Behavior
***Describe what actually happened.***

# Link to Code
***If you have some code that maintainers can clone/test for themselves, bugs can be resolved much faster. Please paste a link here.***

***When applicable, use this [fiddle](https://jsfiddle.net/emilsjolander/jckmwztt/) to post a web repro.***


================================================
FILE: .github/actions/black/action.yml
================================================
name: Black Formatter
inputs:
  directory:
    description: Directory to Lint
    required: true
  version:
    description: pypi version of "black" to use
    required: false
    default: 22.3.0

runs:
  using: "composite"
  steps:
    - name: Ensure supported Python selected
      uses: actions/setup-python@v4
      with:
        python-version: '>=3.6.2'

    - name: pip install
      shell: bash
      run: pip install black==${{ inputs.version }}

    - name: black
      shell: bash
      run: black --check ${{ inputs.directory }}


================================================
FILE: .github/actions/cache-emsdk/action.yml
================================================
name: Cache the installed copy of emsdk and its build artifacts

runs:
  using: "composite"
  steps:
    - name: Cache emsdk
      uses: actions/cache@v3
      with:
        path: javascript/.emsdk
        key: emsdk-${{ runner.os }}-${{ runner.arch }}-${{ hashFiles('yarn.lock', 'javascript/package.json', 'javascript/just.config.cjs')}}


================================================
FILE: .github/actions/install-ninja/action.yml
================================================
name: Install Ninja

runs:
  using: "composite"
  steps:
    - name: Install ninja (Linux)
      if: ${{ runner.os == 'Linux' }}
      shell: bash
      run: sudo apt-get install -y ninja-build

    - name: Install ninja (Windows)
      if: ${{ runner.os == 'Windows' }}
      shell: powershell
      run: choco install ninja


================================================
FILE: .github/actions/setup-android/action.yml
================================================
name: Setup Android environment

runs:
  using: "composite"
  steps:
    - name: Select Java Version
      uses: actions/setup-java@v2
      with:
        distribution: zulu
        java-version: 17
    - name: Configure Gradle Caches
      uses: gradle/gradle-build-action@v2


================================================
FILE: .github/actions/setup-apple/action.yml
================================================
name: Setup Apple envirionment

runs:
  using: "composite"
  steps:
    - uses: maxim-lobanov/setup-xcode@v1
      with:
        xcode-version: 26.2


================================================
FILE: .github/actions/setup-cpp/action.yml
================================================
name: Setup C++ envirionment
inputs:
  toolchain:
    description: Compiler toolchain to use (Clang, GCC, or MSVC)
    required: false
    default: 'Clang'

runs:
  using: "composite"
  steps:
    - name: Install Ninja
      if: ${{ runner.os != 'Windows' }}
      uses: ./.github/actions/install-ninja

    - name: Set Clang as compiler
      if: ${{ inputs.toolchain == 'Clang' }}
      shell: bash
      run: |
        sudo apt-get install -y libc++-dev libc++abi-dev
        echo "CC=/usr/bin/clang" >> $GITHUB_ENV
        echo "CXX=/usr/bin/clang++" >> $GITHUB_ENV
        echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV
        echo "LDFLAGS=-stdlib=libc++" >> $GITHUB_ENV

    - name: Set GCC as compiler
      if: ${{ inputs.toolchain == 'GCC' }}
      shell: bash
      run: |
        echo "CC=/usr/bin/gcc" >> $GITHUB_ENV
        echo "CXX=/usr/bin/g++" >> $GITHUB_ENV

    - name: Setup VS Developer Command Prompt
      if: ${{ runner.os == 'Windows' }}
      uses: ilammy/msvc-dev-cmd@v1


================================================
FILE: .github/actions/setup-js/action.yml
================================================
name: Setup JavaScript envirionment

runs:
  using: "composite"
  steps:
    - name: Setup Node environment
      uses: actions/setup-node@v3
      with:
        node-version: 20.x
        cache: yarn
        cache-dependency-path: yarn.lock
      env:
        # https://github.com/actions/setup-node/issues/317
        FORCE_COLOR: 0

    - name: yarn install
      shell: bash
      run: yarn install --frozen-lockfile


================================================
FILE: .github/workflows/publish-android-release.yml
================================================
name: Publish Android Release

on:
  push:
    tags:
      - '*'
  workflow_dispatch:

jobs:
  publish:
    name: Publish to Maven Central
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-android

      - name: Publish to Maven Local
        run: ./gradlew publishToMavenLocal
        env:
          ORG_GRADLE_PROJECT_SIGNING_KEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNING_KEY }}
          ORG_GRADLE_PROJECT_SIGNING_PWD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNING_PWD }}

      - name: Upload Build Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: 'snapshot-artifacts'
          path: '~/.m2/repository/'

      - name: Publish to the Maven Central
        run: ./gradlew publishToSonatype closeAndReleaseSonatypeStagingRepository
        env:
          ORG_GRADLE_PROJECT_SONATYPE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPE_USERNAME }}
          ORG_GRADLE_PROJECT_SONATYPE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPE_PASSWORD }}
          ORG_GRADLE_PROJECT_SIGNING_KEY: ${{ secrets.ORG_GRADLE_PROJECT_SIGNING_KEY }}
          ORG_GRADLE_PROJECT_SIGNING_PWD: ${{ secrets.ORG_GRADLE_PROJECT_SIGNING_PWD }}


================================================
FILE: .github/workflows/publish-android-snashot.yml
================================================
name: Publish Android Snapshot

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  publish:
    name: Publish Snapshot
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-android

      - name: Publish to Maven Local
        run: ./gradlew publishToMavenLocal
        env:
          ORG_GRADLE_PROJECT_USE_SNAPSHOT: true

      - name: Upload Build Artifacts
        uses: actions/upload-artifact@v4
        with:
          name: 'snapshot-artifacts'
          path: '~/.m2/repository/'

      - name: Publish to the Snapshot Repository
        run: ./gradlew publishToSonatype
        env:
          ORG_GRADLE_PROJECT_SONATYPE_USERNAME: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPE_USERNAME }}
          ORG_GRADLE_PROJECT_SONATYPE_PASSWORD: ${{ secrets.ORG_GRADLE_PROJECT_SONATYPE_PASSWORD }}
          ORG_GRADLE_PROJECT_USE_SNAPSHOT: true


================================================
FILE: .github/workflows/publish-npm-release.yml
================================================
name: Publish NPM Release

on:
  push:
    tags:
      - '*'
  workflow_dispatch:

jobs:
  publish:
    name: Publish to npmjs registry
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-js

      - name: Store auth token in config file
        run: echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > ~/.npmrc

      - name: yarn publish
        run: yarn publish
        working-directory: javascript


================================================
FILE: .github/workflows/validate-android.yml
================================================
name: Validate Android

on:
  pull_request:
  push:
    branches:
      - main
      - 'release-*'
  workflow_dispatch:

jobs:
  build:
    name: Build [${{ matrix.os }}][${{ matrix.mode }}]
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        mode: [Debug, Release]
        os: [ubuntu-latest, windows-latest]

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-android

      - name: Build
        run: ./gradlew assemble${{ matrix.mode }} --stacktrace


================================================
FILE: .github/workflows/validate-cpp.yml
================================================
name: Validate C++

on:
  pull_request:
  push:
    branches:
      - main
      - 'release-*'
  workflow_dispatch:

env:
  GTEST_COLOR: 1

jobs:
  test:
    name: Build and Test [${{ matrix.toolchain }}][${{ matrix.mode }}]
    runs-on: ${{ (matrix.toolchain == 'MSVC') && 'windows-latest' || 'ubuntu-latest'  }}
    strategy:
      matrix:
        mode: [Debug, Release]
        toolchain: [Clang, GCC] # TODO: fix issues building GTest Binary with MSVC in GitHub Actions

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-cpp
        with:
          toolchain: ${{ matrix.toolchain }}

      - name: Unit tests
        run: ./unit_tests ${{ matrix.mode }}


  build_fuzzers:
    name: Build fuzzers [${{ matrix.toolchain }}][${{ matrix.mode }}]
    runs-on: ubuntu-latest
    strategy:
      matrix:
        mode: [Debug, Release]
        toolchain: [Clang]

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-cpp
        with:
          toolchain: ${{ matrix.toolchain }}

      - name: Unit tests
        run: ./build_fuzz_tests ${{ matrix.mode }}

  benchmark:
    name: Benchmark [${{ matrix.toolchain }}]
    runs-on: ${{ (matrix.toolchain == 'MSVC') && 'windows-latest' || 'ubuntu-latest'  }}
    strategy:
      matrix:
        toolchain: [Clang, GCC, MSVC]

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-cpp
        with:
          toolchain: ${{ matrix.toolchain }}

      - name: Build and run benchmark
        run: |
          cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
          cmake --build build
          ./build/benchmark ./captures
        working-directory: benchmark

      - name: Build and run benchmarklegacy
        run: ./build/benchmarklegacy
        working-directory: benchmark

  capture:
    name: Capture [${{ matrix.toolchain }}]
    runs-on: ${{ (matrix.toolchain == 'MSVC') && 'windows-latest' || 'ubuntu-latest'  }}
    strategy:
      matrix:
        toolchain: [Clang, GCC, MSVC]

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-cpp
        with:
          toolchain: ${{ matrix.toolchain }}

      - name: Build capture
        run: |
          cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release
          cmake --build build
        working-directory: capture


================================================
FILE: .github/workflows/validate-js.yml
================================================
name: Validate JavaScript

on:
  pull_request:
  push:
    branches:
      - main
      - 'release-*'
  workflow_dispatch:

env:
  FORCE_COLOR: 3

jobs:
  benchmark:
    name: Benchmark [${{ matrix.os }}]
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-js

      - name: Restore emsdk
        uses: ./.github/actions/cache-emsdk

      - name: yarn benchmark
        run: yarn benchmark
        working-directory: javascript

  build:
    name: Build [${{ matrix.os }}]
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-js

      - name: Restore emsdk
        uses: ./.github/actions/cache-emsdk

      - name: yarn build
        run: yarn build --verbose
        working-directory: javascript

  test:
    name: Test [${{ matrix.os }}]
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-js

      - name: Restore emsdk
        uses: ./.github/actions/cache-emsdk

      - name: yarn test
        run: yarn test
        working-directory: javascript

  lint:
    name: ESLint (All Packages)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-js

      - name: yarn lint
        run: yarn lint

  typecheck:
    name: Typecheck
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-js

      - name: yarn tsc
        run: yarn tsc
        working-directory: javascript

  pack:
    name: Pack
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-js

      - name: Restore emsdk
        uses: ./.github/actions/cache-emsdk

      - name: yarn pack
        run: yarn pack --filename yoga-layout.tar.gz
        working-directory: javascript

      - uses: actions/upload-artifact@v4
        with:
          name: npm-package
          path: javascript/yoga-layout.tar.gz


================================================
FILE: .github/workflows/validate-swiftpm.yml
================================================
name: Validate SwiftPM

on:
  pull_request:
  push:
    branches:
      - main
      - 'release-*'
  workflow_dispatch:

jobs:
  test:
    name: Build
    runs-on: macos-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-apple

      - name: Build Debug
        run: swift build -c debug

      - name: Build Release
        run: swift build -c release


================================================
FILE: .github/workflows/validate-tests.yml
================================================
name: Validate Tests

on:
  pull_request:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  validate:
    name: Validate
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup JS
        uses: ./.github/actions/setup-js

      - name: yarn gentest-validate
        run: yarn gentest-validate

      - name: yarn gentest
        run: yarn gentest -h

      - name: Check for modified tests
        run: |
          if [[ -n $(git status -s) ]]; then
            git status -s
            echo "yarn gentest modified these tests. Please run yarn gentest to resolve."
            exit 1
          fi


================================================
FILE: .github/workflows/validate-website.yml
================================================
name: Validate Website

on:
  pull_request:
    branches:
      - main
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build_next:
    name: Build
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-js

      - name: Restore emsdk
        uses: ./.github/actions/cache-emsdk

      - name: Build Website
        run: yarn build
        working-directory: website

  typecheck:
    name: Typecheck [Docusaurus]
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Setup
        uses: ./.github/actions/setup-js

      - name: yarn tsc
        run: yarn tsc
        working-directory: website


================================================
FILE: .gitignore
================================================
.DS_STORE

/buck-cache/
/buck-out/
/.buckconfig.local
/.buckd
/gentest/test.html
.buck-java11
node_modules

# Jekyll
/.sass-cache/
/_site/

# Visual studio code
!.vscode

*.pdb
*.tlog
*.obj
*.pch
*.log
*.orig

# Xcode
## Build generated
build/
DerivedData/

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

## Other
*.moved-aside
*.xcuserstate

## Obj-C/Swift specific
*.hmap
*.ipa
*.dSYM.zip
*.dSYM

# CocoaPods
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
Pods/

# Carthage
#
# Add this line if you want to avoid checking in source code from Carthage dependencies.
# Carthage/Checkouts

Carthage/Build

# Gradle
.gradle
local.properties

# NDK/CMake
.cxx
.externalNativeBuild

# Docusarus build
.docusaurus

# Android Studio
.idea


================================================
FILE: .prettierignore
================================================
**/binaries/**
**/build/**
**/generated/**


================================================
FILE: .prettierrc.js
================================================
/**
 * 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.
 *
 * @format
 */

module.exports = {
  arrowParens: 'avoid',
  bracketSameLine: true,
  bracketSpacing: false,
  singleQuote: true,
  trailingComma: 'all',
};


================================================
FILE: .vscode/extensions.json
================================================
{
  "recommendations": [
    "ms-vscode.cpptools",
    "EditorConfig.EditorConfig",
    "dbaeumer.vscode-eslint",
  ]
}


================================================
FILE: .vscode/launch.json
================================================
{
  // Use IntelliSense to learn about possible attributes.
  // Hover to view descriptions of existing attributes.
  // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug C++ Unit tests (lldb)",
      "type": "cppdbg",
      "MIMode": "lldb",
      "request": "launch",
      "program": "${workspaceFolder}/tests/build/yogatests",
      "cwd": "${workspaceFolder}",
      "preLaunchTask": "Build Unit Tests"
    },
    {
      "name": "Debug C++ Unit tests (vsdbg)",
      "type": "cppvsdbg",
      "request": "launch",
      "program": "${workspaceFolder}/tests/build/yogatests",
      "cwd": "${workspaceFolder}",
      "preLaunchTask": "Build Unit Tests"
    }
  ]
}


================================================
FILE: .vscode/settings.json
================================================
{
  "editor.formatOnSave": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "eslint.format.enable": true,
  "eslint.packageManager": "yarn",
  "eslint.enable": true,
  "eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact"
  ],
  "eslint.workingDirectories": [
    {
      "mode": "auto"
    }
  ],
}


================================================
FILE: .vscode/tasks.json
================================================
{
  // See https://go.microsoft.com/fwlink/?LinkId=733558
  // for the documentation about the tasks.json format
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Build Unit Tests",
      "type": "shell",
      "command": "(which ninja && cmake -B build -S . -D CMAKE_BUILD_TYPE=Debug -G Ninja || cmake -B build -S . -D CMAKE_BUILD_TYPE=Debug) && cmake --build build",
      "windows": {
        "command": "(where ninja && cmake -B build -S . -D CMAKE_BUILD_TYPE=Debug -G Ninja || cmake -B build -S . -D CMAKE_BUILD_TYPE=Debug) && cmake --build build",
      },
      "group": "build",
      "options": {
        "cwd": "tests"
      },
      "presentation": {
        "reveal": "always",
        "panel": "new"
      }
    }
  ]
}


================================================
FILE: CMakeLists.txt
================================================
# 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.

cmake_minimum_required(VERSION 3.13...3.26)
project(yoga-all)
set(CMAKE_VERBOSE_MAKEFILE on)

include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/project-defaults.cmake)

add_subdirectory(yoga)
add_subdirectory(tests)

option(BUILD_FUZZ_TESTS "Build fuzz tests" OFF)

if ('${CMAKE_CXX_COMPILER_ID}' MATCHES 'Clang' AND  BUILD_FUZZ_TESTS)
    add_subdirectory(fuzz)
endif()

# cmake install config
include(GNUInstallDirs)
include(CMakePackageConfigHelpers)

# declare target to install
install(TARGETS yogacore EXPORT yoga-targets
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
    INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

# install header files
install(DIRECTORY
    "${CMAKE_CURRENT_LIST_DIR}/yoga"
    DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
    FILES_MATCHING PATTERN "*.h"
)

# install target config
install(EXPORT yoga-targets
    FILE yogaTargets.cmake
    NAMESPACE yoga::
    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/yoga
)


# generate config file
configure_package_config_file(
    ${CMAKE_CURRENT_SOURCE_DIR}/cmake/yoga-config.cmake.in
    ${CMAKE_CURRENT_BINARY_DIR}/yogaConfig.cmake
    INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/yoga
)

# install config file
install(FILES
    ${CMAKE_CURRENT_BINARY_DIR}/yogaConfig.cmake
    DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/yoga
)


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
  advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
  address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
  professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all project spaces, and it also applies when
an individual is representing the project or its community in public spaces.
Examples of representing a project or community include using an official
project e-mail address, posting via an official social media account, or acting
as an appointed representative at an online or offline event. Representation of
a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at <opensource-conduct@fb.com>. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing to yoga
We want to make contributing to this project as easy and transparent as
possible.

## Code of Conduct

Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please [read the full text](https://code.fb.com/codeofconduct/) so that you can understand what actions will and will not be tolerated.

## Pull Requests
We actively welcome your pull requests.
1. Fork the repo and create your branch from `main`.
2. If you've added code that should be tested, add tests
3. If you've changed APIs, update the documentation.
4. Ensure the test suite passes.
5. Make sure your code lints.
6. If you haven't already, complete the Contributor License Agreement ("CLA").

## Contributor License Agreement ("CLA")
In order to accept your pull request, we need you to submit a CLA. You only need
to do this once to work on any of Facebook's open source projects.

Complete your CLA here: <https://code.facebook.com/cla>

## Issues
We use GitHub issues to track public bugs. Please ensure your description is
clear and has sufficient instructions to be able to reproduce the issue.

Facebook has a [bounty program](https://www.facebook.com/whitehat/) for the safe
disclosure of security bugs. In those cases, please go through the process
outlined on that page and do not file a public issue.

## License
By contributing to yoga, you agree that your contributions will be licensed
under its MIT license.


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) Facebook, Inc. and its affiliates.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: LICENSE-examples
================================================
The examples provided by Facebook are for non-commercial testing and evaluation
purposes only. Facebook reserves all rights not expressly granted.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
FACEBOOK BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: Package.swift
================================================
// swift-tools-version:5.0
// The swift-tools-version declares the minimum version of Swift required to build this package.
/*
 * 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.
 */


import PackageDescription

let package = Package(
    name: "yoga",
    products: [
        .library(name: "yoga", targets: [ "core" ])
    ],
    targets: [
        .target(
            name: "core",
            path: ".",
            sources: [
                "yoga"
            ],
            publicHeadersPath: ".",
            cxxSettings: [
                .headerSearchPath(".")
            ]
        )
    ],
    cxxLanguageStandard: CXXLanguageStandard(rawValue: "c++20")
)


================================================
FILE: README.md
================================================
# Yoga [![npm](https://img.shields.io/npm/v/yoga-layout.svg)](https://www.npmjs.com/package/yoga-layout) [![Maven Central](https://img.shields.io/maven-central/v/com.facebook.yoga/yoga)](https://search.maven.org/artifact/com.facebook.yoga/yoga) ![SPM](https://img.shields.io/badge/SPM-Supported-blue.svg)

Yoga is an embeddable and performant flexbox layout engine with bindings for multiple languages.

## Building

Yoga's main implementation targets C++ 20 with accompanying build logic in CMake. A wrapper is provided to build the main library and run unit tests.

```sh
./unit_tests <Debug|Release>
```

While not required, this script will use [ninja](https://ninja-build.org/) if it is installed for faster builds.

Yoga is additionally part of the [vcpkg](https://github.com/Microsoft/vcpkg/) collection of ports maintained by Microsoft and community contributors. If the version is out of date, please [create an issue or pull request](https://github.com/Microsoft/vcpkg) on the vcpkg repository.

## Adding Tests

Many of Yoga's tests are automatically generated, using HTML fixtures describing node structure. These are rendered in Chrome to generate an expected layout result for the tree. New fixtures can be added to `gentest/fixtures`.

```html
<div id="my_test" style="width: 100px; height: 100px; align-items: center;">
  <div style="width: 50px; height: 50px;"></div>
</div>
```

To generate new tests from added fixtures:

1. Ensure you have [yarn classic](https://classic.yarnpkg.com) installed.
2. Run `yarn install` to install dependencies for the test generator.
3. Run `yarn gentest` in the `yoga` directory.

## Debugging

Yoga provides a VSCode "launch.json" configuration which allows debugging unit tests. Simply add your breakpoints, and run "Debug C++ Unit tests (lldb)" (or "Debug C++ Unit tests (vsdbg)" on Windows).


================================================
FILE: benchmark/Benchmark.cpp
================================================
/*
 * 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.
 */

#include <chrono>
#include <filesystem>
#include <fstream>
#include <iostream>
#include <thread>

#include <benchmark/Benchmark.h>
#include <benchmark/TreeDeserialization.h>
#include <capture/CaptureTree.h>
#include <nlohmann/json.hpp>

namespace facebook::yoga {

using namespace nlohmann;
using namespace std::chrono;

constexpr uint32_t kNumRepetitions = 100;
using SteadyClockDurations =
    std::array<steady_clock::duration, kNumRepetitions>;

static bool inputsMatch(
    float actualWidth,
    float expectedWidth,
    float actualHeight,
    float expectedHeight,
    YGMeasureMode actualWidthMode,
    YGMeasureMode expectedWidthMode,
    YGMeasureMode actualHeightMode,
    YGMeasureMode expectedHeightMode) {
  bool widthsAreUndefined =
      YGFloatIsUndefined(actualWidth) && YGFloatIsUndefined(expectedWidth);
  bool widthsAreEqual = widthsAreUndefined || actualWidth == expectedWidth;
  bool heightsAreUndefined =
      YGFloatIsUndefined(actualHeight) && YGFloatIsUndefined(expectedHeight);
  bool heightsAreEqual = heightsAreUndefined || actualHeight == expectedHeight;

  return widthsAreEqual && heightsAreEqual &&
      actualWidthMode == expectedWidthMode &&
      actualHeightMode == expectedHeightMode;
}

YGSize defaultMeasureFunctionResult() {
  std::cout << "Trying to measure a node that wasn't serialized" << std::endl;
  return {10.0, 10.0};
}

YGSize mockMeasureFunc(
    YGNodeConstRef node,
    float availableWidth,
    YGMeasureMode widthMode,
    float availableHeight,
    YGMeasureMode heightMode) {
  (void)node;
  auto fnsPtr = static_cast<SerializedMeasureFuncMap*>(YGNodeGetContext(node));

  if (fnsPtr == nullptr) {
    return defaultMeasureFunctionResult();
  }

  auto fnsIt = fnsPtr->find(node);
  if (fnsIt == fnsPtr->end()) {
    return defaultMeasureFunctionResult();
  }

  for (auto measureFunc : fnsIt->second) {
    if (inputsMatch(
            availableWidth,
            measureFunc.inputWidth,
            availableHeight,
            measureFunc.inputHeight,
            widthMode,
            measureFunc.widthMode,
            heightMode,
            measureFunc.heightMode)) {
      std::this_thread::sleep_for(
          std::chrono::nanoseconds(measureFunc.durationNs));
      return {measureFunc.outputWidth, measureFunc.outputHeight};
    }
  }

  return defaultMeasureFunctionResult();
}

std::shared_ptr<const YGConfig> buildConfigFromJson(const json& j) {
  json jsonConfig = j["config"];
  std::shared_ptr<YGConfig> config(YGConfigNew(), YGConfigFree);
  for (json::iterator it = jsonConfig.begin(); it != jsonConfig.end(); it++) {
    if (it.key() == "use-web-defaults") {
      YGConfigSetUseWebDefaults(config.get(), it.value());
    } else if (it.key() == "point-scale-factor") {
      YGConfigSetPointScaleFactor(config.get(), it.value());
    } else if (it.key() == "errata") {
      YGConfigSetErrata(config.get(), errataFromString(it.value()));
    } else if (it.key() == "experimental-features") {
      // Experimental features is serialized into an array where the values
      // present indicate that that feature is enabled
      for (json::iterator efIt = it.value().begin(); efIt != it.value().end();
           efIt++) {
        YGConfigSetExperimentalFeatureEnabled(
            config.get(), experimentalFeatureFromString(efIt.value()), true);
      }
    }
  }

  return config;
}

std::string edgeStringFromPropertyName(
    const std::string& key,
    const std::string& propertyName) {
  return key.substr(propertyName.length() + 1);
}

void setStylesFromJson(const json& j, YGNodeRef node) {
  json style = j["style"];
  for (const auto& [key, value] : style.items()) {
    if (key == "flex-direction") {
      YGNodeStyleSetFlexDirection(node, flexDirectionFromString(value));
    } else if (key == "justify-content") {
      YGNodeStyleSetJustifyContent(node, justifyContentFromString(value));
    } else if (key == "align-items") {
      YGNodeStyleSetAlignItems(node, alignFromString(value));
    } else if (key == "align-content") {
      YGNodeStyleSetAlignContent(node, alignFromString(value));
    } else if (key == "align-self") {
      YGNodeStyleSetAlignSelf(node, alignFromString(value));
    } else if (key == "flex-wrap") {
      YGNodeStyleSetFlexWrap(node, wrapFromString(value));
    } else if (key == "overflow") {
      YGNodeStyleSetOverflow(node, overflowFromString(value));
    } else if (key == "display") {
      YGNodeStyleSetDisplay(node, displayFromString(value));
    } else if (key == "position-type") {
      YGNodeStyleSetPositionType(node, positionTypeFromString(value));
    } else if (key == "flex-grow") {
      YGNodeStyleSetFlexGrow(node, value);
    } else if (key == "flex-shrink") {
      YGNodeStyleSetFlexShrink(node, value);
    } else if (key == "flex") {
      YGNodeStyleSetFlex(node, value);
    } else if (key == "flex-basis") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitAuto) {
        YGNodeStyleSetFlexBasisAuto(node);
      } else if (unit == YGUnitPoint) {
        YGNodeStyleSetFlexBasis(node, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetFlexBasisPercent(node, value["value"]);
      }
    } else if (key.starts_with("position")) {
      YGEdge edge = edgeFromString(edgeStringFromPropertyName(key, "position"));
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetPosition(node, edge, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetPositionPercent(node, edge, value["value"]);
      }
    } else if (key.starts_with("padding")) {
      YGEdge edge = edgeFromString(edgeStringFromPropertyName(key, "padding"));
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetPadding(node, edge, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetPaddingPercent(node, edge, value["value"]);
      }
    } else if (key.starts_with("border")) {
      YGEdge edge = edgeFromString(edgeStringFromPropertyName(key, "border"));
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetBorder(node, edge, value["value"]);
      }
    } else if (key.starts_with("margin")) {
      YGEdge edge = edgeFromString(edgeStringFromPropertyName(key, "margin"));
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetMargin(node, edge, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetMarginPercent(node, edge, value["value"]);
      } else if (unit == YGUnitAuto) {
        YGNodeStyleSetMarginAuto(node, edge);
      }
    } else if (key == "gap") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetGap(node, YGGutterAll, value["value"]);
      }
    } else if (key == "column-gap") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetGap(node, YGGutterColumn, value["value"]);
      }
    } else if (key == "row-gap") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetGap(node, YGGutterRow, value["value"]);
      }
    } else if (key == "height") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitAuto) {
        YGNodeStyleSetHeightAuto(node);
      } else if (unit == YGUnitPoint) {
        YGNodeStyleSetHeight(node, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetHeightPercent(node, value["value"]);
      }
    } else if (key == "width") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitAuto) {
        YGNodeStyleSetWidthAuto(node);
      } else if (unit == YGUnitPoint) {
        YGNodeStyleSetWidth(node, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetWidthPercent(node, value["value"]);
      }
    } else if (key == "min-height") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetMinHeight(node, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetMinHeightPercent(node, value["value"]);
      }
    } else if (key == "min-width") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetMinWidth(node, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetMinWidthPercent(node, value["value"]);
      }
    } else if (key == "max-height") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetMaxHeight(node, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetMaxHeightPercent(node, value["value"]);
      }
    } else if (key == "max-width") {
      YGUnit unit = unitFromJson(value);
      if (unit == YGUnitPoint) {
        YGNodeStyleSetMaxWidth(node, value["value"]);
      } else if (unit == YGUnitPercent) {
        YGNodeStyleSetMaxWidthPercent(node, value["value"]);
      }
    }
  }
}

std::shared_ptr<YGNode> buildNodeFromJson(
    const json& j,
    std::shared_ptr<const YGConfig> config,
    std::shared_ptr<SerializedMeasureFuncMap> fns) {
  std::shared_ptr<YGNode> node(YGNodeNewWithConfig(config.get()), YGNodeFree);

  if (!j.contains("node") || j["node"].is_null()) {
    return node;
  }

  json nodeState = j["node"];
  for (json::iterator it = nodeState.begin(); it != nodeState.end(); it++) {
    if (it.key() == "always-forms-containing-block") {
      YGNodeSetAlwaysFormsContainingBlock(node.get(), it.value());
    } else if (it.key() == "measure-funcs") {
      std::vector<SerializedMeasureFunc> vec{};
      for (auto measureFuncJson : it.value()) {
        vec.push_back(serializedMeasureFuncFromJson(measureFuncJson));
      }
      fns->insert(std::make_pair(node.get(), vec));
      YGNodeSetContext(node.get(), it.value().is_null() ? nullptr : fns.get());
      YGNodeSetMeasureFunc(node.get(), mockMeasureFunc);
    }
  }

  return node;
}

std::shared_ptr<YogaNodeAndConfig> buildTreeFromJson(
    const json& j,
    std::shared_ptr<SerializedMeasureFuncMap> fns,
    std::shared_ptr<YogaNodeAndConfig> parent,
    size_t index) {
  auto config = buildConfigFromJson(j);
  auto node = buildNodeFromJson(j, config, fns);
  auto wrapper = std::make_shared<YogaNodeAndConfig>(
      node, config, std::vector<std::shared_ptr<YogaNodeAndConfig>>{});

  if (parent != nullptr) {
    YGNodeInsertChild(parent->node_.get(), node.get(), index);
    parent->children_.push_back(wrapper);
  }

  setStylesFromJson(j, node.get());

  if (j.contains("children")) {
    json children = j["children"];
    size_t childIndex = 0;
    for (const json& child : children) {
      buildTreeFromJson(child, fns, wrapper, childIndex);
      childIndex++;
    }
  }

  return wrapper;
}

BenchmarkResult generateBenchmark(json& capture) {
  auto fns = std::make_shared<SerializedMeasureFuncMap>();

  auto treeCreationBegin = steady_clock::now();
  std::shared_ptr<YogaNodeAndConfig> root =
      buildTreeFromJson(capture["tree"], fns, nullptr, 0 /*index*/);
  auto treeCreationEnd = steady_clock::now();

  json layoutInputs = capture["layout-inputs"];
  float availableWidth = layoutInputs["available-width"];
  float availableHeight = layoutInputs["available-height"];
  YGDirection direction = directionFromString(layoutInputs["owner-direction"]);

  auto layoutBegin = steady_clock::now();
  YGNodeCalculateLayout(
      root->node_.get(), availableWidth, availableHeight, direction);
  auto layoutEnd = steady_clock::now();

  return BenchmarkResult{
      treeCreationEnd - treeCreationBegin, layoutEnd - layoutBegin};
}

static void printBenchmarkResult(
    const std::string& name,
    SteadyClockDurations& durations) {
  std::array<double, kNumRepetitions> timesInMs{};
  double mean = 0;
  for (uint32_t i = 0; i < kNumRepetitions; i++) {
    auto ms = duration<double, std::milli>(durations[i]).count();
    timesInMs[i] = ms;
    mean += ms;
  }
  mean /= kNumRepetitions;

  std::sort(timesInMs.begin(), timesInMs.end());
  double median = timesInMs[kNumRepetitions / 2];

  double variance = 0;
  for (uint32_t i = 0; i < kNumRepetitions; i++) {
    variance += std::pow(timesInMs[i] - mean, 2);
  }
  variance /= kNumRepetitions;
  double stddev = std::sqrt(variance);

  printf("%s: median: %lf ms, stddev: %lf ms\n", name.c_str(), median, stddev);
}

void benchmark(std::filesystem::path& capturesDir) {
  for (auto& capture : std::filesystem::directory_iterator(capturesDir)) {
    if (capture.is_directory() || capture.path().extension() != ".json") {
      continue;
    }

    SteadyClockDurations treeCreationDurations;
    SteadyClockDurations layoutDurations;
    SteadyClockDurations totalDurations;

    std::ifstream captureFile(capture.path());
    json j = json::parse(captureFile);
    std::string captureName = capture.path().stem().string();

    std::cout << "Starting benchmark for " << captureName << std::endl;
    for (uint32_t i = 0; i < kNumRepetitions; i++) {
      BenchmarkResult result = generateBenchmark(j);
      treeCreationDurations[i] = result.treeCreationDuration;
      layoutDurations[i] = result.layoutDuration;
      totalDurations[i] = result.treeCreationDuration + result.layoutDuration;
    }

    printBenchmarkResult(captureName + " tree creation", treeCreationDurations);
    printBenchmarkResult(captureName + " layout", layoutDurations);
    printBenchmarkResult(captureName + " total", totalDurations);

    std::cout << std::endl;
  }
}

} // namespace facebook::yoga

int main(int argc, char* argv[]) {
  if (argc == 2) {
    std::filesystem::path capturesDir = argv[argc - 1];
    facebook::yoga::benchmark(capturesDir);
  } else {
    throw std::invalid_argument("Expecting a path as an argument");
    return 1;
  }

  return 0;
}


================================================
FILE: benchmark/Benchmark.h
================================================
/*
 * 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.
 */

#pragma once

#include <chrono>
#include <memory>
#include <string>
#include <utility>
#include <vector>

#include <yoga/Yoga.h>

namespace facebook::yoga {

struct YogaNodeAndConfig {
  YogaNodeAndConfig(
      std::shared_ptr<YGNode> node,
      std::shared_ptr<const YGConfig> config,
      std::vector<std::shared_ptr<YogaNodeAndConfig>> children)
      : node_(std::move(node)),
        config_(std::move(config)),
        children_(std::move(children)) {}

  std::shared_ptr<YGNode> node_;
  std::shared_ptr<const YGConfig> config_;
  std::vector<std::shared_ptr<YogaNodeAndConfig>> children_;
};

struct BenchmarkResult {
  std::chrono::steady_clock::duration treeCreationDuration;
  std::chrono::steady_clock::duration layoutDuration;
};

} // namespace facebook::yoga


================================================
FILE: benchmark/CMakeLists.txt
================================================
# 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.

cmake_minimum_required(VERSION 3.13...3.26)
project(benchmark)
set(CMAKE_VERBOSE_MAKEFILE on)

set(YOGA_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/..)
include(${YOGA_ROOT}/cmake/project-defaults.cmake)

add_subdirectory(${YOGA_ROOT}/yoga ${CMAKE_CURRENT_BINARY_DIR}/yoga)

file(GLOB SOURCES_LEGACY CONFIGURE_DEPENDS
    ${CMAKE_CURRENT_SOURCE_DIR}/*.c)
file(GLOB SOURCES CONFIGURE_DEPENDS
    ${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)

add_executable(benchmark ${SOURCES})
add_executable(benchmarklegacy ${SOURCES_LEGACY})

target_link_libraries(benchmark yogacore)
target_link_libraries(benchmarklegacy yogacore)
target_include_directories(benchmark
    PRIVATE
    $<BUILD_INTERFACE:${YOGA_ROOT}/lib>)


================================================
FILE: benchmark/TreeDeserialization.cpp
================================================
/*
 * 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.
 */

#include <memory>
#include <vector>

#include <benchmark/TreeDeserialization.h>
#include <capture/CaptureTree.h>
#include <nlohmann/json.hpp>
#include <yoga/Yoga.h>

namespace facebook::yoga {

using namespace nlohmann;

static inline bool isAuto(json& j) {
  return j.is_string() && j == "auto";
}

static inline bool isUndefined(json& j) {
  return j.is_string() && j == "undefined";
}

static inline std::string invalidArgumentMessage(
    const std::string& arg,
    const std::string& enumName) {
  return arg + " does not represent any " + enumName + " values";
}

static inline float floatFromJson(json& j) {
  float result = YGUndefined;
  if (!j.is_null()) {
    result = j;
  }

  return result;
}

YGFlexDirection flexDirectionFromString(const std::string& str) {
  if (str == "row") {
    return YGFlexDirectionRow;
  } else if (str == "row-reverse") {
    return YGFlexDirectionRowReverse;
  } else if (str == "column") {
    return YGFlexDirectionColumn;
  } else if (str == "column-reverse") {
    return YGFlexDirectionColumnReverse;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGFlexDirection"));
  }
}

YGJustify justifyContentFromString(const std::string& str) {
  if (str == "flex-start") {
    return YGJustifyFlexStart;
  } else if (str == "center") {
    return YGJustifyCenter;
  } else if (str == "flex-end") {
    return YGJustifyFlexEnd;
  } else if (str == "space-between") {
    return YGJustifySpaceBetween;
  } else if (str == "space-around") {
    return YGJustifySpaceAround;
  } else if (str == "space-evenly") {
    return YGJustifySpaceEvenly;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGJustify"));
  }
}

YGAlign alignFromString(const std::string& str) {
  if (str == "auto") {
    return YGAlignAuto;
  } else if (str == "flex-start") {
    return YGAlignFlexStart;
  } else if (str == "center") {
    return YGAlignCenter;
  } else if (str == "flex-end") {
    return YGAlignFlexEnd;
  } else if (str == "stretch") {
    return YGAlignStretch;
  } else if (str == "baseline") {
    return YGAlignBaseline;
  } else if (str == "space-between") {
    return YGAlignSpaceBetween;
  } else if (str == "space-around") {
    return YGAlignSpaceAround;
  } else if (str == "space-evenly") {
    return YGAlignSpaceEvenly;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGAlign"));
  }
}

YGWrap wrapFromString(const std::string& str) {
  if (str == "no-wrap") {
    return YGWrapNoWrap;
  } else if (str == "wrap") {
    return YGWrapWrap;
  } else if (str == "wrap-reverse") {
    return YGWrapWrapReverse;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGAlign"));
  }
}

YGOverflow overflowFromString(const std::string& str) {
  if (str == "visible") {
    return YGOverflowVisible;
  } else if (str == "hidden") {
    return YGOverflowHidden;
  } else if (str == "scroll") {
    return YGOverflowScroll;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGAlign"));
  }
}

YGDisplay displayFromString(const std::string& str) {
  if (str == "flex") {
    return YGDisplayFlex;
  } else if (str == "none") {
    return YGDisplayNone;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGAlign"));
  }
}

YGPositionType positionTypeFromString(const std::string& str) {
  if (str == "static") {
    return YGPositionTypeStatic;
  } else if (str == "relative") {
    return YGPositionTypeRelative;
  } else if (str == "absolute") {
    return YGPositionTypeAbsolute;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGAlign"));
  }
}

YGUnit unitFromJson(json& j) {
  if (isAuto(j)) {
    return YGUnitAuto;
  }
  if (isUndefined(j)) {
    return YGUnitUndefined;
  }

  std::string unit = j["unit"];
  if (unit == "px") {
    return YGUnitPoint;
  } else if (unit == "pct") {
    return YGUnitPercent;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(unit, "YGUnit"));
  }
}

YGEdge edgeFromString(const std::string& str) {
  if (str == "left") {
    return YGEdgeLeft;
  } else if (str == "top") {
    return YGEdgeTop;
  } else if (str == "right") {
    return YGEdgeRight;
  } else if (str == "bottom") {
    return YGEdgeBottom;
  } else if (str == "start") {
    return YGEdgeStart;
  } else if (str == "end") {
    return YGEdgeEnd;
  } else if (str == "horizontal") {
    return YGEdgeHorizontal;
  } else if (str == "vertical") {
    return YGEdgeVertical;
  } else if (str == "all") {
    return YGEdgeAll;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGEdge"));
  }
}

YGErrata errataFromString(const std::string& str) {
  if (str == "none") {
    return YGErrataNone;
  } else if (str == "all") {
    return YGErrataAll;
  } else if (str == "classic") {
    return YGErrataClassic;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGErrata"));
  }
}

YGExperimentalFeature experimentalFeatureFromString(const std::string& str) {
  if (str == "web-flex-basis") {
    return YGExperimentalFeatureWebFlexBasis;
  } else {
    throw std::invalid_argument(
        invalidArgumentMessage(str, "YGExperimentalFeature"));
  }
}

std::string edgeStringFromPropertyName(
    const json::iterator& it,
    const std::string& propertyName) {
  return it.key().substr(propertyName.length() + 1);
}

YGDirection directionFromString(const std::string& str) {
  if (str == "ltr") {
    return YGDirectionLTR;
  } else if (str == "rtl") {
    return YGDirectionRTL;
  } else if (str == "inherit") {
    return YGDirectionInherit;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGDirection"));
  }
}

YGMeasureMode measureModeFromString(const std::string& str) {
  if (str == "at-most") {
    return YGMeasureModeAtMost;
  } else if (str == "exactly") {
    return YGMeasureModeExactly;
  } else if (str == "undefined") {
    return YGMeasureModeUndefined;
  } else {
    throw std::invalid_argument(invalidArgumentMessage(str, "YGMeasureMode"));
  }
}

SerializedMeasureFunc serializedMeasureFuncFromJson(json& j) {
  return SerializedMeasureFunc{
      .inputWidth = floatFromJson(j["width"]),
      .widthMode = measureModeFromString(j["width-mode"]),
      .inputHeight = floatFromJson(j["height"]),
      .heightMode = measureModeFromString(j["height-mode"]),
      .outputWidth = floatFromJson(j["output-width"]),
      .outputHeight = floatFromJson(j["output-height"]),
      .durationNs = j["duration-ns"]};
}
} // namespace facebook::yoga


================================================
FILE: benchmark/TreeDeserialization.h
================================================
/*
 * 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.
 */

#pragma once

#include <memory>
#include <vector>

#include <capture/CaptureTree.h>
#include <nlohmann/json.hpp>
#include <yoga/Yoga.h>

namespace facebook::yoga {

using namespace nlohmann;

YGFlexDirection flexDirectionFromString(const std::string& str);

YGJustify justifyContentFromString(const std::string& str);

YGAlign alignFromString(const std::string& str);

YGWrap wrapFromString(const std::string& str);

YGOverflow overflowFromString(const std::string& str);

YGDisplay displayFromString(const std::string& str);

YGPositionType positionTypeFromString(const std::string& str);

YGUnit unitFromJson(json& j);

YGEdge edgeFromString(const std::string& str);

YGErrata errataFromString(const std::string& str);

YGExperimentalFeature experimentalFeatureFromString(const std::string& str);

std::string edgeStringFromPropertyName(
    const json::iterator& it,
    const std::string& propertyName);

YGDirection directionFromString(const std::string& str);

YGMeasureMode measureModeFromString(const std::string& str);

SerializedMeasureFunc serializedMeasureFuncFromJson(json& j);
} // namespace facebook::yoga


================================================
FILE: benchmark/YGBenchmark.c
================================================
/*
 * 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.
 */

#include <math.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#include <yoga/Yoga.h>

#define NUM_REPETITIONS 1000

#define YGBENCHMARKS(BLOCK)                \
  int main(int argc, char const* argv[]) { \
    (void)argc;                            \
    (void)argv;                            \
    clock_t __start;                       \
    clock_t __endTimes[NUM_REPETITIONS];   \
    {                                      \
      BLOCK                                \
    }                                      \
    return 0;                              \
  }

#define YGBENCHMARK(NAME, BLOCK)                         \
  __start = clock();                                     \
  for (uint32_t __i = 0; __i < NUM_REPETITIONS; __i++) { \
    {BLOCK} __endTimes[__i] = clock();                   \
  }                                                      \
  __printBenchmarkResult(NAME, __start, __endTimes);

static int __compareDoubles(const void* a, const void* b) {
  double arg1 = *(const double*)a;
  double arg2 = *(const double*)b;

  if (arg1 < arg2) {
    return -1;
  }

  if (arg1 > arg2) {
    return 1;
  }

  return 0;
}

static void
__printBenchmarkResult(char* name, clock_t start, const clock_t* endTimes) {
  double timesInMs[NUM_REPETITIONS];
  double mean = 0;
  clock_t lastEnd = start;
  for (uint32_t i = 0; i < NUM_REPETITIONS; i++) {
    timesInMs[i] =
        ((double)(endTimes[i] - lastEnd)) / (double)CLOCKS_PER_SEC * 1000;
    lastEnd = endTimes[i];
    mean += timesInMs[i];
  }
  mean /= NUM_REPETITIONS;

  qsort(timesInMs, NUM_REPETITIONS, sizeof(double), __compareDoubles);
  double median = timesInMs[NUM_REPETITIONS / 2];

  double variance = 0;
  for (uint32_t i = 0; i < NUM_REPETITIONS; i++) {
    variance += pow(timesInMs[i] - mean, 2);
  }
  variance /= NUM_REPETITIONS;
  double stddev = sqrt(variance);

  printf("%s: median: %lf ms, stddev: %lf ms\n", name, median, stddev);
}

static YGSize _measure(
    YGNodeConstRef node,
    float width,
    YGMeasureMode widthMode,
    float height,
    YGMeasureMode heightMode) {
  (void)node;
  return (YGSize){
      .width = widthMode == YGMeasureModeUndefined ? 10 : width,
      .height = heightMode == YGMeasureModeUndefined ? 10 : height,
  };
}

YGBENCHMARKS({
  YGBENCHMARK("Stack with flex", {
    const YGNodeRef root = YGNodeNew();
    YGNodeStyleSetWidth(root, 100);
    YGNodeStyleSetHeight(root, 100);

    for (uint32_t i = 0; i < 10; i++) {
      const YGNodeRef child = YGNodeNew();
      YGNodeSetMeasureFunc(child, _measure);
      YGNodeStyleSetFlex(child, 1);
      YGNodeInsertChild(root, child, 0);
    }

    YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
    YGNodeFreeRecursive(root);
  });

  YGBENCHMARK("Align stretch in undefined axis", {
    const YGNodeRef root = YGNodeNew();

    for (uint32_t i = 0; i < 10; i++) {
      const YGNodeRef child = YGNodeNew();
      YGNodeStyleSetHeight(child, 20);
      YGNodeSetMeasureFunc(child, _measure);
      YGNodeInsertChild(root, child, 0);
    }

    YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
    YGNodeFreeRecursive(root);
  });

  YGBENCHMARK("Nested flex", {
    const YGNodeRef root = YGNodeNew();

    for (uint32_t i = 0; i < 10; i++) {
      const YGNodeRef child = YGNodeNew();
      YGNodeStyleSetFlex(child, 1);
      YGNodeInsertChild(root, child, 0);

      for (uint32_t ii = 0; ii < 10; ii++) {
        const YGNodeRef grandChild = YGNodeNew();
        YGNodeSetMeasureFunc(grandChild, _measure);
        YGNodeStyleSetFlex(grandChild, 1);
        YGNodeInsertChild(child, grandChild, 0);
      }
    }

    YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
    YGNodeFreeRecursive(root);
  });

  YGBENCHMARK("Huge nested layout", {
    const YGNodeRef root = YGNodeNew();

    for (uint32_t i = 0; i < 10; i++) {
      const YGNodeRef child = YGNodeNew();
      YGNodeStyleSetFlexGrow(child, 1);
      YGNodeStyleSetWidth(child, 10);
      YGNodeStyleSetHeight(child, 10);
      YGNodeInsertChild(root, child, 0);

      for (uint32_t ii = 0; ii < 10; ii++) {
        const YGNodeRef grandChild = YGNodeNew();
        YGNodeStyleSetFlexDirection(grandChild, YGFlexDirectionRow);
        YGNodeStyleSetFlexGrow(grandChild, 1);
        YGNodeStyleSetWidth(grandChild, 10);
        YGNodeStyleSetHeight(grandChild, 10);
        YGNodeInsertChild(child, grandChild, 0);

        for (uint32_t iii = 0; iii < 10; iii++) {
          const YGNodeRef grandGrandChild = YGNodeNew();
          YGNodeStyleSetFlexGrow(grandGrandChild, 1);
          YGNodeStyleSetWidth(grandGrandChild, 10);
          YGNodeStyleSetHeight(grandGrandChild, 10);
          YGNodeInsertChild(grandChild, grandGrandChild, 0);

          for (uint32_t iiii = 0; iiii < 10; iiii++) {
            const YGNodeRef grandGrandGrandChild = YGNodeNew();
            YGNodeStyleSetFlexDirection(
                grandGrandGrandChild, YGFlexDirectionRow);
            YGNodeStyleSetFlexGrow(grandGrandGrandChild, 1);
            YGNodeStyleSetWidth(grandGrandGrandChild, 10);
            YGNodeStyleSetHeight(grandGrandGrandChild, 10);
            YGNodeInsertChild(grandGrandChild, grandGrandGrandChild, 0);
          }
        }
      }
    }

    YGNodeCalculateLayout(root, YGUndefined, YGUndefined, YGDirectionLTR);
    YGNodeFreeRecursive(root);
  });
});


================================================
FILE: benchmark/benchmark
================================================
#!/bin/sh
# 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.
cd "$(dirname "$0")" || exit
CAPTURES_PATH="$(dirname "$(realpath "$0")")""/captures"

if [ "$1" = "buck" ]; then
  buck run @//fbcode/mode/opt :benchmarkCXX "${CAPTURES_PATH}"
else
  cmake -B build -S . -D CMAKE_BUILD_TYPE=Release
  cmake --build build
  build/benchmark "${CAPTURES_PATH}"
fi


================================================
FILE: benchmark/captures/chat-mac.json
================================================
{
  "layout-inputs": {
    "available-height": 768.0,
    "available-width": 1024.0,
    "owner-direction": "ltr"
  },
  "tree": {
    "children": [
      {
        "children": [
          {
            "children": [
              {
                "config": {
                  "errata": "all"
                },
                "style": {
                  "flex": 1.0,
                  "position-bottom": {
                    "unit": "px",
                    "value": 0.0
                  },
                  "position-left": {
                    "unit": "px",
                    "value": 0.0
                  },
                  "position-type": "absolute"
                }
              },
              {
                "config": {
                  "errata": "all"
                },
                "style": {
                  "flex": 1.0,
                  "position-bottom": {
                    "unit": "px",
                    "value": 0.0
                  },
                  "position-left": {
                    "unit": "px",
                    "value": 0.0
                  },
                  "position-type": "absolute"
                }
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "children": [
                                          {
                                            "children": [
                                              {
                                                "children": [
                                                  {
                                                    "children": [
                                                      {
                                                        "children": [
                                                          {
                                                            "children": [
                                                              {
                                                                "children": [
                                                                  {
                                                                    "children": [
                                                                      {
                                                                        "children": [
                                                                          {
                                                                            "config": {
                                                                              "errata": "all"
                                                                            },
                                                                            "style": {
                                                                              "height": {
                                                                                "unit": "px",
                                                                                "value": 28.0
                                                                              },
                                                                              "overflow": "hidden",
                                                                              "width": {
                                                                                "unit": "px",
                                                                                "value": 28.0
                                                                              }
                                                                            }
                                                                          }
                                                                        ],
                                                                        "config": {
                                                                          "errata": "all"
                                                                        },
                                                                        "style": {
                                                                          "height": {
                                                                            "unit": "px",
                                                                            "value": 28.0
                                                                          },
                                                                          "width": {
                                                                            "unit": "px",
                                                                            "value": 28.0
                                                                          }
                                                                        }
                                                                      }
                                                                    ],
                                                                    "config": {
                                                                      "errata": "all"
                                                                    },
                                                                    "style": {
                                                                      "align-self": "center",
                                                                      "height": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      },
                                                                      "margin-all": {
                                                                        "unit": "px",
                                                                        "value": 6.0
                                                                      },
                                                                      "width": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "config": {
                                                                  "errata": "all"
                                                                },
                                                                "style": {
                                                                  "align-items": "center",
                                                                  "flex-direction": "row",
                                                                  "flex-grow": 1.0,
                                                                  "flex-shrink": 1.0,
                                                                  "justify-content": "center"
                                                                }
                                                              }
                                                            ],
                                                            "config": {
                                                              "errata": "all"
                                                            },
                                                            "style": {
                                                              "flex-direction": "row",
                                                              "margin-horizontal": {
                                                                "unit": "px",
                                                                "value": 8.0
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "children": [
                                                              {
                                                                "children": [
                                                                  {
                                                                    "children": [
                                                                      {
                                                                        "children": [
                                                                          {
                                                                            "config": {
                                                                              "errata": "all"
                                                                            },
                                                                            "style": {
                                                                              "height": {
                                                                                "unit": "px",
                                                                                "value": 28.0
                                                                              },
                                                                              "overflow": "hidden",
                                                                              "width": {
                                                                                "unit": "px",
                                                                                "value": 28.0
                                                                              }
                                                                            }
                                                                          }
                                                                        ],
                                                                        "config": {
                                                                          "errata": "all"
                                                                        },
                                                                        "style": {
                                                                          "height": {
                                                                            "unit": "px",
                                                                            "value": 28.0
                                                                          },
                                                                          "width": {
                                                                            "unit": "px",
                                                                            "value": 28.0
                                                                          }
                                                                        }
                                                                      }
                                                                    ],
                                                                    "config": {
                                                                      "errata": "all"
                                                                    },
                                                                    "style": {
                                                                      "align-self": "center",
                                                                      "height": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      },
                                                                      "margin-all": {
                                                                        "unit": "px",
                                                                        "value": 6.0
                                                                      },
                                                                      "width": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "config": {
                                                                  "errata": "all"
                                                                },
                                                                "style": {
                                                                  "align-items": "center",
                                                                  "flex-direction": "row",
                                                                  "flex-grow": 1.0,
                                                                  "flex-shrink": 1.0,
                                                                  "justify-content": "center"
                                                                }
                                                              }
                                                            ],
                                                            "config": {
                                                              "errata": "all"
                                                            },
                                                            "style": {
                                                              "flex-direction": "row",
                                                              "margin-horizontal": {
                                                                "unit": "px",
                                                                "value": 8.0
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "children": [
                                                              {
                                                                "children": [
                                                                  {
                                                                    "children": [
                                                                      {
                                                                        "children": [
                                                                          {
                                                                            "config": {
                                                                              "errata": "all"
                                                                            },
                                                                            "style": {
                                                                              "height": {
                                                                                "unit": "px",
                                                                                "value": 28.0
                                                                              },
                                                                              "overflow": "hidden",
                                                                              "width": {
                                                                                "unit": "px",
                                                                                "value": 28.0
                                                                              }
                                                                            }
                                                                          }
                                                                        ],
                                                                        "config": {
                                                                          "errata": "all"
                                                                        },
                                                                        "style": {
                                                                          "height": {
                                                                            "unit": "px",
                                                                            "value": 28.0
                                                                          },
                                                                          "width": {
                                                                            "unit": "px",
                                                                            "value": 28.0
                                                                          }
                                                                        }
                                                                      }
                                                                    ],
                                                                    "config": {
                                                                      "errata": "all"
                                                                    },
                                                                    "style": {
                                                                      "align-self": "center",
                                                                      "height": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      },
                                                                      "margin-all": {
                                                                        "unit": "px",
                                                                        "value": 6.0
                                                                      },
                                                                      "width": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "config": {
                                                                  "errata": "all"
                                                                },
                                                                "style": {
                                                                  "align-items": "center",
                                                                  "flex-direction": "row",
                                                                  "flex-grow": 1.0,
                                                                  "flex-shrink": 1.0,
                                                                  "justify-content": "center"
                                                                }
                                                              }
                                                            ],
                                                            "config": {
                                                              "errata": "all"
                                                            },
                                                            "style": {
                                                              "flex-direction": "row",
                                                              "margin-horizontal": {
                                                                "unit": "px",
                                                                "value": 8.0
                                                              }
                                                            }
                                                          },
                                                          {
                                                            "children": [
                                                              {
                                                                "children": [
                                                                  {
                                                                    "children": [
                                                                      {
                                                                        "children": [
                                                                          {
                                                                            "config": {
                                                                              "errata": "all"
                                                                            },
                                                                            "style": {
                                                                              "height": {
                                                                                "unit": "px",
                                                                                "value": 28.0
                                                                              },
                                                                              "overflow": "hidden",
                                                                              "width": {
                                                                                "unit": "px",
                                                                                "value": 28.0
                                                                              }
                                                                            }
                                                                          }
                                                                        ],
                                                                        "config": {
                                                                          "errata": "all"
                                                                        },
                                                                        "style": {
                                                                          "height": {
                                                                            "unit": "px",
                                                                            "value": 28.0
                                                                          },
                                                                          "width": {
                                                                            "unit": "px",
                                                                            "value": 28.0
                                                                          }
                                                                        }
                                                                      }
                                                                    ],
                                                                    "config": {
                                                                      "errata": "all"
                                                                    },
                                                                    "style": {
                                                                      "align-self": "center",
                                                                      "height": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      },
                                                                      "margin-all": {
                                                                        "unit": "px",
                                                                        "value": 6.0
                                                                      },
                                                                      "width": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "config": {
                                                                  "errata": "all"
                                                                },
                                                                "style": {
                                                                  "align-items": "center",
                                                                  "flex-direction": "row",
                                                                  "flex-grow": 1.0,
                                                                  "flex-shrink": 1.0,
                                                                  "justify-content": "center"
                                                                }
                                                              }
                                                            ],
                                                            "config": {
                                                              "errata": "all"
                                                            },
                                                            "style": {
                                                              "flex-direction": "row",
                                                              "margin-horizontal": {
                                                                "unit": "px",
                                                                "value": 8.0
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "config": {
                                                          "errata": "all"
                                                        },
                                                        "style": null
                                                      }
                                                    ],
                                                    "config": {
                                                      "errata": "all"
                                                    },
                                                    "style": null
                                                  },
                                                  {
                                                    "config": {
                                                      "errata": "all"
                                                    },
                                                    "style": {
                                                      "flex-grow": 1.0,
                                                      "flex-shrink": 1.0
                                                    }
                                                  },
                                                  {
                                                    "children": [
                                                      {
                                                        "children": [
                                                          {
                                                            "children": [
                                                              {
                                                                "children": [
                                                                  {
                                                                    "children": [
                                                                      {
                                                                        "children": [
                                                                          {
                                                                            "children": [
                                                                              {
                                                                                "children": [
                                                                                  {
                                                                                    "children": [
                                                                                      {
                                                                                        "children": [
                                                                                          {
                                                                                            "config": {
                                                                                              "errata": "all"
                                                                                            },
                                                                                            "style": {
                                                                                              "position-bottom": {
                                                                                                "unit": "px",
                                                                                                "value": 0.0
                                                                                              },
                                                                                              "position-left": {
                                                                                                "unit": "px",
                                                                                                "value": 0.0
                                                                                              },
                                                                                              "position-right": {
                                                                                                "unit": "px",
                                                                                                "value": 0.0
                                                                                              },
                                                                                              "position-top": {
                                                                                                "unit": "px",
                                                                                                "value": 0.0
                                                                                              },
                                                                                              "position-type": "absolute"
                                                                                            }
                                                                                          }
                                                                                        ],
                                                                                        "config": {
                                                                                          "errata": "all"
                                                                                        },
                                                                                        "style": {
                                                                                          "align-items": "center",
                                                                                          "height": {
                                                                                            "unit": "px",
                                                                                            "value": 32.0
                                                                                          },
                                                                                          "justify-content": "center",
                                                                                          "overflow": "hidden",
                                                                                          "width": {
                                                                                            "unit": "px",
                                                                                            "value": 32.0
                                                                                          }
                                                                                        }
                                                                                      }
                                                                                    ],
                                                                                    "config": {
                                                                                      "errata": "all"
                                                                                    },
                                                                                    "style": null
                                                                                  }
                                                                                ],
                                                                                "config": {
                                                                                  "errata": "all"
                                                                                },
                                                                                "style": null
                                                                              }
                                                                            ],
                                                                            "config": {
                                                                              "errata": "all"
                                                                            },
                                                                            "style": null
                                                                          }
                                                                        ],
                                                                        "config": {
                                                                          "errata": "all"
                                                                        },
                                                                        "style": null
                                                                      }
                                                                    ],
                                                                    "config": {
                                                                      "errata": "all"
                                                                    },
                                                                    "style": {
                                                                      "flex": 1.0
                                                                    }
                                                                  }
                                                                ],
                                                                "config": {
                                                                  "errata": "all"
                                                                },
                                                                "style": {
                                                                  "flex": 1.0
                                                                }
                                                              }
                                                            ],
                                                            "config": {
                                                              "errata": "all"
                                                            },
                                                            "style": {
                                                              "align-self": "center",
                                                              "height": {
                                                                "unit": "px",
                                                                "value": 32.0
                                                              },
                                                              "margin-bottom": {
                                                                "unit": "px",
                                                                "value": 13.0
                                                              },
                                                              "margin-end": {
                                                                "unit": "px",
                                                                "value": 13.0
                                                              },
                                                              "margin-start": {
                                                                "unit": "px",
                                                                "value": 14.0
                                                              },
                                                              "margin-top": {
                                                                "unit": "px",
                                                                "value": 12.0
                                                              },
                                                              "width": {
                                                                "unit": "px",
                                                                "value": 32.0
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "config": {
                                                          "errata": "all"
                                                        },
                                                        "style": {
                                                          "align-content": "center",
                                                          "flex-direction": "row",
                                                          "justify-content": "center"
                                                        }
                                                      }
                                                    ],
                                                    "config": {
                                                      "errata": "all"
                                                    },
                                                    "style": null
                                                  }
                                                ],
                                                "config": {
                                                  "errata": "all"
                                                },
                                                "style": {
                                                  "align-content": "stretch",
                                                  "flex": 1.0,
                                                  "margin-top": {
                                                    "unit": "px",
                                                    "value": 28.0
                                                  }
                                                }
                                              }
                                            ],
                                            "config": {
                                              "errata": "all"
                                            },
                                            "style": {
                                              "overflow": "hidden",
                                              "width": {
                                                "unit": "px",
                                                "value": 70.0
                                              }
                                            }
                                          },
                                          {
                                            "children": [
                                              {
                                                "config": {
                                                  "errata": "all"
                                                },
                                                "style": {
                                                  "height": {
                                                    "unit": "pct",
                                                    "value": 100.0
                                                  },
                                                  "width": {
                                                    "unit": "px",
                                                    "value": 1.0
                                                  }
                                                }
                                              }
                                            ],
                                            "config": {
                                              "errata": "all"
                                            },
                                            "style": {
                                              "margin-horizontal": {
                                                "unit": "px",
                                                "value": -1.0
                                              },
                                              "min-width": {
                                                "unit": "px",
                                                "value": 10.0
                                              },
                                              "position-bottom": {
                                                "unit": "px",
                                                "value": 0.0
                                              },
                                              "position-left": {
                                                "unit": "px",
                                                "value": 70.0
                                              },
                                              "position-top": {
                                                "unit": "px",
                                                "value": 0.0
                                              },
                                              "position-type": "absolute",
                                              "width": {
                                                "unit": "px",
                                                "value": 10.0
                                              }
                                            }
                                          },
                                          {
                                            "children": [
                                              {
                                                "children": [
                                                  {
                                                    "children": [
                                                      {
                                                        "children": [
                                                          {
                                                            "config": {
                                                              "errata": "all"
                                                            },
                                                            "node": {
                                                              "measure-funcs": [
                                                                {
                                                                  "duration-ns": 28125,
                                                                  "height": 732.0,
                                                                  "height-mode": "at-most",
                                                                  "output-height": 23.0,
                                                                  "output-width": 55.5,
                                                                  "width": 294.0,
                                                                  "width-mode": "at-most"
                                                                }
                                                              ]
                                                            },
                                                            "style": {
                                                              "margin-bottom": {
                                                                "unit": "px",
                                                                "value": -2.0
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "config": {
                                                          "errata": "all"
                                                        },
                                                        "style": {
                                                          "align-items": "flex-start",
                                                          "flex-shrink": 1.0,
                                                          "margin-left": {
                                                            "unit": "px",
                                                            "value": 16.0
                                                          }
                                                        }
                                                      },
                                                      {
                                                        "children": [
                                                          {
                                                            "children": [
                                                              {
                                                                "children": [
                                                                  {
                                                                    "config": {
                                                                      "errata": "all"
                                                                    },
                                                                    "style": {
                                                                      "height": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      },
                                                                      "overflow": "hidden",
                                                                      "width": {
                                                                        "unit": "px",
                                                                        "value": 28.0
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "config": {
                                                                  "errata": "all"
                                                                },
                                                                "style": {
                                                                  "align-items": "center",
                                                                  "border-all": {
                                                                    "unit": "px",
                                                                    "value": 0.0
                                                                  },
                                                                  "height": {
                                                                    "unit": "px",
                                                                    "value": 36.0
                                                                  },
                                                                  "justify-content": "center",
                                                                  "width": {
                                                                    "unit": "px",
                                                                    "value": 36.0
                                                                  }
                                                                }
                                                              }
                                                            ],
                                                            "config": {
                                                              "errata": "all"
                                                            },
                                                            "style": {
                                                              "align-items": "center",
                                                              "border-all": {
                                                                "unit": "px",
                                                                "value": 0.0
                                                              },
                                                              "height": {
                                                                "unit": "px",
                                                                "value": 36.0
                                                              },
                                                              "justify-content": "center",
                                                              "width": {
                                                                "unit": "px",
                                                                "value": 36.0
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "config": {
                                                          "errata": "all"
                                                        },
                                                        "style": {
                                                          "align-self": "flex-start",
                                                          "flex-direction": "row",
                                                          "margin-right": {
                                                            "unit": "px",
                                                            "value": 8.0
                                                          }
                                                        }
                                                      }
                                                    ],
                                                    "config": {
                                                      "errata": "all"
                                                    },
                                                    "style": {
                                                      "align-items": "center",
                                                      "flex-direction": "row",
                                                      "justify-content": "space-between",
                                                      "padding-bottom": {
                                                        "unit": "px",
                                                        "value": 8.0
                                                      },
                                                      "padding-top": {
                                                        "unit": "px",
                                                        "value": 30.0
                                                      }
                                                    }
                                                  },
                                                  {
                                                    "children": [
                                                      {
                                                        "children": [
                                                          {
                                                            "children": [
                                                              {
                                                                "children": [
                                                                  {
                                                                    "children": [
                                                                      {
                                                                        "children": [
                                                                          {
                                                                            "config": {
                                                                              "errata": "all"
                                                                            },
                                                                            "style": {
                                                                              "height": {
                                                                                "unit": "px",
                                                                                "value": 16.0
                                                                              },
                                                                              "overflow": "hidden",
                                                                              "width": {
                                                                                "unit": "px",
                                                                                "value": 16.0
                                                                              }
                                                                            }
                                                                          }
                                                                        ],
                                                                        "config": {
                                                                          "errata": "all"
                                                                        },
                                                                        "style": {
                                                                          "height": {
                                                                            "unit": "px",
                                                                            "value": 16.0
                                                                          },
                                                                          "margin-start": {
                                                                            "unit": "px",
                                                                            "value": 0.0
                                                                          },
                                                                          "position-top": {
                                                                            "unit": "px",
                                                                            "value": -8.0
                                                                          },
                                                                          "position-type": "absolute"
                                                                        }
                                                                      }
                                                                    ],
                                                                    "config": {
                                                                      "errata": "all"
                                                                    },
                                                                    "style": {
                                                                      "justify-content": "center",
                                                                      "margin-horizontal": {
                                                                        "unit": "px",
                                                                        "value": 4.0
                                                                      },
                                                                      "margin-vertical": {
                                                                        "unit": "px",
                                                                        "value": 0.0
                                                                      },
                                                                      "width": {
                                                                        "unit": "px",
                                                                        "value": 16.0
                                                                      }
                                                                    }
                                                                  }
                                                                ],
                                                                "config": {
                                                                  "errata": "all"
                                                                },
                                                                "style": {
                                                                  "position-left": {
                                                                    "unit": "px",
                                                                    "value": 0.0
                                                                  },
                                                                  "position-type": "absolute"
                                                                }
                                                              },
                                                              {
                                                                "config": {
                                                                  "errata": "all"
                                                                },
                                                                "node": {
                                                                  "measure-funcs": [
                                                                    {
                                                                      "duration-ns": 8625,
                                                                      "height": 659.0,
                                                                      "height-mode": "at-most",
                                                                      "output-height": 16.0,
                                                                      "output-width": 236.0,
                                                                      "width": 236.0,
                                                                      "width-mode": "exactly"
                                                                    }
                                                                  ]
                                                                },
                                                                "style": {
                                                                  "border-all": {
                                                                    "unit": "px",
                                                                    "value": 0.0
                                                                  },
                                                                  "flex": 1.0,
                                                                  "margin-all": {
                                                                    "unit": "px",
                                                                    "value": 0.0
                                                                  },
                                                                  "margin-end": {
                                                                    "unit": "px",
                                                                    "value": 0.0
                                                                  },
                                                                  "min-height": {
                                                                    "unit": "px",
                                                                    "value": 32.0
                                                                  },
                                                                  "padding-bottom": {
                                                                    "unit": "px",
                                                                    "value": 10.0
                                                                  },
                                                                  "padding-end": {
                                                                    "unit": "px",
                                                                    "value": 24.0
                                                                  },
                                                                  "padding-horizontal": {
                                                                    "unit": "px",
                                                                    "value": 10.0
                                                                  },
                                                                  "padding-start": {
                                                                    "unit": "px",
                                                                    "value": 24.0
                                                                  },
                                                                  "padding-top": {
                                                                    "unit": "px",
                                                                    "value": 10.0
                                                                  },
                                                                  "padding-vertical": {
                                                                    "unit": "px",
                                                                    "value": 6.0
                                                                  }
                                                                }
                                                              },
                                                              {
                                                                "children": [
                                                                  {
                                                                    "config": {
                                                                      "errata": "all"
                                                                    },
                                                                    "style": null
                                                                  },
                                                                  {
                                                                    "children": [
                                                                      {
                                                                        "children": [
                                                                          {
                                                                            "children": [
                                                                              {
                                                                                "config": {
                                                                                  "errata": "all"
                                                                                },
                                                                                "style": {
                                                                                  "height": {
                                                                                    "unit": "px",
                                                                                    "value": 14.0
                                                                                  },
                                                                                  "overflow": "hidden",
                                                                                  "width": {
                                                                                    "unit": "px",
                                                                                    "value": 14.0
                                                                                  }
                                                                                }
                                                                              }
                                                                            ],
                                                                            "config": {
                                                                              "errata": "all"
                                                                            },
                                                                            "style": {
                                                                              "align-items": "center",
                                                                              "border-all": {
                                                                                "unit": "px",
                                                                                "value": 0.0
                                                                              },
                                                                              "height": {
                                                                                "unit": "px",
                                                                                "value": 16.0
                                                                              },
                                                                              "justify-content": "center",
                                                                              "width": {
                                                                                "unit": "px",
                                                                                "value": 16.0
                                                                              }
                                                                            }
                                                                          }
                                                                        ],
                                                                        "config": {
                                                                          "errata": "all"
                                                                        },
                                                                        "style": {
                                                                          "align-items": "center",
                                                                          "border-all": {
                                                                            "unit": "px",
                                                                            "value": 0.0
                                                                          },
                                                                          "height": {
                                                                            "unit": "px",
                                                                            "value": 16.0
                                                                          },
                                                                          "justify-content": "center",
                                                                          "padding-all": {
                                                                            "unit": "px",
                                                                            "value": 0.0
                                                                          },
                                                                          "width": {
                                                                            "unit": "px",
                                                                            "value": 16.0
                                                                          }
                                                                        }
                                                                      }
                                                                    ],
                                                                    "config": {
                                                                      "errata": "all"
                                                                    },
                                                                    "style": {
                                                                      "display": "none"
                                                                    }
                                                                  }
                                                                ],
                                                                "config": {
                                                                  "errata": "all"
                                                                },
                                                                "style": {
                                                                  "align-items": "center",
                                                                  "flex-direction": "row",
                                                                  "position-right": {
                                                                    "unit": "px",
                                                                    "value": 8.0
                                                                  },
                                                                  "position-type": "absolute"
                                                                }
                                                              }
                                                            ],
                                                            "config": {
                                                              "errata": "all"
                                                            },
                                                            "style": {
                                                              "align-items": "center",
                                                              "border-all": {
                                                                "unit": "px",
                                                                "value": 1.0
                                                              },
                                                              "flex-direction": "row",
                                                              "margin-bottom": {
                                                                "unit": "px",
                                                                "value": 6.0
                                                              },
                                                              "margin-horizontal": {
                                                                "unit": "px",
                                                                "value": 12.0
                                                              },
                                                              "margin-top": {
                                                                "unit": "px",
                                                                "value": 7.0
                                                              },
                                                              "min-width": {
                                                                "unit": "px",
                                                                "value": 60.0
                                                              }
                                                            }
                                                          }
                                                        ],
                                                        "config": {
                                                          "errata": "all"
                                                        },
                                                        "style": null
                                                      },
                                                      {
                                                        "config": {
                                                          "errata": "all"
                                                        },
                                                        "style": {
                                                          "height": {
                                                            "unit": "px",
                                                            "value": 1.0
                                                          },
                                                          "margin-horizontal": {
                                                            "unit": "px",
                                                            "value": 12.0
                                                          }
                                                        }
                                                      },
                                                      {
                                                        "children": [
                                                          {
                                                            "children": [
                                                              {
                                                                "children": [
                                                                  {
                                                                    "children": [
                                                                      {
                                                                        "children": [
                                                                          {
                                                                            "children": [
                                                                              {
                                                                                "children": [
                                                                                  {
                                                                                    "children": [
                                                                                      {
                                                                                        "children": [
                                                                                          {
                                                                                            "children": [
                                                                                              {
                                                                                                "children": [
                                                                                                  {
                                                                                                    "children": [
                                                                                                      {
                                                                                                        "children": [
                                                                                                          {
                                                                                                            "children": [
                                                                                                              {
                                                                                                                "children": [
                                                                                                                  {
                                                                                                                    "children": [
                                                                                                                      {
                                                                                                                        "children": [
                                                                                                                          {
                                                                                                                            "children": [
                                                                                                                              {
                                                                                                                                "children": [
                                                                                                                                  {
                                                                                                                                    "config": {
                                                                                                                                      "errata": "all"
                                                                                                                                    },
                                                                                                                                    "style": {
                                                                                                                                      "position-bottom": {
                                                                                                                                        "unit": "px",
                                                                                                                                        "value": 0.0
                                                                                                                                      },
                                                                                                                                      "position-left": {
                                                                                                                                        "unit": "px",
                                                                                                                                        "value": 0.0
                                                                                                                                      },
                                                                                                                                      "position-right": {
                                                                                                                                        "unit": "px",
                                                                                                                                        "value": 0.0
                                                                                                                                      },
                                                                                                                                      "position-top": {
                                                                                                                                        "unit": "px",
                                                                                                                                        "value": 0.0
                                                                                                                                      },
                                                                                                                                      "position-type": "absolute"
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ],
                                                                                                                                "config": {
                                                                                                                                  "errata": "all"
                                                                                                                                },
                                                                                                                                "style": {
                                                                                                                                  "align-items": "center",
                                                                                                                                  "height": {
                                                                                                                                    "unit": "px",
                                                                                                                                    "value": 50.0
                                                                                                                                  },
                                                                                                                                  "justify-content": "center",
                                                                                                                                  "overflow": "hidden",
                                                                                                                                  "width": {
                                                                                                                                    "unit": "px",
                                                                                                                                    "value": 50.0
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }
                                                                                                                            ],
                                                                                                                            "config": {
                                                                                                                              "errata": "all"
                                                                                                                            },
                                                                                                                            "style": null
                                                                                                                          },
                                                                                                                          {
                                                                                                                            "children": [
                                                                                                                              {
                                                                                                                                "config": {
                                                                                                                                  "errata": "all"
                                                                                                                                },
                                                                                                                                "style": {
                                                                                                                                  "height": {
                                                                                                                                    "unit": "px",
                                                                                                                                    "value": 12.0
                                                                                                                                  },
                                                                                                                                  "width": {
                                                                                                                                    "unit": "px",
                                                                                                                                    "value": 12.0
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }
                                                                                                                            ],
                                                                                                                            "config": {
                                                                                                                              "errata": "all"
                                                                                                                            },
                                                                                                                            "style": {
                                                                                                                              "position-bottom": {
                                                                                                                                "unit": "px",
                                                                                                                                "value": 2.0
                                                                                                                              },
                                                                                                                              "position-left": {
                                                                                                                                "unit": "px",
                                                                                                                                "value": 36.0
                                                                                                                              },
                                                                                                                              "position-type": "absolute"
                                                                                                                            }
                                                                                                                          }
                                                                                                                        ],
                                                                                                                        "config": {
                                                                                                                          "errata": "all"
                                                                                                                        },
                                                                                                                        "style": null
                                                                                                                      }
                                                                                                                    ],
                                                                                                                    "config": {
                                                                                                                      "errata": "all"
                                                                                                                    },
                                                                                                                    "style": {
                                                                                                                      "align-items": "flex-end",
                                                                                                                      "justify-content": "flex-end",
                                                                                                                      "margin-bottom": {
                                                                                                                        "unit": "px",
                                                                                                                        "value": 8.0
                                                                                                                      },
                                                                                                                      "position-type": "relative"
                                                                                                                    }
                                                                                                                  },
                                                                                                                  {
                                                                                                                    "config": {
                                                                                                                      "errata": "all"
                                                                                                                    },
                                                                                                                    "node": {
                                                                                                                      "measure-funcs": [
                                                                                                                        {
                                                                                                                          "duration-ns": 8458,
                                                                                                                          "height": null,
                                                                                                                          "height-mode": "undefined",
                                                                                                                          "output-height": 14.0,
                                                                                                                          "output-width": 30.0,
                                                                                                                          "width": 50.0,
                                                                                                                          "width-mode": "at-most"
                                                                                                                        }
                                                                                                                      ]
                                                                                                                    },
                                                                                                                    "style": null
                                                                                                                  },
                                                                                                                  {
                                                                                                                    "config": {
                                                                                                                      "errata": "all"
                                                                                                                    },
                                                                                                                    "node": {
                                                                                                                      "measure-funcs": [
                                                                                                                        {
                                                                                                                          "duration-ns": 10917,
                                                                                                                          "height": null,
                                                                                                                          "height-mode": "undefined",
                                                                                                                          "output-height": 14.0,
                                                                                                                          "output-width": 36.5,
                                                                                                                          "width": 50.0,
                                                                                                                          "width-mode": "at-most"
                                                                                                                        }
                                                                                                                      ]
                                                                                                                    },
                                                                                                                    "style": null
                                                                                                                  }
                                                                                                                ],
                                                                                                                "config": {
                                                                                                                  "errata": "all"
                                                                                                                },
                                                                                                                "style": {
                                                                                                                  "align-items": "center",
                                                                                                                  "width": {
                                                                                                                    "unit": "pct",
                                                                                                                    "value": 100.0
                                                                                                                  }
                                                                                                                }
                                                                                                              }
                                                                                                            ],
                                                                                                            "config": {
                                                                                                              "errata": "all"
                                                                                                            },
                                                                                                            "style": {
                                                                                                              "margin-bottom": {
                                                                                                                "unit": "px",
                                                                                                                "value": 14.0
                                                                                                              },
                                                                                                              "margin-right": {
                                                                                                                "unit": "px",
                                                                                                                "value": 12.0
                                                                                                              },
                                                                                                              "padding-horizontal": {
                                                                                                                "unit": "px",
                                                                                                                "value": 5.0
                                                                                                              },
                                                                                                              "width": {
                                                                                                                "unit": "px",
                                                                                                                "value": 60.0
                                                                                                              }
                                                                                                            }
                                                                                                          }
                                                                                                        ],
                                                                                                        "config": {
                                                                                                          "errata": "all"
                                                                                                        },
                                                                                                        "style": {
                                                                                                          "flex-direction": "row"
                                                                                                        }
                                                                                                      },
                                                                                                      {
                                                                                                        "children": [
                                                                                                          {
                                                                                                            "children": [
                                                                                                              {
                                                                                                                "children": [
                                                                                                                  {
                                                                                                                    "children": [
                                                                                                                      {
                                                                                                                        "children": [
                                                                                                                          {
                                                                                                                            "children": [
                                                                                                                              {
                                                                                                                                "children": [
                                                                                                                                  {
                                                                                                                                    "config": {
                                                                                                                                      "errata": "all"
                                                                                                                                    },
                                                                                                                                    "style": {
                                                                                                                                      "position-bottom": {
                                                                                                                                        "unit": "px",
                                                                                                                                        "value": 0.0
                                                                                                                                      },
                                                                                                                                      "position-left": {
                                                                                                                                        "unit": "px",
                                                                                                                                        "value": 0.0
                                                                                                                                      },
                                                                                                                                      "position-right": {
                                                                                                                                        "unit": "px",
                                                                                                                                        "value": 0.0
                                                                                                                                      },
                                                                                                                                      "position-top": {
                                                                                                                                        "unit": "px",
                                                                                                                                        "value": 0.0
                                                                                                                                      },
                                                                                                                                      "position-type": "absolute"
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                ],
                                                                                                                                "config": {
                                                                                                                                  "errata": "all"
                                                                                                                                },
                                                                                                                                "style": {
                                                                                                                                  "align-items": "center",
                                                                                                                                  "height": {
                                                                                                                                    "unit": "px",
                                                                                                                                    "value": 50.0
                                                                                                                                  },
                                                                                                                                  "justify-content": "center",
                                                                                                                                  "overflow": "hidden",
                                                                                                                                  "width": {
                                                                                                                                    "unit": "px",
                                                                                                                                    "value": 50.0
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }
                                                                                                                            ],
                                                                                                                            "config": {
                                                                                                                              "errata": "all"
                                                                                                                            },
                                                                                                                            "style": null
                                                                                                                          },
                                                                                                                          {
                                                                                                                            "children": [
                                                                                                                              {
                                                                                                                                "config": {
                                                                                                                                  "errata": "all"
                                                                                                                                },
                                                                                                                                "style": {
                                                                                                                                  "height": {
                                                                                                                                    "unit": "px",
                                                                                                                                    "value": 12.0
                                                                                                                                  },
                                                                                                                                  "width": {
                                                                                                                                    "unit": "px",
                                                                                                                                    "value": 12.0
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }
                                                                                                                            ],
                                                                                                                            "config": {
                                                                                                                              "errata": "all"
                                                                                                                            },
                                                                                                                            "style": {
                                                                                                                              "position-bottom": {
                                                                                                                                "unit": "px",
                                                                                                                                "value": 2.0
                                                                                                                              },
                                                                                                                              "position-left": {
                                                                                                                                "unit": "px",
                                                                                                                                "value": 36.0
                                                                                                                              },
                                                                                                                              "position-type": "absolute"
                                                                                                                            }
                                                                                                                          }
                                                                                                                        ],
                                                                                                                        "config": {
                                                                                                                          "errata": "all"
                                                                                                                        },
                                                                                                                        "style": null
                                                                                                                      }
                                                                                                                    ],
                                                                                                                    "config": {
                                                                                                                      "errata": "all"
                                                                                                                    },
                                                                                                                    "style": {
                                                                                                                      "align-items": "flex-end",
                                                                                                                      "justify-content": "flex-end",
                                                                                                                      "margin-bottom": {
                                                                                                                        "unit": "px",
                                                                                                                        "value": 8.0
                                                                                                                      },
                                                                                                                      "position-type": "relative"
                                                                                                                    }
                                                                                                                  },
                                                                                                                  {
                                                                                                                    "config": {
                                                                                                                      "errata": "all"
                                                                                                                    },
               
Download .txt
gitextract_lqavlrcu/

├── .clang-format
├── .clang-tidy
├── .editorconfig
├── .eslintrc.cjs
├── .github/
│   ├── ISSUE_TEMPLATE.md
│   ├── actions/
│   │   ├── black/
│   │   │   └── action.yml
│   │   ├── cache-emsdk/
│   │   │   └── action.yml
│   │   ├── install-ninja/
│   │   │   └── action.yml
│   │   ├── setup-android/
│   │   │   └── action.yml
│   │   ├── setup-apple/
│   │   │   └── action.yml
│   │   ├── setup-cpp/
│   │   │   └── action.yml
│   │   └── setup-js/
│   │       └── action.yml
│   └── workflows/
│       ├── publish-android-release.yml
│       ├── publish-android-snashot.yml
│       ├── publish-npm-release.yml
│       ├── validate-android.yml
│       ├── validate-cpp.yml
│       ├── validate-js.yml
│       ├── validate-swiftpm.yml
│       ├── validate-tests.yml
│       └── validate-website.yml
├── .gitignore
├── .prettierignore
├── .prettierrc.js
├── .vscode/
│   ├── extensions.json
│   ├── launch.json
│   ├── settings.json
│   └── tasks.json
├── CMakeLists.txt
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── LICENSE-examples
├── Package.swift
├── README.md
├── benchmark/
│   ├── Benchmark.cpp
│   ├── Benchmark.h
│   ├── CMakeLists.txt
│   ├── TreeDeserialization.cpp
│   ├── TreeDeserialization.h
│   ├── YGBenchmark.c
│   ├── benchmark
│   └── captures/
│       ├── chat-mac.json
│       ├── feed-android.json
│       ├── profile-ios.json
│       └── rendering-sample-mac.json
├── build.gradle
├── build_fuzz_tests
├── capture/
│   ├── CMakeLists.txt
│   ├── CaptureTree.cpp
│   ├── CaptureTree.h
│   ├── NodeToString.cpp
│   └── NodeToString.h
├── cmake/
│   ├── project-defaults.cmake
│   └── yoga-config.cmake.in
├── enums.py
├── fuzz/
│   ├── CMakeLists.txt
│   └── FuzzLayout.cpp
├── gentest/
│   ├── babel.config.cjs
│   ├── fixtures/
│   │   ├── YGAbsolutePositionTest.html
│   │   ├── YGAlignContentTest.html
│   │   ├── YGAlignItemsTest.html
│   │   ├── YGAlignSelfTest.html
│   │   ├── YGAndroidNewsFeed.html
│   │   ├── YGAspectRatioTest.html
│   │   ├── YGAutoTest.html
│   │   ├── YGBorderTest.html
│   │   ├── YGBoxSizingTest.html
│   │   ├── YGDimensionTest.html
│   │   ├── YGDisplayTest.html
│   │   ├── YGFlexBasisFitContentTest.html
│   │   ├── YGFlexDirectionTest.html
│   │   ├── YGFlexTest.html
│   │   ├── YGFlexWrapTest.html
│   │   ├── YGGapTest.html
│   │   ├── YGIntrinsicSizeTest.html
│   │   ├── YGJustifyContentTest.html
│   │   ├── YGMarginTest.html
│   │   ├── YGMinMaxDimensionTest.html
│   │   ├── YGPaddingTest.html
│   │   ├── YGPercentageTest.html
│   │   ├── YGRoundingTest.html
│   │   ├── YGSizeOverflowTest.html
│   │   └── YGStaticPositionTest.html
│   ├── gentest-driver.ts
│   ├── gentest-validate.ts
│   ├── package.json
│   ├── scripts/
│   │   └── gentest-validate.ts
│   ├── signedsource.d.ts
│   ├── src/
│   │   ├── ChromePool.ts
│   │   ├── CssToYoga.ts
│   │   ├── buildLayoutTree.ts
│   │   ├── cli.ts
│   │   ├── emitters/
│   │   │   ├── CppEmitter.ts
│   │   │   ├── Emitter.ts
│   │   │   ├── JavaEmitter.ts
│   │   │   └── JavascriptEmitter.ts
│   │   └── types.ts
│   ├── test-template.html
│   └── tsconfig.json
├── gradle/
│   └── wrapper/
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── java/
│   ├── AndroidManifest.xml
│   ├── CMakeLists.txt
│   ├── build.gradle.kts
│   ├── com/
│   │   └── facebook/
│   │       └── yoga/
│   │           ├── LayoutPassReason.kt
│   │           ├── YogaAlign.java
│   │           ├── YogaBaselineFunction.kt
│   │           ├── YogaBoxSizing.java
│   │           ├── YogaConfig.kt
│   │           ├── YogaConfigFactory.kt
│   │           ├── YogaConfigJNIBase.kt
│   │           ├── YogaConfigJNIFinalizer.kt
│   │           ├── YogaConstants.kt
│   │           ├── YogaDimension.java
│   │           ├── YogaDirection.kt
│   │           ├── YogaDisplay.java
│   │           ├── YogaEdge.java
│   │           ├── YogaErrata.java
│   │           ├── YogaExperimentalFeature.java
│   │           ├── YogaFlexDirection.java
│   │           ├── YogaGridTrackType.java
│   │           ├── YogaGutter.java
│   │           ├── YogaJustify.java
│   │           ├── YogaLayoutType.kt
│   │           ├── YogaLogLevel.java
│   │           ├── YogaLogger.kt
│   │           ├── YogaMeasureFunction.kt
│   │           ├── YogaMeasureMode.java
│   │           ├── YogaMeasureOutput.kt
│   │           ├── YogaNative.kt
│   │           ├── YogaNode.kt
│   │           ├── YogaNodeFactory.kt
│   │           ├── YogaNodeJNIBase.java
│   │           ├── YogaNodeJNIFinalizer.kt
│   │           ├── YogaNodeType.java
│   │           ├── YogaOverflow.java
│   │           ├── YogaPositionType.java
│   │           ├── YogaProps.kt
│   │           ├── YogaStyleInputs.kt
│   │           ├── YogaUnit.java
│   │           ├── YogaValue.kt
│   │           ├── YogaWrap.java
│   │           └── annotations/
│   │               └── DoNotStrip.kt
│   ├── gen/
│   │   └── com/
│   │       └── facebook/
│   │           └── yoga/
│   │               └── BuildConfig.java
│   ├── jni/
│   │   ├── LayoutContext.cpp
│   │   ├── LayoutContext.h
│   │   ├── ScopedGlobalRef.h
│   │   ├── ScopedLocalRef.h
│   │   ├── YGJNI.h
│   │   ├── YGJNIVanilla.cpp
│   │   ├── YGJNIVanilla.h
│   │   ├── YGJTypesVanilla.h
│   │   ├── YogaJniException.cpp
│   │   ├── YogaJniException.h
│   │   ├── common.cpp
│   │   ├── common.h
│   │   ├── corefunctions.cpp
│   │   ├── corefunctions.h
│   │   ├── macros.h
│   │   └── yogajni.cpp
│   ├── proguard-rules.pro
│   ├── res/
│   │   └── values/
│   │       └── strings.xml
│   ├── tests/
│   │   ├── com/
│   │   │   └── facebook/
│   │   │       └── yoga/
│   │   │           ├── TestParametrization.java
│   │   │           ├── YGAlignBaselineTest.java
│   │   │           ├── YogaExceptionTest.java
│   │   │           ├── YogaLoggerTest.java
│   │   │           ├── YogaNodeStylePropertiesTest.java
│   │   │           ├── YogaNodeTest.java
│   │   │           ├── YogaValueTest.java
│   │   │           └── utils/
│   │   │               └── TestUtils.java
│   │   └── generated/
│   │       └── com/
│   │           └── facebook/
│   │               └── yoga/
│   │                   ├── YGAbsolutePositionTest.java
│   │                   ├── YGAlignContentTest.java
│   │                   ├── YGAlignItemsTest.java
│   │                   ├── YGAlignSelfTest.java
│   │                   ├── YGAndroidNewsFeed.java
│   │                   ├── YGAspectRatioTest.java
│   │                   ├── YGAutoTest.java
│   │                   ├── YGBorderTest.java
│   │                   ├── YGBoxSizingTest.java
│   │                   ├── YGDimensionTest.java
│   │                   ├── YGDisplayContentsTest.java
│   │                   ├── YGDisplayTest.java
│   │                   ├── YGFlexBasisFitContentTest.java
│   │                   ├── YGFlexDirectionTest.java
│   │                   ├── YGFlexTest.java
│   │                   ├── YGFlexWrapTest.java
│   │                   ├── YGGapTest.java
│   │                   ├── YGIntrinsicSizeTest.java
│   │                   ├── YGJustifyContentTest.java
│   │                   ├── YGMarginTest.java
│   │                   ├── YGMinMaxDimensionTest.java
│   │                   ├── YGPaddingTest.java
│   │                   ├── YGPercentageTest.java
│   │                   ├── YGRoundingTest.java
│   │                   ├── YGSizeOverflowTest.java
│   │                   └── YGStaticPositionTest.java
│   └── yogajni.version
├── javascript/
│   ├── .gitignore
│   ├── CMakeLists.txt
│   ├── README.md
│   ├── babel.config.cjs
│   ├── jest.config.js
│   ├── jest.setup.js
│   ├── just.config.cjs
│   ├── package.json
│   ├── src/
│   │   ├── generated/
│   │   │   └── YGEnums.ts
│   │   ├── index.ts
│   │   ├── load.ts
│   │   ├── wasm_bridge.c
│   │   └── wrapAssembly.ts
│   ├── tests/
│   │   ├── Benchmarks/
│   │   │   └── YGBenchmark.test.ts
│   │   ├── YGAlignBaselineTest.test.ts
│   │   ├── YGComputedBorderTest.test.ts
│   │   ├── YGComputedMarginTest.test.ts
│   │   ├── YGComputedPaddingTest.test.ts
│   │   ├── YGDirtiedTest.test.ts
│   │   ├── YGErrataTest.test.ts
│   │   ├── YGFlexBasisAuto.test.ts
│   │   ├── YGHasNewLayout.test.ts
│   │   ├── YGMeasureCacheTest.test.ts
│   │   ├── YGMeasureTest.test.ts
│   │   ├── bin/
│   │   │   └── run-bench.ts
│   │   ├── generated/
│   │   │   ├── YGAbsolutePositionTest.test.ts
│   │   │   ├── YGAlignContentTest.test.ts
│   │   │   ├── YGAlignItemsTest.test.ts
│   │   │   ├── YGAlignSelfTest.test.ts
│   │   │   ├── YGAndroidNewsFeed.test.ts
│   │   │   ├── YGAspectRatioTest.test.ts
│   │   │   ├── YGAutoTest.test.ts
│   │   │   ├── YGBorderTest.test.ts
│   │   │   ├── YGBoxSizingTest.test.ts
│   │   │   ├── YGDimensionTest.test.ts
│   │   │   ├── YGDisplayContentsTest.test.ts
│   │   │   ├── YGDisplayTest.test.ts
│   │   │   ├── YGFlexBasisFitContentTest.test.ts
│   │   │   ├── YGFlexDirectionTest.test.ts
│   │   │   ├── YGFlexTest.test.ts
│   │   │   ├── YGFlexWrapTest.test.ts
│   │   │   ├── YGGapTest.test.ts
│   │   │   ├── YGIntrinsicSizeTest.test.ts
│   │   │   ├── YGJustifyContentTest.test.ts
│   │   │   ├── YGMarginTest.test.ts
│   │   │   ├── YGMinMaxDimensionTest.test.ts
│   │   │   ├── YGPaddingTest.test.ts
│   │   │   ├── YGPercentageTest.test.ts
│   │   │   ├── YGRoundingTest.test.ts
│   │   │   ├── YGSizeOverflowTest.test.ts
│   │   │   └── YGStaticPositionTest.test.ts
│   │   └── tools/
│   │       ├── MeasureCounter.ts
│   │       ├── globals.ts
│   │       └── utils.ts
│   └── tsconfig.json
├── lib/
│   ├── jni/
│   │   ├── jni.h
│   │   └── real/
│   │       └── jni.h
│   ├── jsr-305/
│   │   └── jsr305.jar
│   ├── nlohmann/
│   │   └── json.hpp
│   └── soloader/
│       └── soloader-0.5.1.aar
├── package.json
├── set-version.py
├── settings.gradle.kts
├── tests/
│   ├── .clang-tidy
│   ├── CMakeLists.txt
│   ├── EventsTest.cpp
│   ├── FlexGapTest.cpp
│   ├── FloatOptionalTest.cpp
│   ├── OrdinalsTest.cpp
│   ├── SmallValueBufferTest.cpp
│   ├── StyleTest.cpp
│   ├── StyleValuePoolTest.cpp
│   ├── YGAlignBaselineTest.cpp
│   ├── YGAspectRatioTest.cpp
│   ├── YGBaselineFuncTest.cpp
│   ├── YGCloneNodeTest.cpp
│   ├── YGComputedMarginTest.cpp
│   ├── YGComputedPaddingTest.cpp
│   ├── YGConfigTest.cpp
│   ├── YGDefaultValuesTest.cpp
│   ├── YGDirtiedTest.cpp
│   ├── YGDirtyMarkingTest.cpp
│   ├── YGEdgeTest.cpp
│   ├── YGFlexBasisFitContentTest.cpp
│   ├── YGHadOverflowTest.cpp
│   ├── YGLayoutableChildrenTest.cpp
│   ├── YGMeasureCacheTest.cpp
│   ├── YGMeasureModeTest.cpp
│   ├── YGMeasureTest.cpp
│   ├── YGNodeCallbackTest.cpp
│   ├── YGNodeChildTest.cpp
│   ├── YGPersistenceTest.cpp
│   ├── YGPersistentNodeCloningTest.cpp
│   ├── YGRelayoutTest.cpp
│   ├── YGRoundingFunctionTest.cpp
│   ├── YGRoundingMeasureFuncTest.cpp
│   ├── YGScaleChangeTest.cpp
│   ├── YGStyleTest.cpp
│   ├── YGTreeMutationTest.cpp
│   ├── YGValueTest.cpp
│   ├── YGZeroOutLayoutRecursivelyTest.cpp
│   ├── generated/
│   │   ├── YGAbsolutePositionTest.cpp
│   │   ├── YGAlignContentTest.cpp
│   │   ├── YGAlignItemsTest.cpp
│   │   ├── YGAlignSelfTest.cpp
│   │   ├── YGAndroidNewsFeed.cpp
│   │   ├── YGAspectRatioTest.cpp
│   │   ├── YGAutoTest.cpp
│   │   ├── YGBorderTest.cpp
│   │   ├── YGBoxSizingTest.cpp
│   │   ├── YGDimensionTest.cpp
│   │   ├── YGDisplayContentsTest.cpp
│   │   ├── YGDisplayTest.cpp
│   │   ├── YGFlexBasisFitContentTest.cpp
│   │   ├── YGFlexDirectionTest.cpp
│   │   ├── YGFlexTest.cpp
│   │   ├── YGFlexWrapTest.cpp
│   │   ├── YGGapTest.cpp
│   │   ├── YGIntrinsicSizeTest.cpp
│   │   ├── YGJustifyContentTest.cpp
│   │   ├── YGMarginTest.cpp
│   │   ├── YGMinMaxDimensionTest.cpp
│   │   ├── YGPaddingTest.cpp
│   │   ├── YGPercentageTest.cpp
│   │   ├── YGRoundingTest.cpp
│   │   ├── YGSizeOverflowTest.cpp
│   │   └── YGStaticPositionTest.cpp
│   └── util/
│       ├── TestUtil.cpp
│       └── TestUtil.h
├── unit_tests
├── unit_tests.bat
├── website/
│   ├── .eslintrc.cjs
│   ├── .gitignore
│   ├── README.md
│   ├── babel.config.cjs
│   ├── blog/
│   │   ├── 2023-06-30-announcing-yoga-2.0.md
│   │   ├── 2024-06-24-announcing-yoga-3.1.md
│   │   ├── 2024-12-02-announcing-yoga-3.2.md
│   │   ├── authors.yml
│   │   └── yoga-3-release/
│   │       └── 2024-03-14-announcing-yoga-3.0.md
│   ├── docs/
│   │   ├── about-yoga.md
│   │   ├── advanced/
│   │   │   ├── _category_.json
│   │   │   ├── containing-block.md
│   │   │   ├── external-layout-systems.mdx
│   │   │   └── incremental-layout.mdx
│   │   ├── getting-started/
│   │   │   ├── _category_.json
│   │   │   ├── configuring-yoga.mdx
│   │   │   └── laying-out-a-tree.mdx
│   │   └── styling/
│   │       ├── _category_.json
│   │       ├── align-content.mdx
│   │       ├── align-items-self.mdx
│   │       ├── aspect-ratio.mdx
│   │       ├── display.mdx
│   │       ├── flex-basis-grow-shrink.mdx
│   │       ├── flex-direction.mdx
│   │       ├── flex-wrap.mdx
│   │       ├── gap.mdx
│   │       ├── index.md
│   │       ├── insets.mdx
│   │       ├── justify-content.mdx
│   │       ├── layout-direction.mdx
│   │       ├── margin-padding-border.mdx
│   │       ├── min-max-width-height.mdx
│   │       ├── position.mdx
│   │       └── width-height.mdx
│   ├── docusaurus.config.js
│   ├── package.json
│   ├── sidebars.cjs
│   ├── src/
│   │   ├── components/
│   │   │   ├── EditorToolbar.module.css
│   │   │   ├── EditorToolbar.tsx
│   │   │   ├── FlexStyle.ts
│   │   │   ├── LayoutBox.module.css
│   │   │   ├── LayoutBox.tsx
│   │   │   ├── Playground.module.css
│   │   │   ├── Playground.tsx
│   │   │   └── YogaViewer.tsx
│   │   ├── css/
│   │   │   └── custom.css
│   │   └── pages/
│   │       ├── index.module.css
│   │       ├── index.tsx
│   │       ├── markdown-page.md
│   │       ├── playground.module.css
│   │       └── playground.tsx
│   ├── static/
│   │   └── .nojekyll
│   └── tsconfig.json
└── yoga/
    ├── CMakeLists.txt
    ├── YGConfig.cpp
    ├── YGConfig.h
    ├── YGEnums.cpp
    ├── YGEnums.h
    ├── YGMacros.h
    ├── YGNode.cpp
    ├── YGNode.h
    ├── YGNodeLayout.cpp
    ├── YGNodeLayout.h
    ├── YGNodeStyle.cpp
    ├── YGNodeStyle.h
    ├── YGPixelGrid.cpp
    ├── YGPixelGrid.h
    ├── YGValue.cpp
    ├── YGValue.h
    ├── Yoga.h
    ├── algorithm/
    │   ├── AbsoluteLayout.cpp
    │   ├── AbsoluteLayout.h
    │   ├── Align.h
    │   ├── Baseline.cpp
    │   ├── Baseline.h
    │   ├── BoundAxis.h
    │   ├── Cache.cpp
    │   ├── Cache.h
    │   ├── CalculateLayout.cpp
    │   ├── CalculateLayout.h
    │   ├── FlexDirection.h
    │   ├── FlexLine.cpp
    │   ├── FlexLine.h
    │   ├── PixelGrid.cpp
    │   ├── PixelGrid.h
    │   ├── SizingMode.h
    │   └── TrailingPosition.h
    ├── config/
    │   ├── Config.cpp
    │   └── Config.h
    ├── debug/
    │   ├── AssertFatal.cpp
    │   ├── AssertFatal.h
    │   ├── Log.cpp
    │   └── Log.h
    ├── enums/
    │   ├── Align.h
    │   ├── BoxSizing.h
    │   ├── Dimension.h
    │   ├── Direction.h
    │   ├── Display.h
    │   ├── Edge.h
    │   ├── Errata.h
    │   ├── ExperimentalFeature.h
    │   ├── FlexDirection.h
    │   ├── GridTrackType.h
    │   ├── Gutter.h
    │   ├── Justify.h
    │   ├── LogLevel.h
    │   ├── MeasureMode.h
    │   ├── NodeType.h
    │   ├── Overflow.h
    │   ├── PhysicalEdge.h
    │   ├── PositionType.h
    │   ├── Unit.h
    │   ├── Wrap.h
    │   └── YogaEnums.h
    ├── event/
    │   ├── event.cpp
    │   └── event.h
    ├── module.modulemap
    ├── node/
    │   ├── CachedMeasurement.h
    │   ├── LayoutResults.cpp
    │   ├── LayoutResults.h
    │   ├── LayoutableChildren.h
    │   ├── Node.cpp
    │   └── Node.h
    ├── numeric/
    │   ├── Comparison.h
    │   └── FloatOptional.h
    └── style/
        ├── GridLine.h
        ├── GridTrack.h
        ├── SmallValueBuffer.h
        ├── Style.h
        ├── StyleLength.h
        ├── StyleSizeLength.h
        ├── StyleValueHandle.h
        └── StyleValuePool.h
Download .txt
Showing preview only (272K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3304 symbols across 243 files)

FILE: benchmark/Benchmark.cpp
  type facebook::yoga (line 19) | namespace facebook::yoga {
    function inputsMatch (line 28) | static bool inputsMatch(
    function YGSize (line 49) | YGSize defaultMeasureFunctionResult() {
    function YGSize (line 54) | YGSize mockMeasureFunc(
    function buildConfigFromJson (line 91) | std::shared_ptr<const YGConfig> buildConfigFromJson(const json& j) {
    function edgeStringFromPropertyName (line 115) | std::string edgeStringFromPropertyName(
    function setStylesFromJson (line 121) | void setStylesFromJson(const json& j, YGNodeRef node) {
    function buildNodeFromJson (line 254) | std::shared_ptr<YGNode> buildNodeFromJson(
    function buildTreeFromJson (line 282) | std::shared_ptr<YogaNodeAndConfig> buildTreeFromJson(
    function BenchmarkResult (line 311) | BenchmarkResult generateBenchmark(json& capture) {
    function printBenchmarkResult (line 333) | static void printBenchmarkResult(
    function benchmark (line 358) | void benchmark(std::filesystem::path& capturesDir) {
  function main (line 390) | int main(int argc, char* argv[]) {

FILE: benchmark/Benchmark.h
  function namespace (line 18) | namespace facebook::yoga {

FILE: benchmark/TreeDeserialization.cpp
  type facebook::yoga (line 16) | namespace facebook::yoga {
    function isAuto (line 20) | static inline bool isAuto(json& j) {
    function isUndefined (line 24) | static inline bool isUndefined(json& j) {
    function invalidArgumentMessage (line 28) | static inline std::string invalidArgumentMessage(
    function floatFromJson (line 34) | static inline float floatFromJson(json& j) {
    function YGFlexDirection (line 43) | YGFlexDirection flexDirectionFromString(const std::string& str) {
    function YGJustify (line 57) | YGJustify justifyContentFromString(const std::string& str) {
    function YGAlign (line 75) | YGAlign alignFromString(const std::string& str) {
    function YGWrap (line 99) | YGWrap wrapFromString(const std::string& str) {
    function YGOverflow (line 111) | YGOverflow overflowFromString(const std::string& str) {
    function YGDisplay (line 123) | YGDisplay displayFromString(const std::string& str) {
    function YGPositionType (line 133) | YGPositionType positionTypeFromString(const std::string& str) {
    function YGUnit (line 145) | YGUnit unitFromJson(json& j) {
    function YGEdge (line 163) | YGEdge edgeFromString(const std::string& str) {
    function YGErrata (line 187) | YGErrata errataFromString(const std::string& str) {
    function YGExperimentalFeature (line 199) | YGExperimentalFeature experimentalFeatureFromString(const std::string&...
    function edgeStringFromPropertyName (line 208) | std::string edgeStringFromPropertyName(
    function YGDirection (line 214) | YGDirection directionFromString(const std::string& str) {
    function YGMeasureMode (line 226) | YGMeasureMode measureModeFromString(const std::string& str) {
    function SerializedMeasureFunc (line 238) | SerializedMeasureFunc serializedMeasureFuncFromJson(json& j) {

FILE: benchmark/TreeDeserialization.h
  function namespace (line 17) | namespace facebook::yoga {

FILE: benchmark/YGBenchmark.c
  function __compareDoubles (line 37) | static int __compareDoubles(const void* a, const void* b) {
  function __printBenchmarkResult (line 52) | static void
  function YGSize (line 78) | static YGSize _measure(

FILE: capture/CaptureTree.cpp
  type facebook::yoga (line 15) | namespace facebook::yoga {
    function captureTree (line 19) | static void captureTree(
    function SerializedMeasureFuncMap (line 26) | static SerializedMeasureFuncMap& currentSerializedMeasureFuncMap() {
    function dirtyTree (line 41) | static void dirtyTree(YGNodeRef node) {
    function YGNodeCalculateLayoutWithCapture (line 52) | void YGNodeCalculateLayoutWithCapture(
    function captureMeasureFunc (line 75) | void captureMeasureFunc(

FILE: capture/CaptureTree.h
  type SerializedMeasureFunc (line 18) | struct SerializedMeasureFunc {
  function outputWidth (line 23) | float outputWidth{0.0f};

FILE: capture/NodeToString.cpp
  type facebook::yoga (line 13) | namespace facebook::yoga {
    function appendFloatIfNotDefault (line 17) | static void appendFloatIfNotDefault(
    function appendYGValueIfNotDefault (line 27) | static void appendYGValueIfNotDefault(
    function appendEnumValueIfNotDefault (line 45) | static void appendEnumValueIfNotDefault(
    function appendBoolIfNotDefault (line 55) | static void appendBoolIfNotDefault(
    function appendEdges (line 66) | static void appendEdges(
    function YGValue (line 118) | static YGValue borderFloatToYGValue(YGNodeRef node, YGEdge edge) {
    function serializeMeasureFuncResults (line 124) | static void serializeMeasureFuncResults(
    function serializeTreeImpl (line 139) | static void serializeTreeImpl(
    function serializeTree (line 339) | void serializeTree(
    function serializeLayoutInputs (line 347) | void serializeLayoutInputs(

FILE: capture/NodeToString.h
  function namespace (line 17) | namespace facebook::yoga {

FILE: enums.py
  function get_license (line 110) | def get_license(ext):
  function _format_name (line 123) | def _format_name(symbol, delimiter=None, transform=None):
  function to_java_upper (line 137) | def to_java_upper(symbol):
  function to_kotlin_upper (line 141) | def to_kotlin_upper(symbol):
  function to_hyphenated_lower (line 145) | def to_hyphenated_lower(symbol):

FILE: fuzz/FuzzLayout.cpp
  function YGFlexDirection (line 12) | YGFlexDirection fuzzedFlexDirection(FuzzedDataProvider& fdp) {
  function fillFuzzedTree (line 21) | void fillFuzzedTree(
  function LLVMFuzzerTestOneInput (line 46) | int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) {

FILE: gentest/gentest-driver.ts
  function addSignatureToSourceCode (line 22) | function addSignatureToSourceCode(sourceCode: string): string {

FILE: gentest/src/ChromePool.ts
  type ChromePool (line 14) | interface ChromePool {
  function createChromePool (line 25) | function createChromePool(size: number): ChromePool {
  function createDriver (line 68) | function createDriver(): Promise<WebDriver> {

FILE: gentest/src/CssToYoga.ts
  constant INVISIBLE_BORDER_STYLES (line 13) | const INVISIBLE_BORDER_STYLES = new Set(['none', 'initial']);
  function parseStyleAttribute (line 20) | function parseStyleAttribute(styleAttr: string): ParsedStyles {
  function expandShorthand (line 49) | function expandShorthand(
  function applyStyles (line 78) | function applyStyles(
  function parseValueWithUnit (line 753) | function parseValueWithUnit(value: string): ValueWithUnit {
  function parseCssLength (line 769) | function parseCssLength(value: string): ValueWithUnit | null {
  function parseBorderWidth (line 789) | function parseBorderWidth(value: string): ValueWithUnit | null {
  function extractBorderWidth (line 800) | function extractBorderWidth(value: string): ValueWithUnit | null {
  function directionValue (line 835) | function directionValue(value: string): string {
  function flexDirectionValue (line 844) | function flexDirectionValue(value: string): string {
  function justifyValue (line 854) | function justifyValue(value: string): string | undefined {
  function alignValue (line 870) | function alignValue(value: string): string | undefined {
  function positionValue (line 887) | function positionValue(value: string): string {
  function wrapValue (line 896) | function wrapValue(value: string): string {
  function overflowValue (line 905) | function overflowValue(value: string): string {
  function displayValue (line 914) | function displayValue(value: string): string {
  function boxSizingValue (line 923) | function boxSizingValue(value: string): string {
  function edgeValue (line 931) | function edgeValue(edge: string): string {
  function gutterValue (line 946) | function gutterValue(gutter: string): string {
  function getFlexDirectionForMeasure (line 955) | function getFlexDirectionForMeasure(styles: ParsedStyles): string {

FILE: gentest/src/buildLayoutTree.ts
  function buildLayoutTree (line 17) | async function buildLayoutTree(
  type RawNode (line 87) | interface RawNode {

FILE: gentest/src/cli.ts
  function addSignatureToSourceCode (line 28) | function addSignatureToSourceCode(sourceCode: string): string {
  function processFixture (line 75) | async function processFixture(fixturePath: string): Promise<void> {

FILE: gentest/src/emitters/CppEmitter.ts
  function toValueCpp (line 13) | function toValueCpp(value: string | number): string {
  function toFunctionNameCpp (line 22) | function toFunctionNameCpp(value: ValueWithUnit): string {
  function valueWithUnitToString (line 39) | function valueWithUnitToString(value: ValueWithUnit): string {
  class CppEmitter (line 58) | class CppEmitter extends Emitter {
    method constructor (line 59) | constructor() {
    method emitCommentHeader (line 63) | emitCommentHeader(fixtureName: string): void {
    method emitPrologue (line 81) | emitPrologue(_fixtureName: string): void {
    method emitTestPrologue (line 90) | emitTestPrologue(
    method emitTestTreePrologue (line 114) | emitTestTreePrologue(nodeName: string): void {
    method emitTestEpilogue (line 118) | emitTestEpilogue(_experiments: string[]): void {
    method emitEpilogue (line 127) | emitEpilogue(): void {
    method assertEQ (line 131) | assertEQ(v0: number, v1: string): void {
    method layoutGetLeft (line 135) | layoutGetLeft(node: string): string {
    method layoutGetTop (line 139) | layoutGetTop(node: string): string {
    method layoutGetWidth (line 143) | layoutGetWidth(node: string): string {
    method layoutGetHeight (line 147) | layoutGetHeight(node: string): string {
    method insertChild (line 151) | insertChild(parent: string, child: string, index: number): void {
    method calculateLayout (line 157) | calculateLayout(
    method setMeasureFunc (line 171) | setMeasureFunc(node: string, text: string, _flexDirection: string): vo...
    method setDirection (line 178) | setDirection(node: string, value: string): void {
    method setFlexDirection (line 184) | setFlexDirection(node: string, value: string): void {
    method setJustifyContent (line 190) | setJustifyContent(node: string, value: string): void {
    method setAlignContent (line 196) | setAlignContent(node: string, value: string): void {
    method setAlignItems (line 202) | setAlignItems(node: string, value: string): void {
    method setAlignSelf (line 208) | setAlignSelf(node: string, value: string): void {
    method setPositionType (line 214) | setPositionType(node: string, value: string): void {
    method setFlexWrap (line 220) | setFlexWrap(node: string, value: string): void {
    method setOverflow (line 226) | setOverflow(node: string, value: string): void {
    method setDisplay (line 232) | setDisplay(node: string, value: string): void {
    method setBoxSizing (line 238) | setBoxSizing(node: string, value: string): void {
    method setFlexGrow (line 244) | setFlexGrow(node: string, value: string): void {
    method setFlexShrink (line 250) | setFlexShrink(node: string, value: string): void {
    method setFlexBasis (line 256) | setFlexBasis(node: string, value: ValueWithUnit): void {
    method setWidth (line 273) | setWidth(node: string, value: ValueWithUnit): void {
    method setHeight (line 288) | setHeight(node: string, value: ValueWithUnit): void {
    method setMinWidth (line 303) | setMinWidth(node: string, value: ValueWithUnit): void {
    method setMinHeight (line 320) | setMinHeight(node: string, value: ValueWithUnit): void {
    method setMaxWidth (line 337) | setMaxWidth(node: string, value: ValueWithUnit): void {
    method setMaxHeight (line 354) | setMaxHeight(node: string, value: ValueWithUnit): void {
    method setMargin (line 371) | setMargin(node: string, edge: string, value: ValueWithUnit): void {
    method setPadding (line 391) | setPadding(node: string, edge: string, value: ValueWithUnit): void {
    method setPosition (line 407) | setPosition(node: string, edge: string, value: ValueWithUnit): void {
    method setBorder (line 427) | setBorder(node: string, edge: string, value: ValueWithUnit): void {
    method setGap (line 432) | setGap(node: string, gutter: string, value: ValueWithUnit): void {
    method setAspectRatio (line 448) | setAspectRatio(node: string, value: ValueWithUnit): void {

FILE: gentest/src/emitters/Emitter.ts
  type TestCase (line 17) | interface TestCase {
  method constructor (line 34) | constructor(indent: string) {
  method push (line 38) | push(line: string | string[]): void {
  method pushIndent (line 51) | pushIndent(): void {
  method popIndent (line 55) | popIndent(): void {
  method getOutput (line 59) | getOutput(): string {
  method generateFixture (line 128) | generateFixture(fixtureName: string, testCases: TestCase[]): string {
  method setupTestTree (line 164) | private setupTestTree(
  method assertTestTree (line 192) | private assertTestTree(node: LayoutNode, nodeName: string): void {

FILE: gentest/src/emitters/JavaEmitter.ts
  function toValueJava (line 13) | function toValueJava(value: string | number): string {
  function toMethodName (line 18) | function toMethodName(value: ValueWithUnit): string {
  function valueWithUnitToString (line 35) | function valueWithUnitToString(value: ValueWithUnit): string {
  function toJavaUpper (line 54) | function toJavaUpper(symbol: string): string {
  class JavaEmitter (line 70) | class JavaEmitter extends Emitter {
    method tr (line 122) | private tr(value: string): string {
    method constructor (line 126) | constructor() {
    method emitCommentHeader (line 130) | emitCommentHeader(fixtureName: string): void {
    method emitPrologue (line 147) | emitPrologue(fixtureName: string): void {
    method emitTestPrologue (line 178) | emitTestPrologue(
    method emitTestTreePrologue (line 201) | emitTestTreePrologue(nodeName: string): void {
    method emitTestEpilogue (line 205) | emitTestEpilogue(_experiments: string[]): void {
    method emitEpilogue (line 210) | emitEpilogue(): void {
    method assertEQ (line 220) | assertEQ(v0: number, v1: string): void {
    method layoutGetLeft (line 224) | layoutGetLeft(node: string): string {
    method layoutGetTop (line 228) | layoutGetTop(node: string): string {
    method layoutGetWidth (line 232) | layoutGetWidth(node: string): string {
    method layoutGetHeight (line 236) | layoutGetHeight(node: string): string {
    method insertChild (line 240) | insertChild(parent: string, child: string, index: number): void {
    method calculateLayout (line 244) | calculateLayout(
    method setMeasureFunc (line 256) | setMeasureFunc(node: string, text: string, _flexDirection: string): vo...
    method setDirection (line 263) | setDirection(node: string, value: string): void {
    method setFlexDirection (line 267) | setFlexDirection(node: string, value: string): void {
    method setJustifyContent (line 271) | setJustifyContent(node: string, value: string): void {
    method setAlignContent (line 275) | setAlignContent(node: string, value: string): void {
    method setAlignItems (line 279) | setAlignItems(node: string, value: string): void {
    method setAlignSelf (line 283) | setAlignSelf(node: string, value: string): void {
    method setPositionType (line 287) | setPositionType(node: string, value: string): void {
    method setFlexWrap (line 291) | setFlexWrap(node: string, value: string): void {
    method setOverflow (line 295) | setOverflow(node: string, value: string): void {
    method setDisplay (line 299) | setDisplay(node: string, value: string): void {
    method setBoxSizing (line 303) | setBoxSizing(node: string, value: string): void {
    method setFlexGrow (line 307) | setFlexGrow(node: string, value: string): void {
    method setFlexShrink (line 311) | setFlexShrink(node: string, value: string): void {
    method setFlexBasis (line 315) | setFlexBasis(node: string, value: ValueWithUnit): void {
    method setWidth (line 330) | setWidth(node: string, value: ValueWithUnit): void {
    method setHeight (line 345) | setHeight(node: string, value: ValueWithUnit): void {
    method setMinWidth (line 360) | setMinWidth(node: string, value: ValueWithUnit): void {
    method setMinHeight (line 375) | setMinHeight(node: string, value: ValueWithUnit): void {
    method setMaxWidth (line 390) | setMaxWidth(node: string, value: ValueWithUnit): void {
    method setMaxHeight (line 405) | setMaxHeight(node: string, value: ValueWithUnit): void {
    method setMargin (line 420) | setMargin(node: string, edge: string, value: ValueWithUnit): void {
    method setPadding (line 432) | setPadding(node: string, edge: string, value: ValueWithUnit): void {
    method setPosition (line 440) | setPosition(node: string, edge: string, value: ValueWithUnit): void {
    method setBorder (line 452) | setBorder(node: string, edge: string, value: ValueWithUnit): void {
    method setGap (line 457) | setGap(node: string, gutter: string, value: ValueWithUnit): void {
    method setAspectRatio (line 465) | setAspectRatio(node: string, value: ValueWithUnit): void {

FILE: gentest/src/emitters/JavascriptEmitter.ts
  function toValueJavascript (line 13) | function toValueJavascript(value: ValueWithUnit): string {
  class JavascriptEmitter (line 32) | class JavascriptEmitter extends Emitter {
    method tr (line 84) | private tr(value: string): string {
    method constructor (line 88) | constructor() {
    method emitCommentHeader (line 92) | emitCommentHeader(fixtureName: string): void {
    method emitPrologue (line 109) | emitPrologue(_fixtureName: string): void {
    method emitTestPrologue (line 134) | emitTestPrologue(
    method emitTestTreePrologue (line 155) | emitTestTreePrologue(nodeName: string): void {
    method emitTestEpilogue (line 163) | emitTestEpilogue(_experiments: string[]): void {
    method emitEpilogue (line 168) | emitEpilogue(): void {
    method assertEQ (line 172) | assertEQ(v0: number, v1: string): void {
    method layoutGetLeft (line 176) | layoutGetLeft(node: string): string {
    method layoutGetTop (line 180) | layoutGetTop(node: string): string {
    method layoutGetWidth (line 184) | layoutGetWidth(node: string): string {
    method layoutGetHeight (line 188) | layoutGetHeight(node: string): string {
    method insertChild (line 192) | insertChild(parent: string, child: string, index: number): void {
    method calculateLayout (line 196) | calculateLayout(
    method setMeasureFunc (line 209) | setMeasureFunc(node: string, text: string, flexDirection: string): void {
    method setDirection (line 217) | setDirection(node: string, value: string): void {
    method setFlexDirection (line 221) | setFlexDirection(node: string, value: string): void {
    method setJustifyContent (line 225) | setJustifyContent(node: string, value: string): void {
    method setAlignContent (line 229) | setAlignContent(node: string, value: string): void {
    method setAlignItems (line 233) | setAlignItems(node: string, value: string): void {
    method setAlignSelf (line 237) | setAlignSelf(node: string, value: string): void {
    method setPositionType (line 241) | setPositionType(node: string, value: string): void {
    method setFlexWrap (line 245) | setFlexWrap(node: string, value: string): void {
    method setOverflow (line 249) | setOverflow(node: string, value: string): void {
    method setDisplay (line 253) | setDisplay(node: string, value: string): void {
    method setBoxSizing (line 257) | setBoxSizing(node: string, value: string): void {
    method setFlexGrow (line 261) | setFlexGrow(node: string, value: string): void {
    method setFlexShrink (line 265) | setFlexShrink(node: string, value: string): void {
    method setFlexBasis (line 269) | setFlexBasis(node: string, value: ValueWithUnit): void {
    method setWidth (line 273) | setWidth(node: string, value: ValueWithUnit): void {
    method setHeight (line 277) | setHeight(node: string, value: ValueWithUnit): void {
    method setMinWidth (line 281) | setMinWidth(node: string, value: ValueWithUnit): void {
    method setMinHeight (line 285) | setMinHeight(node: string, value: ValueWithUnit): void {
    method setMaxWidth (line 289) | setMaxWidth(node: string, value: ValueWithUnit): void {
    method setMaxHeight (line 293) | setMaxHeight(node: string, value: ValueWithUnit): void {
    method setMargin (line 297) | setMargin(node: string, edge: string, value: ValueWithUnit): void {
    method setPadding (line 308) | setPadding(node: string, edge: string, value: ValueWithUnit): void {
    method setPosition (line 319) | setPosition(node: string, edge: string, value: ValueWithUnit): void {
    method setBorder (line 328) | setBorder(node: string, edge: string, value: ValueWithUnit): void {
    method setGap (line 339) | setGap(node: string, gutter: string, value: ValueWithUnit): void {
    method setAspectRatio (line 350) | setAspectRatio(node: string, value: ValueWithUnit): void {

FILE: gentest/src/types.ts
  type ValueWithUnit (line 10) | type ValueWithUnit =
  type ParsedStyles (line 19) | type ParsedStyles = Map<string, string>;
  type LayoutNode (line 21) | interface LayoutNode {
  type TestCase (line 34) | interface TestCase {

FILE: java/com/facebook/yoga/YogaAlign.java
  type YogaAlign (line 12) | public enum YogaAlign {
    method YogaAlign (line 27) | YogaAlign(int intValue) {
    method intValue (line 31) | public int intValue() {
    method fromInt (line 35) | public static YogaAlign fromInt(int value) {

FILE: java/com/facebook/yoga/YogaBoxSizing.java
  type YogaBoxSizing (line 12) | public enum YogaBoxSizing {
    method YogaBoxSizing (line 18) | YogaBoxSizing(int intValue) {
    method intValue (line 22) | public int intValue() {
    method fromInt (line 26) | public static YogaBoxSizing fromInt(int value) {

FILE: java/com/facebook/yoga/YogaDimension.java
  type YogaDimension (line 12) | public enum YogaDimension {
    method YogaDimension (line 18) | YogaDimension(int intValue) {
    method intValue (line 22) | public int intValue() {
    method fromInt (line 26) | public static YogaDimension fromInt(int value) {

FILE: java/com/facebook/yoga/YogaDisplay.java
  type YogaDisplay (line 12) | public enum YogaDisplay {
    method YogaDisplay (line 20) | YogaDisplay(int intValue) {
    method intValue (line 24) | public int intValue() {
    method fromInt (line 28) | public static YogaDisplay fromInt(int value) {

FILE: java/com/facebook/yoga/YogaEdge.java
  type YogaEdge (line 12) | public enum YogaEdge {
    method YogaEdge (line 25) | YogaEdge(int intValue) {
    method intValue (line 29) | public int intValue() {
    method fromInt (line 33) | public static YogaEdge fromInt(int value) {

FILE: java/com/facebook/yoga/YogaErrata.java
  type YogaErrata (line 12) | public enum YogaErrata {
    method YogaErrata (line 22) | YogaErrata(int intValue) {
    method intValue (line 26) | public int intValue() {
    method fromInt (line 30) | public static YogaErrata fromInt(int value) {

FILE: java/com/facebook/yoga/YogaExperimentalFeature.java
  type YogaExperimentalFeature (line 12) | public enum YogaExperimentalFeature {
    method YogaExperimentalFeature (line 18) | YogaExperimentalFeature(int intValue) {
    method intValue (line 22) | public int intValue() {
    method fromInt (line 26) | public static YogaExperimentalFeature fromInt(int value) {

FILE: java/com/facebook/yoga/YogaFlexDirection.java
  type YogaFlexDirection (line 12) | public enum YogaFlexDirection {
    method YogaFlexDirection (line 20) | YogaFlexDirection(int intValue) {
    method intValue (line 24) | public int intValue() {
    method fromInt (line 28) | public static YogaFlexDirection fromInt(int value) {

FILE: java/com/facebook/yoga/YogaGridTrackType.java
  type YogaGridTrackType (line 12) | public enum YogaGridTrackType {
    method YogaGridTrackType (line 21) | YogaGridTrackType(int intValue) {
    method intValue (line 25) | public int intValue() {
    method fromInt (line 29) | public static YogaGridTrackType fromInt(int value) {

FILE: java/com/facebook/yoga/YogaGutter.java
  type YogaGutter (line 12) | public enum YogaGutter {
    method YogaGutter (line 19) | YogaGutter(int intValue) {
    method intValue (line 23) | public int intValue() {
    method fromInt (line 27) | public static YogaGutter fromInt(int value) {

FILE: java/com/facebook/yoga/YogaJustify.java
  type YogaJustify (line 12) | public enum YogaJustify {
    method YogaJustify (line 26) | YogaJustify(int intValue) {
    method intValue (line 30) | public int intValue() {
    method fromInt (line 34) | public static YogaJustify fromInt(int value) {

FILE: java/com/facebook/yoga/YogaLogLevel.java
  type YogaLogLevel (line 14) | @DoNotStrip
    method YogaLogLevel (line 25) | YogaLogLevel(int intValue) {
    method intValue (line 29) | public int intValue() {
    method fromInt (line 33) | @DoNotStrip

FILE: java/com/facebook/yoga/YogaMeasureMode.java
  type YogaMeasureMode (line 12) | public enum YogaMeasureMode {
    method YogaMeasureMode (line 19) | YogaMeasureMode(int intValue) {
    method intValue (line 23) | public int intValue() {
    method fromInt (line 27) | public static YogaMeasureMode fromInt(int value) {

FILE: java/com/facebook/yoga/YogaNodeJNIBase.java
  class YogaNodeJNIBase (line 15) | @DoNotStrip
    method YogaNodeJNIBase (line 48) | private YogaNodeJNIBase(long nativePointer) {
    method YogaNodeJNIBase (line 55) | YogaNodeJNIBase() {
    method YogaNodeJNIBase (line 59) | YogaNodeJNIBase(YogaConfig config) {
    method reset (line 64) | public void reset() {
    method getChildCount (line 75) | public int getChildCount() {
    method getChildAt (line 79) | public YogaNodeJNIBase getChildAt(int i) {
    method addChildAt (line 86) | public void addChildAt(YogaNode c, int i) {
    method setIsReferenceBaseline (line 103) | public void setIsReferenceBaseline(boolean isReferenceBaseline) {
    method isReferenceBaseline (line 107) | public boolean isReferenceBaseline() {
    method swapChildAt (line 111) | public void swapChildAt(YogaNode newChild, int position) {
    method cloneWithChildren (line 122) | @Override
    method cloneWithoutChildren (line 143) | @Override
    method clearChildren (line 158) | private void clearChildren() {
    method removeChildAt (line 163) | public YogaNodeJNIBase removeChildAt(int i) {
    method getOwner (line 181) | @Nullable
    method getParent (line 187) | @Deprecated
    method indexOf (line 193) | public int indexOf(YogaNode child) {
    method calculateLayout (line 197) | public void calculateLayout(float width, float height) {
    method freeze (line 225) | private void freeze(YogaNode parent) {
    method dirty (line 232) | public void dirty() {
    method isDirty (line 236) | public boolean isDirty() {
    method copyStyle (line 240) | @Override
    method getStyleDirection (line 248) | public YogaDirection getStyleDirection() {
    method setDirection (line 252) | public void setDirection(YogaDirection direction) {
    method getFlexDirection (line 256) | public YogaFlexDirection getFlexDirection() {
    method setFlexDirection (line 260) | public void setFlexDirection(YogaFlexDirection flexDirection) {
    method getJustifyContent (line 264) | public YogaJustify getJustifyContent() {
    method setJustifyContent (line 268) | public void setJustifyContent(YogaJustify justifyContent) {
    method getAlignItems (line 272) | public YogaAlign getAlignItems() {
    method setAlignItems (line 276) | public void setAlignItems(YogaAlign alignItems) {
    method getAlignSelf (line 280) | public YogaAlign getAlignSelf() {
    method setAlignSelf (line 284) | public void setAlignSelf(YogaAlign alignSelf) {
    method getAlignContent (line 288) | public YogaAlign getAlignContent() {
    method setAlignContent (line 292) | public void setAlignContent(YogaAlign alignContent) {
    method getPositionType (line 296) | public YogaPositionType getPositionType() {
    method setPositionType (line 300) | public void setPositionType(YogaPositionType positionType) {
    method getBoxSizing (line 304) | public YogaBoxSizing getBoxSizing() {
    method setBoxSizing (line 308) | public void setBoxSizing(YogaBoxSizing boxSizing) {
    method getWrap (line 312) | public YogaWrap getWrap() {
    method setWrap (line 316) | public void setWrap(YogaWrap flexWrap) {
    method getOverflow (line 320) | public YogaOverflow getOverflow() {
    method setOverflow (line 324) | public void setOverflow(YogaOverflow overflow) {
    method getDisplay (line 328) | public YogaDisplay getDisplay() {
    method setDisplay (line 332) | public void setDisplay(YogaDisplay display) {
    method getFlex (line 336) | public float getFlex() {
    method setFlex (line 340) | public void setFlex(float flex) {
    method getFlexGrow (line 344) | public float getFlexGrow() {
    method setFlexGrow (line 348) | public void setFlexGrow(float flexGrow) {
    method getFlexShrink (line 352) | public float getFlexShrink() {
    method setFlexShrink (line 356) | public void setFlexShrink(float flexShrink) {
    method getFlexBasis (line 360) | public YogaValue getFlexBasis() {
    method setFlexBasis (line 364) | public void setFlexBasis(float flexBasis) {
    method setFlexBasisPercent (line 368) | public void setFlexBasisPercent(float percent) {
    method setFlexBasisAuto (line 372) | public void setFlexBasisAuto() {
    method setFlexBasisMaxContent (line 376) | public void setFlexBasisMaxContent() {
    method setFlexBasisFitContent (line 380) | public void setFlexBasisFitContent() {
    method setFlexBasisStretch (line 384) | public void setFlexBasisStretch() {
    method getMargin (line 388) | public YogaValue getMargin(YogaEdge edge) {
    method setMargin (line 392) | public void setMargin(YogaEdge edge, float margin) {
    method setMarginPercent (line 396) | public void setMarginPercent(YogaEdge edge, float percent) {
    method setMarginAuto (line 400) | public void setMarginAuto(YogaEdge edge) {
    method getPadding (line 404) | public YogaValue getPadding(YogaEdge edge) {
    method setPadding (line 408) | public void setPadding(YogaEdge edge, float padding) {
    method setPaddingPercent (line 412) | public void setPaddingPercent(YogaEdge edge, float percent) {
    method getBorder (line 416) | public float getBorder(YogaEdge edge) {
    method setBorder (line 420) | public void setBorder(YogaEdge edge, float border) {
    method getPosition (line 424) | public YogaValue getPosition(YogaEdge edge) {
    method setPosition (line 428) | public void setPosition(YogaEdge edge, float position) {
    method setPositionPercent (line 432) | public void setPositionPercent(YogaEdge edge, float percent) {
    method setPositionAuto (line 436) | public void setPositionAuto(YogaEdge edge) {
    method getWidth (line 440) | public YogaValue getWidth() {
    method setWidth (line 444) | public void setWidth(float width) {
    method setWidthPercent (line 448) | public void setWidthPercent(float percent) {
    method setWidthAuto (line 452) | public void setWidthAuto() {
    method setWidthMaxContent (line 456) | public void setWidthMaxContent() {
    method setWidthFitContent (line 460) | public void setWidthFitContent() {
    method setWidthStretch (line 464) | public void setWidthStretch() {
    method getHeight (line 468) | public YogaValue getHeight() {
    method setHeight (line 472) | public void setHeight(float height) {
    method setHeightPercent (line 476) | public void setHeightPercent(float percent) {
    method setHeightAuto (line 480) | public void setHeightAuto() {
    method setHeightMaxContent (line 484) | public void setHeightMaxContent() {
    method setHeightFitContent (line 488) | public void setHeightFitContent() {
    method setHeightStretch (line 492) | public void setHeightStretch() {
    method getMinWidth (line 496) | public YogaValue getMinWidth() {
    method setMinWidth (line 500) | public void setMinWidth(float minWidth) {
    method setMinWidthPercent (line 504) | public void setMinWidthPercent(float percent) {
    method setMinWidthMaxContent (line 508) | public void setMinWidthMaxContent() {
    method setMinWidthFitContent (line 512) | public void setMinWidthFitContent() {
    method setMinWidthStretch (line 516) | public void setMinWidthStretch() {
    method getMinHeight (line 520) | public YogaValue getMinHeight() {
    method setMinHeight (line 524) | public void setMinHeight(float minHeight) {
    method setMinHeightPercent (line 528) | public void setMinHeightPercent(float percent) {
    method setMinHeightMaxContent (line 532) | public void setMinHeightMaxContent() {
    method setMinHeightFitContent (line 536) | public void setMinHeightFitContent() {
    method setMinHeightStretch (line 540) | public void setMinHeightStretch() {
    method getMaxWidth (line 544) | public YogaValue getMaxWidth() {
    method setMaxWidth (line 548) | public void setMaxWidth(float maxWidth) {
    method setMaxWidthPercent (line 552) | public void setMaxWidthPercent(float percent) {
    method setMaxWidthMaxContent (line 556) | public void setMaxWidthMaxContent() {
    method setMaxWidthFitContent (line 560) | public void setMaxWidthFitContent() {
    method setMaxWidthStretch (line 564) | public void setMaxWidthStretch() {
    method getMaxHeight (line 568) | public YogaValue getMaxHeight() {
    method setMaxHeight (line 572) | public void setMaxHeight(float maxheight) {
    method setMaxHeightPercent (line 576) | public void setMaxHeightPercent(float percent) {
    method setMaxHeightMaxContent (line 580) | public void setMaxHeightMaxContent() {
    method setMaxHeightFitContent (line 584) | public void setMaxHeightFitContent() {
    method setMaxHeightStretch (line 588) | public void setMaxHeightStretch() {
    method getAspectRatio (line 592) | public float getAspectRatio() {
    method setAspectRatio (line 596) | public void setAspectRatio(float aspectRatio) {
    method setMeasureFunction (line 600) | public void setMeasureFunction(YogaMeasureFunction measureFunction) {
    method setAlwaysFormsContainingBlock (line 605) | @Override
    method measure (line 615) | @DoNotStrip
    method setBaselineFunction (line 629) | public void setBaselineFunction(YogaBaselineFunction baselineFunction) {
    method baseline (line 634) | @DoNotStrip
    method isMeasureDefined (line 639) | public boolean isMeasureDefined() {
    method isBaselineDefined (line 643) | @Override
    method setData (line 648) | public void setData(Object data) {
    method getData (line 652) | @Override
    method replaceChild (line 664) | @DoNotStrip
    method valueFromLong (line 675) | private static YogaValue valueFromLong(long raw) {
    method getLayoutX (line 679) | @Override
    method getLayoutY (line 684) | @Override
    method getLayoutWidth (line 689) | @Override
    method getLayoutHeight (line 694) | @Override
    method getLayoutMargin (line 699) | @Override
    method getLayoutPadding (line 727) | @Override
    method getLayoutBorder (line 758) | @Override
    method getLayoutDirection (line 790) | @Override
    method hasNewLayout (line 796) | @Override
    method markLayoutSeen (line 805) | @Override
    method getGap (line 813) | @Override
    method setGap (line 818) | @Override
    method setGapPercent (line 823) | @Override

FILE: java/com/facebook/yoga/YogaNodeType.java
  type YogaNodeType (line 12) | public enum YogaNodeType {
    method YogaNodeType (line 18) | YogaNodeType(int intValue) {
    method intValue (line 22) | public int intValue() {
    method fromInt (line 26) | public static YogaNodeType fromInt(int value) {

FILE: java/com/facebook/yoga/YogaOverflow.java
  type YogaOverflow (line 12) | public enum YogaOverflow {
    method YogaOverflow (line 19) | YogaOverflow(int intValue) {
    method intValue (line 23) | public int intValue() {
    method fromInt (line 27) | public static YogaOverflow fromInt(int value) {

FILE: java/com/facebook/yoga/YogaPositionType.java
  type YogaPositionType (line 12) | public enum YogaPositionType {
    method YogaPositionType (line 19) | YogaPositionType(int intValue) {
    method intValue (line 23) | public int intValue() {
    method fromInt (line 27) | public static YogaPositionType fromInt(int value) {

FILE: java/com/facebook/yoga/YogaUnit.java
  type YogaUnit (line 12) | public enum YogaUnit {
    method YogaUnit (line 23) | YogaUnit(int intValue) {
    method intValue (line 27) | public int intValue() {
    method fromInt (line 31) | public static YogaUnit fromInt(int value) {

FILE: java/com/facebook/yoga/YogaWrap.java
  type YogaWrap (line 12) | public enum YogaWrap {
    method YogaWrap (line 19) | YogaWrap(int intValue) {
    method intValue (line 23) | public int intValue() {
    method fromInt (line 27) | public static YogaWrap fromInt(int value) {

FILE: java/gen/com/facebook/yoga/BuildConfig.java
  class BuildConfig (line 13) | public final class BuildConfig {

FILE: java/jni/LayoutContext.cpp
  type facebook::yoga::vanillajni (line 12) | namespace facebook::yoga::vanillajni {
    function PtrJNodeMapVanilla (line 30) | PtrJNodeMapVanilla* LayoutContext::getNodeMap() {

FILE: java/jni/LayoutContext.h
  function namespace (line 13) | namespace facebook::yoga::vanillajni {

FILE: java/jni/ScopedGlobalRef.h
  function namespace (line 15) | namespace facebook::yoga::vanillajni {

FILE: java/jni/ScopedLocalRef.h
  function namespace (line 18) | namespace facebook::yoga::vanillajni {

FILE: java/jni/YGJNI.h
  function class (line 29) | class YGNodeEdges {
  function undefinedAsJavaLong (line 65) | struct YogaValue {

FILE: java/jni/YGJNIVanilla.cpp
  function YGNodeJobject (line 24) | static inline ScopedLocalRef<jobject> YGNodeJobject(YGNodeConstRef node) {
  function YGNodeRef (line 28) | static inline YGNodeRef _jlong2YGNodeRef(jlong addr) {
  function YGConfigRef (line 32) | static inline YGConfigRef _jlong2YGConfigRef(jlong addr) {
  function jlong (line 36) | static jlong jni_YGConfigNewJNI(JNIEnv* /*env*/, jobject /*obj*/) {
  function jni_YGConfigFreeJNI (line 40) | static void
  function jni_YGConfigSetExperimentalFeatureEnabledJNI (line 49) | static void jni_YGConfigSetExperimentalFeatureEnabledJNI(
  function jni_YGConfigSetUseWebDefaultsJNI (line 62) | static void jni_YGConfigSetUseWebDefaultsJNI(
  function jni_YGConfigSetPointScaleFactorJNI (line 71) | static void jni_YGConfigSetPointScaleFactorJNI(
  function jni_YGConfigSetErrataJNI (line 80) | static void jni_YGConfigSetErrataJNI(
  function jint (line 89) | static jint jni_YGConfigGetErrataJNI(
  function jlong (line 97) | static jlong jni_YGNodeNewJNI(JNIEnv* /*env*/, jobject /*obj*/) {
  function jlong (line 103) | static jlong jni_YGNodeNewWithConfigJNI(
  function YGJNILogFunc (line 112) | static int YGJNILogFunc(
  function jni_YGConfigSetLoggerJNI (line 157) | static void jni_YGConfigSetLoggerJNI(
  function jni_YGNodeFinalizeJNI (line 183) | static void
  function jni_YGNodeResetJNI (line 192) | static void
  function jni_YGNodeInsertChildJNI (line 200) | static void jni_YGNodeInsertChildJNI(
  function jni_YGNodeSwapChildJNI (line 212) | static void jni_YGNodeSwapChildJNI(
  function jni_YGNodeSetIsReferenceBaselineJNI (line 224) | static void jni_YGNodeSetIsReferenceBaselineJNI(
  function jboolean (line 233) | static jboolean jni_YGNodeIsReferenceBaselineJNI(
  function jni_YGNodeRemoveAllChildrenJNI (line 241) | static void jni_YGNodeRemoveAllChildrenJNI(
  function jni_YGNodeRemoveChildJNI (line 249) | static void jni_YGNodeRemoveChildJNI(
  function YGTransferLayoutOutputsRecursive (line 258) | static void
  function jni_YGNodeCalculateLayoutJNI (line 335) | static void jni_YGNodeCalculateLayoutJNI(
  function jni_YGNodeMarkDirtyJNI (line 375) | static void
  function jboolean (line 380) | static jboolean
  function jni_YGNodeCopyStyleJNI (line 385) | static void jni_YGNodeCopyStyleJNI(
  function jlong (line 519) | static jlong jni_YGNodeStyleGetMarginJNI(
  function jni_YGNodeStyleSetMarginJNI (line 532) | static void jni_YGNodeStyleSetMarginJNI(
  function jni_YGNodeStyleSetMarginPercentJNI (line 544) | static void jni_YGNodeStyleSetMarginPercentJNI(
  function jni_YGNodeStyleSetMarginAutoJNI (line 556) | static void jni_YGNodeStyleSetMarginAutoJNI(
  function jlong (line 566) | static jlong jni_YGNodeStyleGetPaddingJNI(
  function jni_YGNodeStyleSetPaddingJNI (line 579) | static void jni_YGNodeStyleSetPaddingJNI(
  function jni_YGNodeStyleSetPaddingPercentJNI (line 591) | static void jni_YGNodeStyleSetPaddingPercentJNI(
  function jfloat (line 603) | static jfloat jni_YGNodeStyleGetBorderJNI(
  function jni_YGNodeStyleSetBorderJNI (line 615) | static void jni_YGNodeStyleSetBorderJNI(
  function YGTransferLayoutDirection (line 627) | static void YGTransferLayoutDirection(YGNodeConstRef node, jobject javaN...
  function YGSize (line 642) | static YGSize YGJNIMeasureFunc(
  function jni_YGNodeSetHasMeasureFuncJNI (line 676) | static void jni_YGNodeSetHasMeasureFuncJNI(
  function YGJNIBaselineFunc (line 686) | static float YGJNIBaselineFunc(YGNodeConstRef node, float width, float h...
  function jni_YGNodeSetHasBaselineFuncJNI (line 700) | static void jni_YGNodeSetHasBaselineFuncJNI(
  function jni_YGNodeSetAlwaysFormsContainingBlockJNI (line 710) | static void jni_YGNodeSetAlwaysFormsContainingBlockJNI(
  function jlong (line 720) | static jlong
  function jlong (line 729) | static jlong jni_YGNodeStyleGetGapJNI(
  function jni_YGNodeStyleSetGapJNI (line 738) | static void jni_YGNodeStyleSetGapJNI(
  function jni_YGNodeStyleSetGapPercentJNI (line 750) | static void jni_YGNodeStyleSetGapPercentJNI(

FILE: java/jni/YGJNIVanilla.h
  function namespace (line 10) | namespace YGJNIVanilla {

FILE: java/jni/YGJTypesVanilla.h
  function class (line 18) | class PtrJNodeMapVanilla {

FILE: java/jni/YogaJniException.cpp
  type facebook::yoga::vanillajni (line 13) | namespace facebook::yoga::vanillajni {

FILE: java/jni/YogaJniException.h
  function namespace (line 12) | namespace facebook::yoga::vanillajni {

FILE: java/jni/common.cpp
  type facebook::yoga::vanillajni (line 10) | namespace facebook::yoga::vanillajni {
    function registerNatives (line 12) | void registerNatives(
    function jmethodID (line 27) | jmethodID getStaticMethodId(
    function jmethodID (line 38) | jmethodID getMethodId(
    function jfieldID (line 48) | jfieldID getFieldId(
    function DEFINE_CALL_METHOD_FOR_PRIMITIVE_INTERFACE (line 71) | DEFINE_CALL_METHOD_FOR_PRIMITIVE_INTERFACE(void, Void) {
    function callStaticObjectMethod (line 79) | ScopedLocalRef<jobject>
    function newGlobalRef (line 89) | ScopedGlobalRef<jobject> newGlobalRef(JNIEnv* env, jobject obj) {
    function newGlobalRef (line 99) | ScopedGlobalRef<jthrowable> newGlobalRef(JNIEnv* env, jthrowable obj) {

FILE: java/jni/common.h
  function namespace (line 12) | namespace facebook::yoga::vanillajni {

FILE: java/jni/corefunctions.cpp
  type facebook::yoga::vanillajni (line 12) | namespace facebook::yoga::vanillajni {
    type JavaVMInitializer (line 16) | struct JavaVMInitializer {
      method JavaVMInitializer (line 17) | explicit JavaVMInitializer(JavaVM* vm) {
    function jint (line 27) | jint ensureInitialized(JNIEnv** env, JavaVM* vm) {
    function JNIEXPORT (line 45) | JNIEXPORT JNIEnv* getCurrentEnv() {
    function logErrorMessageAndDie (line 56) | void logErrorMessageAndDie(const char* message) {
    function assertNoPendingJniException (line 65) | void assertNoPendingJniException(JNIEnv* env) {
    function assertNoPendingJniExceptionIf (line 78) | void assertNoPendingJniExceptionIf(JNIEnv* env, bool condition) {

FILE: java/jni/corefunctions.h
  function namespace (line 13) | namespace facebook::yoga::vanillajni {

FILE: java/jni/yogajni.cpp
  function jint (line 13) | jint JNI_OnLoad(JavaVM* vm, void* /*unused*/) {

FILE: java/tests/com/facebook/yoga/TestParametrization.java
  class TestParametrization (line 13) | public class TestParametrization {
    method nodeFactories (line 14) | public static Iterable<NodeFactory> nodeFactories() {
    type NodeFactory (line 35) | public interface NodeFactory {
      method create (line 36) | YogaNode create();
      method create (line 37) | YogaNode create(YogaConfig config);

FILE: java/tests/com/facebook/yoga/YGAlignBaselineTest.java
  class YGAlignBaselineTest (line 16) | @RunWith(Parameterized.class)
    method nodeFactories (line 18) | @Parameterized.Parameters(name = "{0}")
    method getBaselineFunc (line 25) | private YogaBaselineFunction getBaselineFunc() {
    method test_align_baseline_parent_using_child_in_column_as_reference (line 34) | @Test
    method test_align_baseline_parent_using_child_in_row_as_reference (line 71) | @Test
    method createYGNode (line 108) | private YogaNode createYGNode(

FILE: java/tests/com/facebook/yoga/YogaExceptionTest.java
  class YogaExceptionTest (line 25) | @RunWith(Parameterized.class)
    method nodeFactories (line 27) | @Parameterized.Parameters(name = "{0}")
    method testBaselineThrows (line 34) | @Test(expected = RuntimeException.class)
    method testBaselineThrowsAndStops (line 54) | @Test
    method testMeasureThrows (line 93) | @Test(expected = RuntimeException.class)
    method testMeasureThrowsAndStops (line 109) | @Test
    method createNode (line 158) | private YogaNode createNode() {
    method createNode (line 162) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/com/facebook/yoga/YogaLoggerTest.java
  class YogaLoggerTest (line 18) | public class YogaLoggerTest {
    method testRemovingLoggerFromConfig (line 20) | @Test
    method testLoggerLeak (line 68) | @Test

FILE: java/tests/com/facebook/yoga/YogaNodeStylePropertiesTest.java
  class YogaNodeStylePropertiesTest (line 16) | @RunWith(Parameterized.class)
    method nodeFactories (line 19) | @Parameterized.Parameters(name = "{0}")
    method testDirectionDefault (line 28) | @Test
    method testDirectionAssignment (line 36) | @Test
    method testDirectionAffectsLayout (line 46) | @Test
    method testFlexDirectionDefault (line 55) | @Test
    method testFlexDirectionAssignment (line 62) | @Test
    method testFlexDirectionAffectsLayout (line 69) | @Test
    method testJustifyContentDefault (line 82) | @Test
    method testJustifyContentAssignment (line 89) | @Test
    method testJustifyContentAffectsLayout (line 97) | @Test
    method testAlignItemsDefault (line 110) | @Test
    method testAlignItemsAssignment (line 117) | @Test
    method testAlignItemsAffectsLayout (line 125) | @Test
    method testAlignSelfDefault (line 134) | @Test
    method testAlignSelfAssignment (line 141) | @Test
    method testAlignSelfAffectsLayout (line 149) | @Test
    method testAlignContentDefault (line 158) | @Test
    method testAlignContentAssignment (line 165) | @Test
    method testAlignContentAffectsLayout (line 173) | @Test
    method testPositionTypeDefault (line 190) | @Test
    method testPositionTypeAssignment (line 197) | @Test
    method testPositionTypeAffectsLayout (line 205) | @Test
    method testWrapAffectsLayout (line 218) | @Test
    method testOverflowDefault (line 232) | @Test
    method testOverflowAssignment (line 239) | @Test
    method testDisplayDefault (line 249) | @Test
    method testDisplayAssignment (line 256) | @Test
    method testDisplayAffectsLayout (line 264) | @Test
    method testFlexAffectsLayoutGrowing (line 273) | @Test
    method testFlexAffectsLayoutShrinking (line 281) | @Test
    method testFlexGrowDefault (line 289) | @Test
    method testFlexGrowAssignment (line 296) | @Test
    method testFlexGrowAffectsLayout (line 304) | @Test
    method testFlexShrinkDefault (line 313) | @Test
    method testFlexShrinkAssignment (line 320) | @Test
    method testFlexShrinkAffectsLayout (line 328) | @Test
    method testFlexBasisDefault (line 337) | @Test
    method testFlexBasisAssignment (line 344) | @Test
    method testFlexBasisAffectsLayout (line 357) | @Test
    method testFlexBasisPercentAffectsLayout (line 369) | @Test
    method testMarginDefault (line 381) | @Test
    method testMarginAssignment (line 389) | @Test
    method testNegativeMarginAssignment (line 404) | @Test
    method testMarginPointAffectsLayout (line 419) | @Test
    method testMarginPercentAffectsLayout (line 427) | @Test
    method testMarginAutoAffectsLayout (line 436) | @Test
    method testPaddingDefault (line 449) | @Test
    method testPaddingAssignment (line 457) | @Test
    method testPaddingPointAffectsLayout (line 469) | @Test
    method testPaddingPercentAffectsLayout (line 477) | @Test
    method testBorderDefault (line 486) | @Test
    method testBorderAssignment (line 494) | @Test
    method testBorderAffectsLayout (line 503) | @Test
    method testPositionDefault (line 511) | @Test
    method testPositionAssignment (line 519) | @Test
    method testPositionAffectsLayout (line 531) | @Test
    method testPositionPercentAffectsLayout (line 547) | @Test
    method testWidthDefault (line 563) | @Test
    method testWidthAssignment (line 570) | @Test
    method testWidthAffectsLayout (line 580) | @Test
    method testWidthPercentAffectsLayout (line 588) | @Test
    method testHeightDefault (line 598) | @Test
    method testHeightAssignment (line 605) | @Test
    method testHeightAffectsLayout (line 615) | @Test
    method testHeightPercentAffectsLayout (line 623) | @Test
    method testMinWidthDefault (line 633) | @Test
    method testMinWidthAssignment (line 640) | @Test
    method testMinWidthAffectsLayout (line 650) | @Test
    method testMinWidthPercentAffectsLayout (line 658) | @Test
    method testMinHeightDefault (line 666) | @Test
    method testMinHeightAssignment (line 673) | @Test
    method testMinHeightAffectsLayout (line 683) | @Test
    method testMinHeightPercentAffectsLayout (line 691) | @Test
    method testMaxWidthDefault (line 699) | @Test
    method testMaxWidthAssignment (line 706) | @Test
    method testMaxWidthAffectsLayout (line 716) | @Test
    method testMaxWidthPercentAffectsLayout (line 724) | @Test
    method testMaxHeightDefault (line 732) | @Test
    method testMaxHeightAssignment (line 739) | @Test
    method testMaxHeightAffectsLayout (line 749) | @Test
    method testMaxHeightPercentAffectsLayout (line 762) | @Test
    method testAspectRatioDefault (line 775) | @Test
    method testAspectRatioAssignment (line 782) | @Test
    method aspectRatioAffectsLayoutWithGivenWidth (line 790) | @Test
    method aspectRatioAffectsLayoutWithGivenHeight (line 798) | @Test
    method createNode (line 806) | private YogaNode createNode() {
    method style (line 810) | private StyledNode style() {
    class StyledNode (line 814) | private static class StyledNode {
      method StyledNode (line 818) | public StyledNode(TestParametrization.NodeFactory nodeFactory) {
      method node (line 822) | YogaNode node() {
      method children (line 826) | StyledNode children(StyledNode... children) {
      method direction (line 836) | StyledNode direction(YogaDirection direction) {
      method width (line 841) | StyledNode width(float width) {
      method widthPercent (line 846) | StyledNode widthPercent(float width) {
      method flexDirection (line 851) | StyledNode flexDirection(YogaFlexDirection direction) {
      method justifyContent (line 856) | StyledNode justifyContent(YogaJustify justify) {
      method height (line 861) | StyledNode height(float height) {
      method heightPercent (line 866) | StyledNode heightPercent(float height) {
      method alignItems (line 871) | StyledNode alignItems(YogaAlign align) {
      method alignSelf (line 876) | StyledNode alignSelf(YogaAlign align) {
      method alignContent (line 881) | StyledNode alignContent(YogaAlign align) {
      method flexWrap (line 886) | StyledNode flexWrap(YogaWrap wrap) {
      method positionType (line 891) | StyledNode positionType(YogaPositionType positionType) {
      method overflow (line 896) | StyledNode overflow(YogaOverflow overflow) {
      method flexShrink (line 901) | StyledNode flexShrink(float flexShrink) {
      method display (line 906) | StyledNode display(YogaDisplay display) {
      method flexGrow (line 911) | StyledNode flexGrow(float flexGrow) {
      method flex (line 916) | StyledNode flex(float flex) {
      method flexBasis (line 921) | StyledNode flexBasis(float flexBasis) {
      method flexBasisPercent (line 926) | StyledNode flexBasisPercent(float flexBasis) {
      method margin (line 931) | StyledNode margin(YogaEdge edge, float margin) {
      method marginPercent (line 936) | StyledNode marginPercent(YogaEdge edge, float margin) {
      method marginAuto (line 941) | StyledNode marginAuto(YogaEdge edge) {
      method padding (line 946) | StyledNode padding(YogaEdge edge, float padding) {
      method paddingPercent (line 951) | StyledNode paddingPercent(YogaEdge edge, float padding) {
      method border (line 956) | StyledNode border(YogaEdge edge, float border) {
      method position (line 961) | StyledNode position(YogaEdge edge, float position) {
      method positionPercent (line 966) | StyledNode positionPercent(YogaEdge edge, float position) {
      method minWidth (line 971) | StyledNode minWidth(float minWidth) {
      method minWidthPercent (line 976) | StyledNode minWidthPercent(float minWidth) {
      method minHeight (line 981) | StyledNode minHeight(float minHeight) {
      method minHeightPercent (line 986) | StyledNode minHeightPercent(float minHeight) {
      method maxWidth (line 991) | StyledNode maxWidth(float maxWidth) {
      method maxWidthPercent (line 996) | StyledNode maxWidthPercent(float maxWidth) {
      method maxHeight (line 1001) | StyledNode maxHeight(float maxHeight) {
      method maxHeightPercent (line 1006) | StyledNode maxHeightPercent(float maxHeight) {
      method aspectRatio (line 1011) | StyledNode aspectRatio(float aspectRatio) {

FILE: java/tests/com/facebook/yoga/YogaNodeTest.java
  class YogaNodeTest (line 24) | @RunWith(Parameterized.class)
    method nodeFactories (line 26) | @Parameterized.Parameters(name = "{0}")
    method testInit (line 33) | @Test
    method testBaseline (line 38) | @Test
    method testMeasure (line 67) | @Test
    method testMeasureFloat (line 85) | @Test
    method testMeasureFloatMin (line 103) | @Test
    method testMeasureFloatBigNumber (line 121) | @Test
    method testCopyStyle (line 141) | @Test
    method testLayoutMargin (line 153) | @Test
    method testLayoutPadding (line 170) | @Test
    method testLayoutBorder (line 187) | @Test
    method testUseWebDefaults (line 204) | @Test
    method testPercentPaddingOnRoot (line 212) | @Test
    method testDefaultEdgeValues (line 224) | @Test
    method initiallyHasNewLayout (line 236) | @Test
    method initialLayoutCanBeMarkedSeen (line 242) | @Test
    method calculatingLayoutMarksLayoutAsUnseen (line 249) | @Test
    method calculatedLayoutCanBeMarkedSeen (line 257) | @Test
    method recalculatingLayoutDoesMarkAsUnseen (line 265) | @Test
    method resetAlsoResetsLayoutSeen (line 274) | @Test
    method directionIsPassedThrough (line 282) | @Test
    method testResetApiShouldResetAllLayoutOutputs (line 292) | @Test
    method createNode (line 353) | private YogaNode createNode() {
    method createNode (line 357) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/com/facebook/yoga/YogaValueTest.java
  class YogaValueTest (line 14) | public class YogaValueTest {
    method testEquals (line 16) | @Test

FILE: java/tests/com/facebook/yoga/utils/TestUtils.java
  class TestUtils (line 16) | public class TestUtils {
    class intrinsicMeasureFunction (line 18) | public static class intrinsicMeasureFunction implements YogaMeasureFun...
      method measure (line 23) | @Override
      method getWidestWordWidth (line 59) | static float getWidestWordWidth(String text) {
      method caclulateHeight (line 71) | static float caclulateHeight(String text, float measuredWidth) {

FILE: java/tests/generated/com/facebook/yoga/YGAbsolutePositionTest.java
  class YGAbsolutePositionTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_absolute_layout_width_height_start_top (line 30) | @Test
    method test_absolute_layout_width_height_left_auto_right (line 73) | @Test
    method test_absolute_layout_width_height_left_right_auto (line 116) | @Test
    method test_absolute_layout_width_height_left_auto_right_auto (line 159) | @Test
    method test_absolute_layout_width_height_end_bottom (line 202) | @Test
    method test_absolute_layout_start_top_end_bottom (line 245) | @Test
    method test_absolute_layout_width_height_start_top_end_bottom (line 288) | @Test
    method test_do_not_clamp_height_of_absolute_node_to_height_of_its_overflow_hidden_parent (line 333) | @Test
    method test_absolute_layout_within_border (line 391) | @Test
    method test_absolute_layout_align_items_and_justify_content_center (line 493) | @Test
    method test_absolute_layout_align_items_and_justify_content_flex_end (line 537) | @Test
    method test_absolute_layout_justify_content_center (line 581) | @Test
    method test_absolute_layout_align_items_center (line 624) | @Test
    method test_absolute_layout_align_items_center_on_child_only (line 667) | @Test
    method test_absolute_layout_align_items_and_justify_content_center_and_top_position (line 710) | @Test
    method test_absolute_layout_align_items_and_justify_content_center_and_bottom_position (line 755) | @Test
    method test_absolute_layout_align_items_and_justify_content_center_and_left_position (line 800) | @Test
    method test_absolute_layout_align_items_and_justify_content_center_and_right_position (line 845) | @Test
    method test_position_root_with_rtl_should_position_withoutdirection (line 890) | @Test
    method test_absolute_layout_percentage_bottom_based_on_parent_height (line 916) | @Test
    method test_absolute_layout_in_wrap_reverse_column_container (line 992) | @Test
    method test_absolute_layout_in_wrap_reverse_row_container (line 1034) | @Test
    method test_absolute_layout_in_wrap_reverse_column_container_flex_end (line 1077) | @Test
    method test_absolute_layout_in_wrap_reverse_row_container_flex_end (line 1120) | @Test
    method test_percent_absolute_position_infinite_height (line 1164) | @Test
    method test_absolute_layout_percentage_height_based_on_padded_parent (line 1220) | @Test
    method test_absolute_layout_percentage_height_based_on_padded_parent_and_align_items_center (line 1263) | @Test
    method test_absolute_layout_padding_left (line 1307) | @Test
    method test_absolute_layout_padding_right (line 1349) | @Test
    method test_absolute_layout_padding_top (line 1391) | @Test
    method test_absolute_layout_padding_bottom (line 1433) | @Test
    method test_absolute_layout_padding (line 1475) | @Test
    method test_absolute_layout_border (line 1547) | @Test
    method test_absolute_layout_column_reverse_margin_border (line 1619) | @Test
    method createNode (line 1667) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGAlignContentTest.java
  class YGAlignContentTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_align_content_flex_start_nowrap (line 30) | @Test
    method test_align_content_flex_start_wrap (line 86) | @Test
    method test_align_content_flex_start_wrap_singleline (line 188) | @Test
    method test_align_content_flex_start_wrapped_negative_space (line 245) | @Test
    method test_align_content_flex_start_wrapped_negative_space_gap (line 333) | @Test
    method test_align_content_flex_start_without_height_on_children (line 422) | @Test
    method test_align_content_flex_start_with_flex (line 520) | @Test
    method test_align_content_flex_end_nowrap (line 624) | @Test
    method test_align_content_flex_end_wrap (line 681) | @Test
    method test_align_content_flex_end_wrap_singleline (line 784) | @Test
    method test_align_content_flex_end_wrapped_negative_space (line 842) | @Test
    method test_align_content_flex_end_wrapped_negative_space_gap (line 931) | @Test
    method test_align_content_center_nowrap (line 1021) | @Test
    method test_align_content_center_wrap (line 1078) | @Test
    method test_align_content_center_wrap_singleline (line 1181) | @Test
    method test_align_content_center_wrapped_negative_space (line 1239) | @Test
    method test_align_content_center_wrapped_negative_space_gap (line 1328) | @Test
    method test_align_content_space_between_nowrap (line 1418) | @Test
    method test_align_content_space_between_wrap (line 1475) | @Test
    method test_align_content_space_between_wrap_singleline (line 1578) | @Test
    method test_align_content_space_between_wrapped_negative_space (line 1636) | @Test
    method test_align_content_space_between_wrapped_negative_space_row_reverse (line 1725) | @Test
    method test_align_content_space_between_wrapped_negative_space_gap (line 1814) | @Test
    method test_align_content_space_around_nowrap (line 1904) | @Test
    method test_align_content_space_around_wrap (line 1961) | @Test
    method test_align_content_space_around_wrap_singleline (line 2064) | @Test
    method test_align_content_space_around_wrapped_negative_space (line 2122) | @Test
    method test_align_content_space_around_wrapped_negative_space_row_reverse (line 2211) | @Test
    method test_align_content_space_around_wrapped_negative_space_gap (line 2300) | @Test
    method test_align_content_space_evenly_nowrap (line 2390) | @Test
    method test_align_content_space_evenly_wrap (line 2447) | @Test
    method test_align_content_space_evenly_wrap_singleline (line 2550) | @Test
    method test_align_content_space_evenly_wrapped_negative_space (line 2608) | @Test
    method test_align_content_space_evenly_wrapped_negative_space_gap (line 2697) | @Test
    method test_align_content_stretch (line 2787) | @Test
    method test_align_content_stretch_row (line 2884) | @Test
    method test_align_content_stretch_row_with_children (line 2982) | @Test
    method test_align_content_stretch_row_with_flex (line 3096) | @Test
    method test_align_content_stretch_row_with_flex_no_shrink (line 3200) | @Test
    method test_align_content_stretch_row_with_margin (line 3303) | @Test
    method test_align_content_stretch_row_with_padding (line 3403) | @Test
    method test_align_content_stretch_row_with_single_row (line 3503) | @Test
    method test_align_content_stretch_row_with_fixed_height (line 3559) | @Test
    method test_align_content_stretch_row_with_max_height (line 3658) | @Test
    method test_align_content_stretch_row_with_min_height (line 3757) | @Test
    method test_align_content_stretch_column (line 3856) | @Test
    method test_align_content_stretch_is_not_overriding_align_items (line 3972) | @Test
    method test_align_content_stretch_with_min_cross_axis (line 4030) | @Test
    method test_align_content_stretch_with_max_cross_axis (line 4088) | @Test
    method test_align_content_stretch_with_max_cross_axis_and_border_padding (line 4146) | @Test
    method test_align_content_space_evenly_with_min_cross_axis (line 4206) | @Test
    method test_align_content_space_evenly_with_max_cross_axis (line 4264) | @Test
    method test_align_content_space_evenly_with_max_cross_axis_violated (line 4322) | @Test
    method test_align_content_space_evenly_with_max_cross_axis_violated_padding_and_border (line 4380) | @Test
    method test_align_content_space_around_and_align_items_flex_end_with_flex_wrap (line 4440) | @Test
    method test_align_content_space_around_and_align_items_center_with_flex_wrap (line 4514) | @Test
    method test_align_content_space_around_and_align_items_flex_start_with_flex_wrap (line 4588) | @Test
    method test_align_content_flex_start_stretch_doesnt_influence_line_box_dim (line 4662) | @Test
    method test_align_content_stretch_stretch_does_influence_line_box_dim (line 4820) | @Test
    method test_align_content_space_evenly_stretch_does_influence_line_box_dim (line 4979) | @Test
    method test_align_content_stretch_and_align_items_flex_end_with_flex_wrap (line 5138) | @Test
    method test_align_content_stretch_and_align_items_flex_start_with_flex_wrap (line 5213) | @Test
    method test_align_content_stretch_and_align_items_center_with_flex_wrap (line 5288) | @Test
    method test_align_content_stretch_and_align_items_stretch_with_flex_wrap (line 5363) | @Test
    method createNode (line 5437) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGAlignItemsTest.java
  class YGAlignItemsTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_align_items_stretch (line 30) | @Test
    method test_align_items_center (line 69) | @Test
    method test_align_items_flex_start (line 110) | @Test
    method test_align_items_flex_end (line 151) | @Test
    method test_align_baseline (line 192) | @Test
    method test_align_baseline_child (line 249) | @Test
    method test_align_baseline_child_multiline (line 321) | @Test
    method test_align_baseline_child_multiline_override (line 440) | @Test
    method test_align_baseline_child_multiline_no_override_on_secondline (line 561) | @Test
    method test_align_baseline_child_top (line 681) | @Test
    method test_align_baseline_child_top2 (line 754) | @Test
    method test_align_baseline_double_nested_child (line 827) | @Test
    method test_align_baseline_column (line 914) | @Test
    method test_align_baseline_child_margin (line 970) | @Test
    method test_align_baseline_child_padding (line 1044) | @Test
    method test_align_baseline_multiline (line 1118) | @Test
    method test_align_baseline_multiline_column (line 1236) | @Test
    method test_align_baseline_multiline_column2 (line 1354) | @Test
    method test_align_baseline_multiline_row_and_column (line 1472) | @Test
    method test_align_items_center_child_with_margin_bigger_than_parent (line 1590) | @Test
    method test_align_items_flex_end_child_with_margin_bigger_than_parent (line 1648) | @Test
    method test_align_items_center_child_without_margin_bigger_than_parent (line 1706) | @Test
    method test_align_items_flex_end_child_without_margin_bigger_than_parent (line 1762) | @Test
    method test_align_center_should_size_based_on_content (line 1818) | @Test
    method test_align_stretch_should_size_based_on_parent (line 1890) | @Test
    method test_align_flex_start_with_shrinking_children (line 1961) | @Test
    method test_align_flex_start_with_stretching_children (line 2030) | @Test
    method test_align_flex_start_with_shrinking_children_with_stretch (line 2098) | @Test
    method test_align_flex_end_with_row_reverse (line 2167) | @Test
    method test_align_stretch_with_row_reverse (line 2226) | @Test
    method test_align_items_non_stretch_s526008 (line 2284) | @Test
    method createNode (line 2365) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGAlignSelfTest.java
  class YGAlignSelfTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_align_self_center (line 30) | @Test
    method test_align_self_flex_end (line 71) | @Test
    method test_align_self_flex_start (line 112) | @Test
    method test_align_self_flex_end_override_flex_start (line 153) | @Test
    method test_align_self_baseline (line 195) | @Test
    method createNode (line 268) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGAndroidNewsFeed.java
  class YGAndroidNewsFeed (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_android_news_feed (line 30) | @Test
    method createNode (line 310) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGAspectRatioTest.java
  class YGAspectRatioTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_aspect_ratio_does_not_stretch_cross_axis_dim (line 30) | @Test
    method test_zero_aspect_ratio_behaves_like_auto (line 182) | @Test
    method createNode (line 222) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGAutoTest.java
  class YGAutoTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_auto_width (line 30) | @Test
    method test_auto_height (line 101) | @Test
    method test_auto_flex_basis (line 171) | @Test
    method test_auto_position (line 241) | @Test
    method test_auto_margin (line 282) | @Test
    method createNode (line 323) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGBorderTest.java
  class YGBorderTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_border_no_size (line 30) | @Test
    method test_border_container_match_child (line 54) | @Test
    method test_border_flex_child (line 93) | @Test
    method test_border_stretch_child (line 134) | @Test
    method test_border_center_child (line 174) | @Test
    method createNode (line 219) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGBoxSizingTest.java
  class YGBoxSizingTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_box_sizing_content_box_simple (line 30) | @Test
    method test_box_sizing_border_box_simple (line 58) | @Test
    method test_box_sizing_content_box_percent (line 85) | @Test
    method test_box_sizing_border_box_percent (line 128) | @Test
    method test_box_sizing_content_box_absolute (line 170) | @Test
    method test_box_sizing_border_box_absolute (line 213) | @Test
    method test_box_sizing_content_box_comtaining_block (line 255) | @Test
    method test_box_sizing_border_box_comtaining_block (line 313) | @Test
    method test_box_sizing_content_box_padding_only (line 370) | @Test
    method test_box_sizing_content_box_padding_only_percent (line 397) | @Test
    method test_box_sizing_border_box_padding_only (line 439) | @Test
    method test_box_sizing_border_box_padding_only_percent (line 465) | @Test
    method test_box_sizing_content_box_border_only (line 506) | @Test
    method test_box_sizing_content_box_border_only_percent (line 533) | @Test
    method test_box_sizing_border_box_border_only (line 573) | @Test
    method test_box_sizing_border_box_border_only_percent (line 599) | @Test
    method test_box_sizing_content_box_no_padding_no_border (line 638) | @Test
    method test_box_sizing_border_box_no_padding_no_border (line 664) | @Test
    method test_box_sizing_content_box_children (line 689) | @Test
    method test_box_sizing_border_box_children (line 777) | @Test
    method test_box_sizing_content_box_siblings (line 864) | @Test
    method test_box_sizing_border_box_siblings (line 952) | @Test
    method test_box_sizing_content_box_max_width (line 1039) | @Test
    method test_box_sizing_border_box_max_width (line 1097) | @Test
    method test_box_sizing_content_box_max_height (line 1154) | @Test
    method test_box_sizing_border_box_max_height (line 1212) | @Test
    method test_box_sizing_content_box_min_width (line 1269) | @Test
    method test_box_sizing_border_box_min_width (line 1327) | @Test
    method test_box_sizing_content_box_min_height (line 1384) | @Test
    method test_box_sizing_border_box_min_height (line 1442) | @Test
    method test_box_sizing_content_box_no_height_no_width (line 1499) | @Test
    method test_box_sizing_border_box_no_height_no_width (line 1540) | @Test
    method test_box_sizing_content_box_nested (line 1580) | @Test
    method test_box_sizing_border_box_nested (line 1644) | @Test
    method test_box_sizing_content_box_nested_alternating (line 1705) | @Test
    method test_box_sizing_border_box_nested_alternating (line 1785) | @Test
    method test_box_sizing_content_box_flex_basis_row (line 1865) | @Test
    method test_box_sizing_border_box_flex_basis_row (line 1910) | @Test
    method test_box_sizing_content_box_flex_basis_column (line 1953) | @Test
    method test_box_sizing_border_box_flex_basis_column (line 1997) | @Test
    method test_box_sizing_content_box_padding_start (line 2039) | @Test
    method test_box_sizing_border_box_padding_start (line 2066) | @Test
    method test_box_sizing_content_box_padding_end (line 2092) | @Test
    method test_box_sizing_border_box_padding_end (line 2119) | @Test
    method test_box_sizing_content_box_border_start (line 2145) | @Test
    method test_box_sizing_border_box_border_start (line 2172) | @Test
    method test_box_sizing_content_box_border_end (line 2198) | @Test
    method test_box_sizing_border_box_border_end (line 2225) | @Test
    method createNode (line 2251) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGDimensionTest.java
  class YGDimensionTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_wrap_child (line 30) | @Test
    method test_wrap_grandchild (line 68) | @Test
    method createNode (line 119) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGDisplayContentsTest.java
  class YGDisplayContentsTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_test1 (line 30) | @Test
    method createNode (line 104) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGDisplayTest.java
  class YGDisplayTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_display_none (line 30) | @Test
    method test_display_none_fixed_size (line 85) | @Test
    method test_display_none_with_margin (line 141) | @Test
    method test_display_none_with_child (line 198) | @Test
    method test_display_none_with_position (line 290) | @Test
    method test_display_none_with_position_absolute (line 346) | @Test
    method test_display_contents (line 388) | @Test
    method test_display_contents_fixed_size (line 462) | @Test
    method test_display_contents_with_margin (line 538) | @Test
    method test_display_contents_with_padding (line 595) | @Test
    method test_display_contents_with_position (line 670) | @Test
    method test_display_contents_with_position_absolute (line 745) | @Test
    method test_display_contents_nested (line 822) | @Test
    method test_display_contents_with_siblings (line 910) | @Test
    method createNode (line 1018) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGFlexBasisFitContentTest.java
  class YGFlexBasisFitContentTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_container_child_overflows_definite_parent_column (line 30) | @Test
    method test_container_child_overflows_definite_parent_row (line 83) | @Test
    method test_container_child_within_bounds_column (line 137) | @Test
    method test_multiple_container_children_overflow_column (line 190) | @Test
    method test_scroll_container_column (line 269) | @Test
    method test_explicit_and_container_children_column (line 322) | @Test
    method test_flex_basis_in_scroll_content_container (line 388) | @Test
    method createNode (line 456) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGFlexDirectionTest.java
  class YGFlexDirectionTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_flex_direction_column_no_height (line 30) | @Test
    method test_flex_direction_row_no_width (line 96) | @Test
    method test_flex_direction_column (line 163) | @Test
    method test_flex_direction_row (line 230) | @Test
    method test_flex_direction_column_reverse (line 298) | @Test
    method test_flex_direction_row_reverse (line 366) | @Test
    method test_flex_direction_row_reverse_margin_left (line 434) | @Test
    method test_flex_direction_row_reverse_margin_start (line 503) | @Test
    method test_flex_direction_row_reverse_margin_right (line 572) | @Test
    method test_flex_direction_row_reverse_margin_end (line 641) | @Test
    method test_flex_direction_column_reverse_margin_top (line 710) | @Test
    method test_flex_direction_column_reverse_margin_bottom (line 779) | @Test
    method test_flex_direction_row_reverse_padding_left (line 848) | @Test
    method test_flex_direction_row_reverse_padding_start (line 917) | @Test
    method test_flex_direction_row_reverse_padding_right (line 986) | @Test
    method test_flex_direction_row_reverse_padding_end (line 1055) | @Test
    method test_flex_direction_column_reverse_padding_top (line 1124) | @Test
    method test_flex_direction_column_reverse_padding_bottom (line 1193) | @Test
    method test_flex_direction_row_reverse_border_left (line 1262) | @Test
    method test_flex_direction_row_reverse_border_start (line 1331) | @Test
    method test_flex_direction_row_reverse_border_right (line 1400) | @Test
    method test_flex_direction_row_reverse_border_end (line 1469) | @Test
    method test_flex_direction_column_reverse_border_top (line 1538) | @Test
    method test_flex_direction_column_reverse_border_bottom (line 1607) | @Test
    method test_flex_direction_row_reverse_pos_left (line 1676) | @Test
    method test_flex_direction_row_reverse_pos_start (line 1760) | @Test
    method test_flex_direction_row_reverse_pos_right (line 1844) | @Test
    method test_flex_direction_row_reverse_pos_end (line 1928) | @Test
    method test_flex_direction_column_reverse_pos_top (line 2012) | @Test
    method test_flex_direction_column_reverse_pos_bottom (line 2096) | @Test
    method test_flex_direction_row_reverse_inner_pos_left (line 2180) | @Test
    method test_flex_direction_row_reverse_inner_pos_right (line 2266) | @Test
    method test_flex_direction_col_reverse_inner_pos_top (line 2352) | @Test
    method test_flex_direction_col_reverse_inner_pos_bottom (line 2438) | @Test
    method test_flex_direction_row_reverse_inner_pos_start (line 2524) | @Test
    method test_flex_direction_row_reverse_inner_pos_end (line 2611) | @Test
    method test_flex_direction_row_reverse_inner_margin_left (line 2698) | @Test
    method test_flex_direction_row_reverse_inner_margin_right (line 2784) | @Test
    method test_flex_direction_col_reverse_inner_margin_top (line 2870) | @Test
    method test_flex_direction_col_reverse_inner_margin_bottom (line 2956) | @Test
    method test_flex_direction_row_reverse_inner_marign_start (line 3042) | @Test
    method test_flex_direction_row_reverse_inner_margin_end (line 3128) | @Test
    method test_flex_direction_row_reverse_inner_border_left (line 3214) | @Test
    method test_flex_direction_row_reverse_inner_border_right (line 3300) | @Test
    method test_flex_direction_col_reverse_inner_border_top (line 3386) | @Test
    method test_flex_direction_col_reverse_inner_border_bottom (line 3472) | @Test
    method test_flex_direction_row_reverse_inner_border_start (line 3558) | @Test
    method test_flex_direction_row_reverse_inner_border_end (line 3644) | @Test
    method test_flex_direction_row_reverse_inner_padding_left (line 3730) | @Test
    method test_flex_direction_row_reverse_inner_padding_right (line 3816) | @Test
    method test_flex_direction_col_reverse_inner_padding_top (line 3902) | @Test
    method test_flex_direction_col_reverse_inner_padding_bottom (line 3988) | @Test
    method test_flex_direction_row_reverse_inner_padding_start (line 4074) | @Test
    method test_flex_direction_row_reverse_inner_padding_end (line 4160) | @Test
    method test_flex_direction_alternating_with_percent (line 4246) | @Test
    method createNode (line 4289) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGFlexTest.java
  class YGFlexTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_flex_basis_flex_grow_column (line 30) | @Test
    method test_flex_shrink_flex_grow_row (line 84) | @Test
    method test_flex_shrink_flex_grow_child_flex_shrink_other_child (line 142) | @Test
    method test_flex_basis_flex_grow_row (line 201) | @Test
    method test_flex_basis_flex_shrink_column (line 256) | @Test
    method test_flex_basis_flex_shrink_row (line 310) | @Test
    method test_flex_shrink_to_zero (line 365) | @Test
    method test_flex_basis_overrides_main_size (line 435) | @Test
    method test_flex_grow_shrink_at_most (line 506) | @Test
    method test_flex_grow_less_than_factor_one (line 559) | @Test
    method createNode (line 627) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGFlexWrapTest.java
  class YGFlexWrapTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_wrap_column (line 30) | @Test
    method test_wrap_row (line 116) | @Test
    method test_wrap_row_align_items_flex_end (line 202) | @Test
    method test_wrap_row_align_items_center (line 289) | @Test
    method test_flex_wrap_children_with_min_main_overriding_flex_basis (line 376) | @Test
    method test_flex_wrap_wrap_to_child_height (line 434) | @Test
    method test_flex_wrap_align_stretch_fits_one_row (line 517) | @Test
    method test_wrap_reverse_row_align_content_flex_start (line 572) | @Test
    method test_wrap_reverse_row_align_content_center (line 673) | @Test
    method test_wrap_reverse_row_single_line_different_size (line 775) | @Test
    method test_wrap_reverse_row_align_content_stretch (line 876) | @Test
    method test_wrap_reverse_row_align_content_space_around (line 978) | @Test
    method test_wrap_reverse_column_fixed_size (line 1080) | @Test
    method test_wrapped_row_within_align_items_center (line 1182) | @Test
    method test_wrapped_row_within_align_items_flex_start (line 1253) | @Test
    method test_wrapped_row_within_align_items_flex_end (line 1324) | @Test
    method test_wrapped_column_max_height (line 1395) | @Test
    method test_wrapped_column_max_height_flex (line 1471) | @Test
    method test_wrap_nodes_with_content_sizing_overflowing_margin (line 1553) | @Test
    method test_wrap_nodes_with_content_sizing_margin_cross (line 1651) | @Test
    method test_wrap_with_min_cross_axis (line 1749) | @Test
    method test_wrap_with_max_cross_axis (line 1806) | @Test
    method test_nowrap_expands_flexline_box_to_min_cross (line 1863) | @Test
    method test_wrap_does_not_impose_min_cross_onto_single_flexline (line 1904) | @Test
    method createNode (line 1946) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGGapTest.java
  class YGGapTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_column_gap_flexible (line 30) | @Test
    method test_column_gap_inflexible (line 106) | @Test
    method test_column_gap_mixed_flexible (line 175) | @Test
    method test_column_gap_child_margins (line 246) | @Test
    method test_column_row_gap_wrapping (line 324) | @Test
    method test_column_gap_start_index (line 487) | @Test
    method test_column_gap_justify_flex_start (line 576) | @Test
    method test_column_gap_justify_center (line 645) | @Test
    method test_column_gap_justify_flex_end (line 715) | @Test
    method test_column_gap_justify_space_between (line 785) | @Test
    method test_column_gap_justify_space_around (line 855) | @Test
    method test_column_gap_justify_space_evenly (line 925) | @Test
    method test_column_gap_wrap_align_flex_start (line 995) | @Test
    method test_column_gap_wrap_align_center (line 1114) | @Test
    method test_column_gap_wrap_align_flex_end (line 1234) | @Test
    method test_column_gap_wrap_align_space_between (line 1354) | @Test
    method test_column_gap_wrap_align_space_around (line 1474) | @Test
    method test_column_gap_wrap_align_stretch (line 1594) | @Test
    method test_column_gap_determines_parent_width (line 1698) | @Test
    method test_row_gap_align_items_stretch (line 1766) | @Test
    method test_row_gap_align_items_end (line 1880) | @Test
    method test_row_gap_column_child_margins (line 1994) | @Test
    method test_row_gap_row_wrap_child_margins (line 2071) | @Test
    method test_row_gap_determines_parent_height (line 2144) | @Test
    method test_row_gap_percent_wrapping (line 2211) | @Test
    method test_row_gap_percent_determines_parent_height (line 2315) | @Test
    method test_row_gap_percent_wrapping_with_both_content_padding_and_item_padding (line 2417) | @Test
    method test_row_gap_percent_wrapping_with_both_content_padding (line 2526) | @Test
    method test_row_gap_percent_wrapping_with_content_margin (line 2630) | @Test
    method test_row_gap_percent_wrapping_with_content_margin_and_padding (line 2734) | @Test
    method test_row_gap_percent_wrapping_with_flexible_content (line 2839) | @Test
    method test_row_gap_percent_wrapping_with_mixed_flexible_content (line 2914) | @Test
    method test_row_gap_percent_wrapping_with_min_width (line 2985) | @Test
    method createNode (line 3088) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGIntrinsicSizeTest.java
  class YGIntrinsicSizeTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_contains_inner_text_long_word (line 30) | @Test
    method test_contains_inner_text_no_width_no_height (line 72) | @Test
    method test_contains_inner_text_no_width_no_height_long_word_in_paragraph (line 114) | @Test
    method test_contains_inner_text_fixed_width (line 156) | @Test
    method test_contains_inner_text_no_width_fixed_height (line 199) | @Test
    method test_contains_inner_text_fixed_width_fixed_height (line 242) | @Test
    method test_contains_inner_text_max_width_max_height (line 286) | @Test
    method test_contains_inner_text_max_width_max_height_column (line 330) | @Test
    method test_contains_inner_text_max_width (line 371) | @Test
    method test_contains_inner_text_fixed_width_shorter_text (line 414) | @Test
    method test_contains_inner_text_fixed_height_shorter_text (line 457) | @Test
    method test_contains_inner_text_max_height (line 500) | @Test
    method test_max_content_width (line 543) | @Test
    method test_fit_content_width (line 614) | @Test
    method test_stretch_width (line 700) | @Test
    method test_max_content_height (line 785) | @Test
    method test_fit_content_height (line 855) | @Test
    method test_stretch_height (line 940) | @Test
    method test_max_content_flex_basis_column (line 1025) | @Test
    method test_fit_content_flex_basis_column (line 1095) | @Test
    method test_stretch_flex_basis_column (line 1180) | @Test
    method test_max_content_flex_basis_row (line 1264) | @Test
    method test_fit_content_flex_basis_row (line 1336) | @Test
    method test_stretch_flex_basis_row (line 1422) | @Test
    method test_max_content_max_width (line 1508) | @Test
    method test_fit_content_max_width (line 1581) | @Test
    method test_stretch_max_width (line 1668) | @Test
    method test_max_content_min_width (line 1755) | @Test
    method test_fit_content_min_width (line 1828) | @Test
    method test_stretch_min_width (line 1915) | @Test
    method test_max_content_max_height (line 2002) | @Test
    method test_fit_content_max_height (line 2074) | @Test
    method test_stretch_max_height (line 2160) | @Test
    method test_max_content_min_height (line 2246) | @Test
    method test_fit_content_min_height (line 2318) | @Test
    method test_stretch_min_height (line 2404) | @Test
    method test_text_max_content_width (line 2490) | @Test
    method test_text_stretch_width (line 2545) | @Test
    method test_text_fit_content_width (line 2600) | @Test
    method test_text_max_content_min_width (line 2655) | @Test
    method test_text_stretch_min_width (line 2711) | @Test
    method test_text_fit_content_min_width (line 2767) | @Test
    method test_text_max_content_max_width (line 2823) | @Test
    method test_text_stretch_max_width (line 2879) | @Test
    method test_text_fit_content_max_width (line 2935) | @Test
    method createNode (line 2991) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGJustifyContentTest.java
  class YGJustifyContentTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_justify_content_row_flex_start (line 30) | @Test
    method test_justify_content_row_flex_end (line 98) | @Test
    method test_justify_content_row_center (line 167) | @Test
    method test_justify_content_row_space_between (line 236) | @Test
    method test_justify_content_row_space_around (line 305) | @Test
    method test_justify_content_column_flex_start (line 374) | @Test
    method test_justify_content_column_flex_end (line 441) | @Test
    method test_justify_content_column_center (line 509) | @Test
    method test_justify_content_column_space_between (line 577) | @Test
    method test_justify_content_column_space_around (line 645) | @Test
    method test_justify_content_row_min_width_and_margin (line 713) | @Test
    method test_justify_content_row_max_width_and_margin (line 755) | @Test
    method test_justify_content_column_min_height_and_margin (line 798) | @Test
    method test_justify_content_column_max_height_and_margin (line 839) | @Test
    method test_justify_content_column_space_evenly (line 881) | @Test
    method test_justify_content_row_space_evenly (line 949) | @Test
    method test_justify_content_min_width_with_padding_child_width_greater_than_parent (line 1018) | @Test
    method test_justify_content_min_width_with_padding_child_width_lower_than_parent (line 1095) | @Test
    method test_justify_content_space_between_indefinite_container_dim_with_free_space (line 1172) | @Test
    method test_justify_content_flex_start_row_reverse (line 1243) | @Test
    method test_justify_content_flex_end_row_reverse (line 1311) | @Test
    method test_justify_content_overflow_row_flex_start (line 1379) | @Test
    method test_justify_content_overflow_row_flex_end (line 1447) | @Test
    method test_justify_content_overflow_row_center (line 1516) | @Test
    method test_justify_content_overflow_row_space_between (line 1585) | @Test
    method test_justify_content_overflow_row_space_around (line 1654) | @Test
    method test_justify_content_overflow_row_space_evenly (line 1723) | @Test
    method test_justify_content_overflow_row_reverse_space_around (line 1792) | @Test
    method test_justify_content_overflow_row_reverse_space_evenly (line 1862) | @Test
    method test_justify_content_overflow_row_space_evenly_auto_margin (line 1932) | @Test
    method createNode (line 2002) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGMarginTest.java
  class YGMarginTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_margin_start (line 30) | @Test
    method test_margin_top (line 71) | @Test
    method test_margin_end (line 111) | @Test
    method test_margin_bottom (line 153) | @Test
    method test_margin_and_flex_row (line 194) | @Test
    method test_margin_and_flex_column (line 236) | @Test
    method test_margin_and_stretch_row (line 277) | @Test
    method test_margin_and_stretch_column (line 319) | @Test
    method test_margin_with_sibling_row (line 360) | @Test
    method test_margin_with_sibling_column (line 415) | @Test
    method test_margin_auto_bottom (line 469) | @Test
    method test_margin_auto_top (line 526) | @Test
    method test_margin_auto_bottom_and_top (line 583) | @Test
    method test_margin_auto_bottom_and_top_justify_center (line 641) | @Test
    method test_margin_auto_multiple_children_column (line 699) | @Test
    method test_margin_auto_multiple_children_row (line 772) | @Test
    method test_margin_auto_left_and_right_column (line 846) | @Test
    method test_margin_auto_left_and_right (line 905) | @Test
    method test_margin_auto_start_and_end_column (line 962) | @Test
    method test_margin_auto_start_and_end (line 1021) | @Test
    method test_margin_auto_left_and_right_column_and_center (line 1078) | @Test
    method test_margin_auto_left (line 1136) | @Test
    method test_margin_auto_right (line 1193) | @Test
    method test_margin_auto_left_and_right_stretch (line 1250) | @Test
    method test_margin_auto_top_and_bottom_stretch (line 1308) | @Test
    method test_margin_should_not_be_part_of_max_height (line 1365) | @Test
    method test_margin_should_not_be_part_of_max_width (line 1407) | @Test
    method test_margin_auto_left_right_child_bigger_than_parent (line 1449) | @Test
    method test_margin_auto_left_child_bigger_than_parent (line 1492) | @Test
    method test_margin_fix_left_auto_right_child_bigger_than_parent (line 1534) | @Test
    method test_margin_auto_left_fix_right_child_bigger_than_parent (line 1577) | @Test
    method test_margin_auto_top_stretching_child (line 1620) | @Test
    method test_margin_auto_left_stretching_child (line 1678) | @Test
    method test_margin_auto_overflowing_container (line 1736) | @Test
    method createNode (line 1793) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGMinMaxDimensionTest.java
  class YGMinMaxDimensionTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_max_width (line 30) | @Test
    method test_max_height (line 70) | @Test
    method test_min_height (line 111) | @Test
    method test_min_width (line 166) | @Test
    method test_justify_content_min_max (line 222) | @Test
    method test_align_items_min_max (line 264) | @Test
    method test_justify_content_overflow_min_max (line 306) | @Test
    method test_flex_grow_to_min (line 377) | @Test
    method test_flex_grow_in_at_most_container (line 432) | @Test
    method test_flex_grow_child (line 488) | @Test
    method test_flex_grow_within_constrained_min_max_column (line 528) | @Test
    method test_flex_grow_within_max_width (line 581) | @Test
    method test_flex_grow_within_constrained_max_width (line 636) | @Test
    method test_flex_root_ignored (line 691) | @Test
    method test_flex_grow_root_minimized (line 747) | @Test
    method test_flex_grow_height_maximized (line 818) | @Test
    method test_flex_grow_within_constrained_min_row (line 888) | @Test
    method test_flex_grow_within_constrained_min_column (line 942) | @Test
    method test_flex_grow_within_constrained_max_row (line 994) | @Test
    method test_flex_grow_within_constrained_max_column (line 1063) | @Test
    method test_child_min_max_width_flexing (line 1117) | @Test
    method test_min_width_overrides_width (line 1175) | @Test
    method test_max_width_overrides_width (line 1200) | @Test
    method test_min_height_overrides_height (line 1225) | @Test
    method test_max_height_overrides_height (line 1250) | @Test
    method test_min_max_percent_no_width_height (line 1275) | @Test
    method createNode (line 1318) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGPaddingTest.java
  class YGPaddingTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_padding_no_size (line 30) | @Test
    method test_padding_container_match_child (line 54) | @Test
    method test_padding_flex_child (line 93) | @Test
    method test_padding_stretch_child (line 134) | @Test
    method test_padding_center_child (line 174) | @Test
    method test_child_with_padding_align_end (line 219) | @Test
    method test_physical_and_relative_edge_defined (line 262) | @Test
    method createNode (line 304) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGPercentageTest.java
  class YGPercentageTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_percentage_width_height (line 30) | @Test
    method test_percentage_position_left_top (line 71) | @Test
    method test_percentage_position_bottom_right (line 114) | @Test
    method test_percentage_flex_basis (line 157) | @Test
    method test_percentage_flex_basis_cross (line 213) | @Test
    method test_percentage_flex_basis_cross_min_height (line 268) | @Test
    method test_percentage_flex_basis_main_max_height (line 324) | @Test
    method test_percentage_flex_basis_cross_max_height (line 382) | @Test
    method test_percentage_flex_basis_main_max_width (line 439) | @Test
    method test_percentage_flex_basis_cross_max_width (line 497) | @Test
    method test_percentage_flex_basis_main_min_width (line 554) | @Test
    method test_percentage_flex_basis_cross_min_width (line 612) | @Test
    method test_percentage_multiple_nested_with_padding_margin_and_percentage_values (line 669) | @Test
    method test_percentage_margin_should_calculate_based_only_on_width (line 760) | @Test
    method test_percentage_padding_should_calculate_based_only_on_width (line 815) | @Test
    method test_percentage_absolute_position (line 870) | @Test
    method test_percentage_width_height_undefined_parent_size (line 913) | @Test
    method test_percent_within_flex_grow (line 951) | @Test
    method test_percentage_container_in_wrapping_container (line 1033) | @Test
    method test_percent_absolute_position (line 1119) | @Test
    method test_percent_of_minmax_main (line 1190) | @Test
    method test_percent_of_min_main (line 1232) | @Test
    method test_percent_of_min_main_multiple (line 1274) | @Test
    method test_percent_of_max_main (line 1346) | @Test
    method test_percent_of_minmax_cross_stretched (line 1388) | @Test
    method test_percent_absolute_of_minmax_cross_stretched (line 1429) | @Test
    method test_percent_of_minmax_cross_unstretched (line 1471) | @Test
    method test_percent_of_min_cross_unstretched (line 1513) | @Test
    method test_percent_of_max_cross_unstretched (line 1555) | @Test
    method createNode (line 1596) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGRoundingTest.java
  class YGRoundingTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_rounding_flex_basis_flex_grow_row_width_of_100 (line 30) | @Test
    method test_rounding_flex_basis_flex_grow_row_prime_number_width (line 98) | @Test
    method test_rounding_flex_basis_flex_shrink_row (line 194) | @Test
    method test_rounding_flex_basis_overrides_main_size (line 263) | @Test
    method test_rounding_total_fractial (line 334) | @Test
    method test_rounding_total_fractial_nested (line 405) | @Test
    method test_rounding_fractial_input_1 (line 510) | @Test
    method test_rounding_fractial_input_2 (line 581) | @Test
    method test_rounding_fractial_input_3 (line 652) | @Test
    method test_rounding_fractial_input_4 (line 724) | @Test
    method test_rounding_inner_node_controversy_horizontal (line 796) | @Test
    method test_rounding_inner_node_controversy_vertical (line 881) | @Test
    method test_rounding_inner_node_controversy_combined (line 965) | @Test
    method createNode (line 1096) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGSizeOverflowTest.java
  class YGSizeOverflowTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_nested_overflowing_child (line 30) | @Test
    method test_nested_overflowing_child_in_constraint_parent (line 83) | @Test
    method test_parent_wrap_child_size_overflowing_parent (line 138) | @Test
    method createNode (line 192) | private YogaNode createNode(YogaConfig config) {

FILE: java/tests/generated/com/facebook/yoga/YGStaticPositionTest.java
  class YGStaticPositionTest (line 21) | @RunWith(Parameterized.class)
    method nodeFactories (line 23) | @Parameterized.Parameters(name = "{0}")
    method test_static_position_insets_have_no_effect_left_top (line 30) | @Test
    method test_static_position_insets_have_no_effect_right_bottom (line 71) | @Test
    method test_static_position_absolute_child_insets_relative_to_positioned_ancestor (line 112) | @Test
    method test_static_position_absolute_child_insets_relative_to_positioned_ancestor_row_reverse (line 185) | @Test
    method test_column_reverse_static_position_absolute_child_insets_relative_to_positioned_ancestor_row_reverse (line 258) | @Test
    method test_static_position_absolute_child_insets_relative_to_positioned_ancestor_row (line 332) | @Test
    method test_column_reverse_static_position_absolute_child_insets_relative_to_positioned_ancestor_row (line 405) | @Test
    method test_static_position_absolute_child_insets_relative_to_positioned_ancestor_column_reverse (line 479) | @Test
    method test_column_reverse_static_position_absolute_child_insets_relative_to_positioned_ancestor_column_reverse (line 552) | @Test
    method test_static_position_absolute_child_insets_relative_to_positioned_ancestor_deep (line 626) | @Test
    method test_static_position_absolute_child_width_percentage (line 750) | @Test
    method test_static_position_relative_child_width_percentage (line 820) | @Test
    method test_static_position_static_child_width_percentage (line 889) | @Test
    method test_static_position_absolute_child_height_percentage (line 959) | @Test
    method test_static_position_relative_child_height_percentage (line 1029) | @Test
    method test_static_position_static_child_height_percentage (line 1098) | @Test
    method test_static_position_absolute_child_left_percentage (line 1168) | @Test
    method test_static_position_relative_child_left_percentage (line 1239) | @Test
    method test_static_position_static_child_left_percentage (line 1309) | @Test
    method test_static_position_absolute_child_right_percentage (line 1380) | @Test
    method test_static_position_relative_child_right_percentage (line 1451) | @Test
    method test_static_position_static_child_right_percentage (line 1521) | @Test
    method test_static_position_absolute_child_top_percentage (line 1592) | @Test
    method test_static_position_relative_child_top_percentage (line 1663) | @Test
    method test_static_position_static_child_top_percentage (line 1733) | @Test
    method test_static_position_absolute_child_bottom_percentage (line 1804) | @Test
    method test_static_position_relative_child_bottom_percentage (line 1875) | @Test
    method test_static_position_static_child_bottom_percentage (line 1945) | @Test
    method test_static_position_absolute_child_margin_percentage (line 2016) | @Test
    method test_static_position_relative_child_margin_percentage (line 2087) | @Test
    method test_static_position_static_child_margin_percentage (line 2157) | @Test
    method test_static_position_absolute_child_padding_percentage (line 2228) | @Test
    method test_static_position_relative_child_padding_percentage (line 2299) | @Test
    method test_static_position_static_child_padding_percentage (line 2369) | @Test
    method test_static_position_absolute_child_border_percentage (line 2440) | @Test
    method test_static_position_relative_child_border_percentage (line 2510) | @Test
    method test_static_position_static_child_border_percentage (line 2579) | @Test
    method test_static_position_absolute_child_containing_block_padding_box (line 2649) | @Test
    method test_static_position_relative_child_containing_block_padding_box (line 2720) | @Test
    method test_static_position_static_child_containing_block_padding_box (line 2790) | @Test
    method test_static_position_absolute_child_containing_block_content_box (line 2861) | @Test
    method test_static_position_relative_child_containing_block_content_box (line 2916) | @Test
    method test_static_position_static_child_containing_block_content_box (line 2970) | @Test
    method test_static_position_containing_block_padding_and_border (line 3025) | @Test
    method test_static_position_amalgamation (line 3103) | @Test
    method test_static_position_no_position_amalgamation (line 3211) | @Test
    method test_static_position_zero_for_inset_amalgamation (line 3317) | @Test
    method test_static_position_start_inset_amalgamation (line 3424) | @Test
    method test_static_position_end_inset_amalgamation (line 3531) | @Test
    method test_static_position_row_reverse_amalgamation (line 3638) | @Test
    method test_static_position_column_reverse_amalgamation (line 3767) | @Test
    method test_static_position_justify_flex_start_amalgamation (line 3896) | @Test
    method test_static_position_justify_flex_start_position_set_amalgamation (line 4130) | @Test
    method test_static_position_no_definite_size_amalgamation (line 4365) | @Test
    method test_static_position_both_insets_set_amalgamation (line 4493) | @Test
    method test_static_position_justify_center_amalgamation (line 4622) | @Test
    method test_static_position_justify_flex_end_amalgamation (line 4857) | @Test
    method test_static_position_align_flex_start_amalgamation (line 5092) | @Test
    method test_static_position_align_center_amalgamation (line 5327) | @Test
    method test_static_position_align_flex_end_amalgamation (line 5562) | @Test
    method test_static_position_static_root (line 5797) | @Test
    method test_static_position_absolute_child_multiple (line 5854) | @Test
    method createNode (line 5989) | private YogaNode createNode(YogaConfig config) {

FILE: javascript/just.config.cjs
  function recursiveReplace (line 91) | function recursiveReplace(obj, pattern, replacement) {
  function babelTransformTask (line 101) | function babelTransformTask(opts) {
  function runBenchTask (line 123) | function runBenchTask() {
  function installEmsdkTask (line 153) | function installEmsdkTask() {
  function isEmsdkReadyAndActivated (line 179) | async function isEmsdkReadyAndActivated() {
  function emcmakeGenerateTask (line 205) | function emcmakeGenerateTask() {
  function cmakeBuildTask (line 225) | function cmakeBuildTask(opts) {
  function clangFormatTask (line 241) | function clangFormatTask(opts) {
  function spawnShell (line 255) | function spawnShell(cmd, args, opts) {

FILE: javascript/src/generated/YGEnums.ts
  type Align (line 10) | enum Align {
  type BoxSizing (line 24) | enum BoxSizing {
  type Dimension (line 29) | enum Dimension {
  type Direction (line 34) | enum Direction {
  type Display (line 40) | enum Display {
  type Edge (line 47) | enum Edge {
  type Errata (line 59) | enum Errata {
  type ExperimentalFeature (line 68) | enum ExperimentalFeature {
  type FlexDirection (line 73) | enum FlexDirection {
  type GridTrackType (line 80) | enum GridTrackType {
  type Gutter (line 88) | enum Gutter {
  type Justify (line 94) | enum Justify {
  type LogLevel (line 107) | enum LogLevel {
  type MeasureMode (line 116) | enum MeasureMode {
  type NodeType (line 122) | enum NodeType {
  type Overflow (line 127) | enum Overflow {
  type PositionType (line 133) | enum PositionType {
  type Unit (line 139) | enum Unit {
  type Wrap (line 149) | enum Wrap {

FILE: javascript/src/load.ts
  function loadYoga (line 22) | async function loadYoga() {

FILE: javascript/src/wasm_bridge.c
  function writeYGValue (line 16) | static void writeYGValue(YGValue v) {
  function EMSCRIPTEN_KEEPALIVE (line 22) | EMSCRIPTEN_KEEPALIVE float* jswrap_YGValueBuffer(void) {
  function EMSCRIPTEN_KEEPALIVE (line 28) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetWidth(YGNodeConstRef node) {
  function EMSCRIPTEN_KEEPALIVE (line 32) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetHeight(YGNodeConstRef nod...
  function EMSCRIPTEN_KEEPALIVE (line 36) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetPosition(
  function EMSCRIPTEN_KEEPALIVE (line 42) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetMargin(
  function EMSCRIPTEN_KEEPALIVE (line 48) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetPadding(
  function EMSCRIPTEN_KEEPALIVE (line 54) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetFlexBasis(YGNodeConstRef ...
  function EMSCRIPTEN_KEEPALIVE (line 58) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetMinWidth(YGNodeConstRef n...
  function EMSCRIPTEN_KEEPALIVE (line 62) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetMinHeight(YGNodeConstRef ...
  function EMSCRIPTEN_KEEPALIVE (line 66) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetMaxWidth(YGNodeConstRef n...
  function EMSCRIPTEN_KEEPALIVE (line 70) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetMaxHeight(YGNodeConstRef ...
  function EMSCRIPTEN_KEEPALIVE (line 74) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeStyleGetGap(
  function YGSize (line 115) | static YGSize globalMeasureFunc(
  function EMSCRIPTEN_KEEPALIVE (line 129) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeSetMeasureFunc(YGNodeRef node) {
  function EMSCRIPTEN_KEEPALIVE (line 133) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeUnsetMeasureFunc(YGNodeRef node) {
  function globalDirtiedFunc (line 145) | static void globalDirtiedFunc(YGNodeConstRef nodeRef) {
  function EMSCRIPTEN_KEEPALIVE (line 149) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeSetDirtiedFunc(YGNodeRef node) {
  function EMSCRIPTEN_KEEPALIVE (line 153) | EMSCRIPTEN_KEEPALIVE void jswrap_YGNodeUnsetDirtiedFunc(YGNodeRef node) {

FILE: javascript/src/wrapAssembly.ts
  type Layout (line 31) | type Layout = {
  type Size (line 40) | type Size = {
  type Value (line 45) | type Value = {
  type Config (line 50) | type Config = {
  type DirtiedFunction (line 63) | type DirtiedFunction = (node: Node) => void;
  type MeasureFunction (line 65) | type MeasureFunction = (
  type Node (line 72) | type Node = {
  type Yoga (line 260) | type Yoga = {
  function wrapAssembly (line 272) | function wrapAssembly(lib: any): Yoga {

FILE: javascript/tests/Benchmarks/YGBenchmark.test.ts
  constant ITERATIONS (line 13) | const ITERATIONS = 2000;

FILE: javascript/tests/bin/run-bench.ts
  constant WARMUP_ITERATIONS (line 13) | const WARMUP_ITERATIONS = 3;
  constant BENCHMARK_ITERATIONS (line 14) | const BENCHMARK_ITERATIONS = 10;

FILE: javascript/tests/tools/MeasureCounter.ts
  type MeasureCounter (line 13) | type MeasureCounter = {
  function getMeasureCounter (line 18) | function getMeasureCounter(
  function getMeasureCounterMax (line 40) | function getMeasureCounterMax(): MeasureCounter {
  function getMeasureCounterMin (line 51) | function getMeasureCounterMin(): MeasureCounter {

FILE: javascript/tests/tools/utils.ts
  type MeasureContext (line 10) | type MeasureContext = {
  function instrinsicSizeMeasureFunc (line 15) | function instrinsicSizeMeasureFunc(

FILE: lib/jni/real/jni.h
  type jboolean (line 31) | typedef uint8_t  jboolean;
  type jbyte (line 32) | typedef int8_t   jbyte;
  type jchar (line 33) | typedef uint16_t jchar;
  type jshort (line 34) | typedef int16_t  jshort;
  type jint (line 35) | typedef int32_t  jint;
  type jlong (line 36) | typedef int64_t  jlong;
  type jfloat (line 37) | typedef float    jfloat;
  type jdouble (line 38) | typedef double   jdouble;
  type jint (line 41) | typedef jint     jsize;
  function class (line 47) | class _jobject {}
  function class (line 48) | class _jclass : public _jobject {}
  function class (line 49) | class _jstring : public _jobject {}
  function class (line 50) | class _jarray : public _jobject {}
  function class (line 51) | class _jobjectArray : public _jarray {}
  function class (line 52) | class _jbooleanArray : public _jarray {}
  function class (line 53) | class _jbyteArray : public _jarray {}
  function class (line 54) | class _jcharArray : public _jarray {}
  function class (line 55) | class _jshortArray : public _jarray {}
  function class (line 56) | class _jintArray : public _jarray {}
  function class (line 57) | class _jlongArray : public _jarray {}
  function class (line 58) | class _jfloatArray : public _jarray {}
  function class (line 59) | class _jdoubleArray : public _jarray {}
  function class (line 60) | class _jthrowable : public _jobject {}
  type _jobject (line 62) | typedef _jobject*       jobject;
  type _jclass (line 63) | typedef _jclass*        jclass;
  type _jstring (line 64) | typedef _jstring*       jstring;
  type _jarray (line 65) | typedef _jarray*        jarray;
  type _jobjectArray (line 66) | typedef _jobjectArray*  jobjectArray;
  type _jbooleanArray (line 67) | typedef _jbooleanArray* jbooleanArray;
  type _jbyteArray (line 68) | typedef _jbyteArray*    jbyteArray;
  type _jcharArray (line 69) | typedef _jcharArray*    jcharArray;
  type _jshortArray (line 70) | typedef _jshortArray*   jshortArray;
  type _jintArray (line 71) | typedef _jintArray*     jintArray;
  type _jlongArray (line 72) | typedef _jlongArray*    jlongArray;
  type _jfloatArray (line 73) | typedef _jfloatArray*   jfloatArray;
  type _jdoubleArray (line 74) | typedef _jdoubleArray*  jdoubleArray;
  type _jthrowable (line 75) | typedef _jthrowable*    jthrowable;
  type _jobject (line 76) | typedef _jobject*       jweak;
  type jobject (line 85) | typedef jobject         jclass;
  type jobject (line 86) | typedef jobject         jstring;
  type jobject (line 87) | typedef jobject         jarray;
  type jarray (line 88) | typedef jarray          jobjectArray;
  type jarray (line 89) | typedef jarray          jbooleanArray;
  type jarray (line 90) | typedef jarray          jbyteArray;
  type jarray (line 91) | typedef jarray          jcharArray;
  type jarray (line 92) | typedef jarray          jshortArray;
  type jarray (line 93) | typedef jarray          jintArray;
  type jarray (line 94) | typedef jarray          jlongArray;
  type jarray (line 95) | typedef jarray          jfloatArray;
  type jarray (line 96) | typedef jarray          jdoubleArray;
  type jobject (line 97) | typedef jobject         jthrowable;
  type jobject (line 98) | typedef jobject         jweak;
  type _jfieldID (line 102) | struct _jfieldID
  type _jfieldID (line 103) | struct _jfieldID
  type _jmethodID (line 105) | struct _jmethodID
  type _jmethodID (line 106) | struct _jmethodID
  type JNIInvokeInterface (line 108) | struct JNIInvokeInterface
  type jvalue (line 110) | typedef union jvalue {
  type jobjectRefType (line 122) | typedef enum jobjectRefType {
  type JNINativeMethod (line 129) | typedef struct {
  type _JNIEnv (line 135) | struct _JNIEnv
  type _JavaVM (line 136) | struct _JavaVM
  type JNINativeInterface (line 137) | struct JNINativeInterface
  type _JNIEnv (line 140) | typedef _JNIEnv JNIEnv;
  type _JavaVM (line 141) | typedef _JavaVM JavaVM;
  type JNINativeInterface (line 143) | struct JNINativeInterface
  type JNIInvokeInterface (line 144) | struct JNIInvokeInterface
  type JNINativeInterface (line 150) | struct JNINativeInterface {
  type _JNIEnv (line 491) | struct _JNIEnv {
  type JNIInvokeInterface (line 1038) | struct JNIInvokeInterface {
  type _JavaVM (line 1053) | struct _JavaVM {
  type JavaVMAttachArgs (line 1070) | struct JavaVMAttachArgs {
  type JavaVMAttachArgs (line 1075) | typedef struct JavaVMAttachArgs JavaVMAttachArgs;
  type JavaVMOption (line 1081) | typedef struct JavaVMOption {
  type JavaVMInitArgs (line 1086) | typedef struct JavaVMInitArgs {

FILE: lib/nlohmann/json.hpp
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 247) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_END (line 258) | NLOHMANN_JSON_NAMESPACE_END
  type would_call_std_ (line 2814) | struct would_call_std_
  type value_t (line 2872) | enum class value_t : std::uint8_t
  function NLOHMANN_JSON_NAMESPACE_END (line 2937) | NLOHMANN_JSON_NAMESPACE_END
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 3030) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 3076) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 3267) | NLOHMANN_JSON_NAMESPACE_BEGIN
  class json_pointer (line 3416) | class json_pointer
  type ordered_map (line 3427) | struct ordered_map
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 3438) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 4230) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_END (line 4358) | NLOHMANN_JSON_NAMESPACE_END
  function NLOHMANN_JSON_NAMESPACE_END (line 4590) | NLOHMANN_JSON_NAMESPACE_END
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 4636) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 4644) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 4659) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 5174) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_END (line 5356) | NLOHMANN_JSON_NAMESPACE_END
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 5404) | NLOHMANN_JSON_NAMESPACE_BEGIN
  type adl_serializer (line 5833) | struct adl_serializer
    method from_json (line 5838) | static auto from_json(BasicJsonType && j, TargetType& val) noexcept(
    method from_json (line 5848) | static auto from_json(BasicJsonType && j) noexcept(
    method to_json (line 5858) | static auto to_json(BasicJsonType& j, TargetType && val) noexcept(
  function set_subtype (line 5939) | void set_subtype(subtype_type subtype_) noexcept
  function subtype_type (line 5947) | constexpr subtype_type subtype() const noexcept
  function has_subtype (line 5954) | constexpr bool has_subtype() const noexcept
  function clear_subtype (line 5961) | void clear_subtype() noexcept
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 6000) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 6172) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function json_sax_dom_parser (line 6814) | explicit json_sax_dom_parser(BasicJsonType& r, const bool allow_exceptio...
  function json_sax_dom_parser (line 6819) | json_sax_dom_parser(const json_sax_dom_parser&) = delete;
  function json_sax_dom_parser (line 6820) | json_sax_dom_parser(json_sax_dom_parser&&) = default;
  function null (line 6825) | bool null()
  function boolean (line 6831) | bool boolean(bool val)
  function number_integer (line 6837) | bool number_integer(number_integer_t val)
  function number_unsigned (line 6843) | bool number_unsigned(number_unsigned_t val)
  function number_float (line 6849) | bool number_float(number_float_t val, const string_t& /*unused*/)
  function string (line 6855) | bool string(string_t& val)
  function binary (line 6861) | bool binary(binary_t& val)
  function start_object (line 6867) | bool start_object(std::size_t len)
  function key (line 6879) | bool key(string_t& val)
  function end_object (line 6889) | bool end_object()
  function start_array (line 6899) | bool start_array(std::size_t len)
  function end_array (line 6911) | bool end_array()
  function parse_error (line 6922) | bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,
  function is_errored (line 6934) | constexpr bool is_errored() const
  class json_sax_dom_callback_parser (line 6983) | class json_sax_dom_callback_parser
    method json_sax_dom_callback_parser (line 6994) | json_sax_dom_callback_parser(BasicJsonType& r,
    method json_sax_dom_callback_parser (line 7003) | json_sax_dom_callback_parser(const json_sax_dom_callback_parser&) = de...
    method json_sax_dom_callback_parser (line 7004) | json_sax_dom_callback_parser(json_sax_dom_callback_parser&&) = default;
    method json_sax_dom_callback_parser (line 7005) | json_sax_dom_callback_parser& operator=(const json_sax_dom_callback_pa...
    method json_sax_dom_callback_parser (line 7006) | json_sax_dom_callback_parser& operator=(json_sax_dom_callback_parser&&...
    method null (line 7009) | bool null()
    method boolean (line 7015) | bool boolean(bool val)
    method number_integer (line 7021) | bool number_integer(number_integer_t val)
    method number_unsigned (line 7027) | bool number_unsigned(number_unsigned_t val)
    method number_float (line 7033) | bool number_float(number_float_t val, const string_t& /*unused*/)
    method string (line 7039) | bool string(string_t& val)
    method binary (line 7045) | bool binary(binary_t& val)
    method start_object (line 7051) | bool start_object(std::size_t len)
    method key (line 7069) | bool key(string_t& val)
    method end_object (line 7086) | bool end_object()
    method start_array (line 7122) | bool start_array(std::size_t len)
    method end_array (line 7139) | bool end_array()
    method parse_error (line 7172) | bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/,
    method is_errored (line 7184) | constexpr bool is_errored() const
    method handle_value (line 7206) | std::pair<bool, BasicJsonType*> handle_value(Value&& v, const bool ski...
  class json_sax_acceptor (line 7290) | class json_sax_acceptor
    method null (line 7299) | bool null()
    method boolean (line 7304) | bool boolean(bool /*unused*/)
    method number_integer (line 7309) | bool number_integer(number_integer_t /*unused*/)
    method number_unsigned (line 7314) | bool number_unsigned(number_unsigned_t /*unused*/)
    method number_float (line 7319) | bool number_float(number_float_t /*unused*/, const string_t& /*unused*/)
    method string (line 7324) | bool string(string_t& /*unused*/)
    method binary (line 7329) | bool binary(binary_t& /*unused*/)
    method start_object (line 7334) | bool start_object(std::size_t /*unused*/ = static_cast<std::size_t>(-1))
    method key (line 7339) | bool key(string_t& /*unused*/)
    method end_object (line 7344) | bool end_object()
    method start_array (line 7349) | bool start_array(std::size_t /*unused*/ = static_cast<std::size_t>(-1))
    method end_array (line 7354) | bool end_array()
    method parse_error (line 7359) | bool parse_error(std::size_t /*unused*/, const std::string& /*unused*/...
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 7398) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function reset (line 8693) | void reset() noexcept
  function char_int_type (line 8710) | char_int_type get()
  function unget (line 8747) | void unget()
  function add (line 8774) | void add(char_int_type c)
  function number_unsigned_t (line 8791) | constexpr number_unsigned_t get_number_unsigned() const noexcept
  function number_float_t (line 8797) | constexpr number_float_t get_number_float() const noexcept
  function string_t (line 8803) | string_t& get_string()
  function position_t (line 8813) | constexpr position_t get_position() const noexcept
  function get_token_string (line 8821) | std::string get_token_string() const
  function JSON_HEDLEY_RETURNS_NON_NULL (line 8845) | JSON_HEDLEY_RETURNS_NON_NULL
  function skip_bom (line 8859) | bool skip_bom()
  function skip_whitespace (line 8873) | void skip_whitespace()
  function token_type (line 8882) | token_type scan()
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 9031) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_END (line 9171) | NLOHMANN_JSON_NAMESPACE_END
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 12196) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 12720) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_END (line 12836) | NLOHMANN_JSON_NAMESPACE_END
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 12891) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function pointer (line 13193) | pointer operator->() const
  function iter_impl (line 13235) | iter_impl operator++(int)& // NOLINT(cert-dcl21-cpp)
  function iter_impl (line 13246) | iter_impl& operator++()
  function iter_impl (line 13286) | iter_impl operator--(int)& // NOLINT(cert-dcl21-cpp)
  function iter_impl (line 13297) | iter_impl& operator--()
  function iter_impl (line 13445) | iter_impl& operator+=(difference_type i)
  function iter_impl (line 13482) | iter_impl& operator-=(difference_type i)
  function iter_impl (line 13491) | iter_impl operator+(difference_type i) const
  function friend (line 13502) | friend iter_impl operator+(difference_type i, const iter_impl& it)
  function iter_impl (line 13513) | iter_impl operator-(difference_type i) const
  function difference_type (line 13524) | difference_type operator-(const iter_impl& other) const
  function reference (line 13553) | reference operator[](difference_type n) const
  function reference (line 13607) | reference value() const
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 13642) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 13775) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 13836) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_BASIC_JSON_TPL_DECLARATION (line 13856) | NLOHMANN_BASIC_JSON_TPL_DECLARATION
  function json_pointer (line 13868) | explicit json_pointer(const string_t& s = "")
  function string_t (line 13874) | string_t to_string() const
  function friend (line 13895) | friend std::ostream& operator<<(std::ostream& o, const json_pointer& ptr)
  function json_pointer (line 13904) | json_pointer& operator/=(const json_pointer& ptr)
  function json_pointer (line 13914) | json_pointer& operator/=(string_t token)
  function json_pointer (line 13922) | json_pointer& operator/=(std::size_t array_idx)
  function friend (line 13929) | friend json_pointer operator/(const json_pointer& lhs,
  function friend (line 13937) | friend json_pointer operator/(const json_pointer& lhs, string_t token) /...
  function friend (line 13944) | friend json_pointer operator/(const json_pointer& lhs, std::size_t array...
  function json_pointer (line 13951) | json_pointer parent_pointer() const
  function pop_back (line 13965) | void pop_back()
  function string_t (line 13977) | const string_t& back() const
  function push_back (line 13989) | void push_back(const string_t& token)
  function push_back (line 13996) | void push_back(string_t&& token)
  function empty (line 14003) | bool empty() const noexcept
  function BasicJsonType (line 14080) | BasicJsonType& get_and_create(BasicJsonType& j) const
  function BasicJsonType (line 14160) | BasicJsonType& get_unchecked(BasicJsonType* ptr) const
  function BasicJsonType (line 14228) | BasicJsonType& get_checked(BasicJsonType* ptr) const
  function BasicJsonType (line 14286) | const BasicJsonType& get_unchecked(const BasicJsonType* ptr) const
  function BasicJsonType (line 14335) | const BasicJsonType& get_checked(const BasicJsonType* ptr) const
  function contains (line 14384) | bool contains(const BasicJsonType* ptr) const
  function split (line 14472) | static std::vector<string_t> split(const string_t& reference_string)
  function BasicJsonType (line 14612) | static BasicJsonType
  function convert (line 14641) | json_pointer<string_t> convert() const&
  function convert (line 14648) | json_pointer<string_t> convert()&&
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 14815) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 14940) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_END (line 15062) | NLOHMANN_JSON_NAMESPACE_END
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 16929) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function NLOHMANN_JSON_NAMESPACE_END (line 18026) | NLOHMANN_JSON_NAMESPACE_END
  function hex_bytes (line 18686) | static std::string hex_bytes(std::uint8_t byte)
  function is_negative_number (line 18697) | bool is_negative_number(NumberType x)
  function is_negative_number (line 18703) | bool is_negative_number(NumberType /*unused*/)
  function dump_integer (line 18723) | void dump_integer(NumberType x)
  function dump_float (line 18808) | void dump_float(number_float_t x)
  function dump_float (line 18829) | void dump_float(number_float_t x, std::true_type /*is_ieee_single_or_dou...
  function dump_float (line 18837) | void dump_float(number_float_t x, std::false_type /*is_ieee_single_or_do...
  function decode (line 18909) | static std::uint8_t decode(std::uint8_t& state, std::uint32_t& codep, co...
  function number_unsigned_t (line 18949) | number_unsigned_t remove_sign(number_unsigned_t x)
  function number_unsigned_t (line 18964) | inline number_unsigned_t remove_sign(number_integer_t x) noexcept
  function ordered_map (line 19051) | ordered_map() noexcept(noexcept(Container())) : Container{} {}
  function ordered_map (line 19052) | explicit ordered_map(const Allocator& alloc) noexcept(noexcept(Container...
  function ordered_map (line 19054) | ordered_map(It first, It last, const Allocator& alloc = Allocator())
  function ordered_map (line 19056) | ordered_map(std::initializer_list<value_type> init, const Allocator& all...
  function emplace (line 19059) | std::pair<iterator, bool> emplace(const key_type& key, T&& t)
  function emplace (line 19074) | std::pair<iterator, bool> emplace(KeyType && key, T && t)
  function T (line 19087) | T& operator[](const key_type& key)
  function T (line 19094) | T & operator[](KeyType && key)
  function T (line 19099) | const T& operator[](const key_type& key) const
  function T (line 19106) | const T & operator[](KeyType && key) const
  function T (line 19111) | T& at(const key_type& key)
  function T (line 19126) | T & at(KeyType && key) // NOLINT(cppcoreguidelines-missing-std-forward)
  function T (line 19139) | const T& at(const key_type& key) const
  function T (line 19154) | const T & at(KeyType && key) const // NOLINT(cppcoreguidelines-missing-s...
  function size_type (line 19167) | size_type erase(const key_type& key)
  function size_type (line 19188) | size_type erase(KeyType && key) // NOLINT(cppcoreguidelines-missing-std-...
  function iterator (line 19207) | iterator erase(iterator pos)
  function iterator (line 19212) | iterator erase(iterator first, iterator last)
  function size_type (line 19265) | size_type count(const key_type& key) const
  function size_type (line 19279) | size_type count(KeyType && key) const // NOLINT(cppcoreguidelines-missin...
  function iterator (line 19291) | iterator find(const key_type& key)
  function iterator (line 19305) | iterator find(KeyType && key) // NOLINT(cppcoreguidelines-missing-std-fo...
  function const_iterator (line 19317) | const_iterator find(const key_type& key) const
  function insert (line 19329) | std::pair<iterator, bool> insert( value_type&& value )
  function insert (line 19334) | std::pair<iterator, bool> insert( const value_type& value )
  function insert (line 19352) | void insert(InputIt first, InputIt last)
  function NLOHMANN_JSON_NAMESPACE_BEGIN (line 19379) | NLOHMANN_JSON_NAMESPACE_BEGIN
  function set_parents (line 20006) | void set_parents()
  function iterator (line 20043) | iterator set_parents(iterator it, typename iterator::difference_type cou...
  function reference (line 20056) | reference set_parent(reference j, std::size_t old_capacity = static_cast...
  function basic_json (line 20118) | basic_json(const value_t v)
  function basic_json (line 20126) | basic_json(std::nullptr_t = nullptr) noexcept // NOLINT(bugprone-excepti...
  function basic_json (line 20138) | basic_json(CompatibleType && val) noexcept(noexcept( // NOLINT(bugprone-...
  function basic_json (line 20152) | basic_json(const BasicJsonType& val)
  function basic_json (line 20205) | basic_json(initializer_list_t init,
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 20263) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 20274) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 20285) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 20296) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 20307) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 20315) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function basic_json (line 20323) | basic_json(size_type cnt, const basic_json& val):
  function basic_json (line 20335) | basic_json(InputIT first, InputIT last)
  function basic_json (line 20444) | basic_json(const JsonRef& ref) : basic_json(ref.moved_or_copied()) {}
  function basic_json (line 20448) | basic_json(const basic_json& other)
  function basic_json (line 20517) | basic_json(basic_json&& other) noexcept
  function basic_json (line 20534) | basic_json& operator=(basic_json other) noexcept (
  function value_t (line 20597) | constexpr value_t type() const noexcept
  function is_primitive (line 20604) | constexpr bool is_primitive() const noexcept
  function is_structured (line 20611) | constexpr bool is_structured() const noexcept
  function is_null (line 20618) | constexpr bool is_null() const noexcept
  function is_boolean (line 20625) | constexpr bool is_boolean() const noexcept
  function is_number (line 20632) | constexpr bool is_number() const noexcept
  function is_number_integer (line 20639) | constexpr bool is_number_integer() const noexcept
  function is_number_unsigned (line 20646) | constexpr bool is_number_unsigned() const noexcept
  function is_number_float (line 20653) | constexpr bool is_number_float() const noexcept
  function is_object (line 20660) | constexpr bool is_object() const noexcept
  function is_array (line 20667) | constexpr bool is_array() const noexcept
  function is_string (line 20674) | constexpr bool is_string() const noexcept
  function is_binary (line 20681) | constexpr bool is_binary() const noexcept
  function is_discarded (line 20688) | constexpr bool is_discarded() const noexcept
  function object_t (line 20719) | object_t* get_impl_ptr(object_t* /*unused*/) noexcept
  function object_t (line 20725) | constexpr const object_t* get_impl_ptr(const object_t* /*unused*/) const...
  function array_t (line 20731) | array_t* get_impl_ptr(array_t* /*unused*/) noexcept
  function array_t (line 20737) | constexpr const array_t* get_impl_ptr(const array_t* /*unused*/) const n...
  function string_t (line 20743) | string_t* get_impl_ptr(string_t* /*unused*/) noexcept
  function string_t (line 20749) | constexpr const string_t* get_impl_ptr(const string_t* /*unused*/) const...
  function boolean_t (line 20755) | boolean_t* get_impl_ptr(boolean_t* /*unused*/) noexcept
  function boolean_t (line 20761) | constexpr const boolean_t* get_impl_ptr(const boolean_t* /*unused*/) con...
  function number_integer_t (line 20767) | number_integer_t* get_impl_ptr(number_integer_t* /*unused*/) noexcept
  function number_integer_t (line 20773) | constexpr const number_integer_t* get_impl_ptr(const number_integer_t* /...
  function number_unsigned_t (line 20779) | number_unsigned_t* get_impl_ptr(number_unsigned_t* /*unused*/) noexcept
  function number_unsigned_t (line 20785) | constexpr const number_unsigned_t* get_impl_ptr(const number_unsigned_t*...
  function number_float_t (line 20791) | number_float_t* get_impl_ptr(number_float_t* /*unused*/) noexcept
  function number_float_t (line 20797) | constexpr const number_float_t* get_impl_ptr(const number_float_t* /*unu...
  function binary_t (line 20803) | binary_t* get_impl_ptr(binary_t* /*unused*/) noexcept
  function binary_t (line 20809) | constexpr const binary_t* get_impl_ptr(const binary_t* /*unused*/) const...
  function ReferenceType (line 20826) | static ReferenceType get_ref_impl(ThisType& obj)
  function get_ptr (line 20859) | constexpr auto get_ptr() const noexcept -> decltype(std::declval<const b...
  function ValueType (line 20951) | ValueType get_impl(detail::priority_tag<1> /*unused*/) const noexcept(no...
  function BasicJsonType (line 20976) | BasicJsonType get_impl(detail::priority_tag<2> /*unused*/) const
  function basic_json (line 20999) | basic_json get_impl(detail::priority_tag<3> /*unused*/) const
  function get_impl (line 21012) | constexpr auto get_impl(detail::priority_tag<4> /*unused*/) const noexcept
  function get (line 21088) | auto get() noexcept -> decltype(std::declval<basic_json_t&>().template g...
  function ValueType (line 21101) | ValueType & get_to(ValueType& v) const noexcept(noexcept(
  function ValueType (line 21114) | ValueType & get_to(ValueType& v) const
  function Array (line 21125) | Array get_to(T (&v)[N]) const // NOLINT(cppcoreguidelines-avoid-c-arrays...
  function ReferenceType (line 21137) | ReferenceType get_ref()
  function ReferenceType (line 21148) | ReferenceType get_ref() const
  function binary_t (line 21207) | binary_t& get_binary()
  function binary_t (line 21219) | const binary_t& get_binary() const
  function reference (line 21241) | reference at(size_type idx)
  function const_reference (line 21264) | const_reference at(size_type idx) const
  function reference (line 21287) | reference at(const typename object_t::key_type& key)
  function reference (line 21307) | reference at(KeyType && key)
  function const_reference (line 21325) | const_reference at(const typename object_t::key_type& key) const
  function const_reference (line 21345) | const_reference at(KeyType && key) const
  function reference (line 21363) | reference operator[](size_type idx)
  function const_reference (line 21409) | const_reference operator[](size_type idx) const
  function reference (line 21422) | reference operator[](typename object_t::key_type key)
  function const_reference (line 21444) | const_reference operator[](const typename object_t::key_type& key) const
  function reference (line 21460) | reference operator[](T* key)
  function const_reference (line 21466) | const_reference operator[](T* key) const
  function reference (line 21475) | reference operator[](KeyType && key)
  function const_reference (line 21499) | const_reference operator[](KeyType && key) const
  class ValueType (line 21525) | class ValueType
  function ReturnType (line 21554) | ReturnType value(const typename object_t::key_type& key, ValueType && de...
  function ValueType (line 21580) | ValueType value(KeyType && key, const ValueType& default_value) const
  function ReturnType (line 21607) | ReturnType value(KeyType && key, ValueType && default_value) const
  function ValueType (line 21630) | ValueType value(const json_pointer& ptr, const ValueType& default_value)...
  function ReturnType (line 21655) | ReturnType value(const json_pointer& ptr, ValueType && default_value) const
  function ValueType (line 21679) | ValueType value(const ::nlohmann::json_pointer<BasicJsonType>& ptr, cons...
  function ReturnType (line 21690) | ReturnType value(const ::nlohmann::json_pointer<BasicJsonType>& ptr, Val...
  function reference (line 21697) | reference front()
  function const_reference (line 21704) | const_reference front() const
  function reference (line 21711) | reference back()
  function const_reference (line 21720) | const_reference back() const
  function IteratorType (line 21732) | IteratorType erase(IteratorType pos)
  function IteratorType (line 21802) | IteratorType erase(IteratorType first, IteratorType last)
  function erase_internal (line 21870) | private:
  function size_type (line 21886) | size_type erase_internal(KeyType && key)
  function size_type (line 21918) | size_type erase(KeyType && key)
  function erase (line 21925) | void erase(const size_type idx)
  function iterator (line 21954) | iterator find(const typename object_t::key_type& key)
  function const_iterator (line 21968) | const_iterator find(const typename object_t::key_type& key) const
  function iterator (line 21984) | iterator find(KeyType && key)
  function const_iterator (line 22000) | const_iterator find(KeyType && key) const
  function size_type (line 22014) | size_type count(const typename object_t::key_type& key) const
  function size_type (line 22024) | size_type count(KeyType && key) const
  function contains (line 22032) | bool contains(const typename object_t::key_type& key) const
  function contains (line 22041) | bool contains(KeyType && key) const
  function contains (line 22048) | bool contains(const json_pointer& ptr) const
  function contains (line 22055) | bool contains(const typename ::nlohmann::json_pointer<BasicJsonType>& pt...
  function iterator (line 22071) | iterator begin() noexcept
  function const_iterator (line 22080) | const_iterator begin() const noexcept
  function const_iterator (line 22087) | const_iterator cbegin() const noexcept
  function iterator (line 22096) | iterator end() noexcept
  function const_iterator (line 22105) | const_iterator end() const noexcept
  function const_iterator (line 22112) | const_iterator cend() const noexcept
  function reverse_iterator (line 22121) | reverse_iterator rbegin() noexcept
  function const_reverse_iterator (line 22128) | const_reverse_iterator rbegin() const noexcept
  function reverse_iterator (line 22135) | reverse_iterator rend() noexcept
  function const_reverse_iterator (line 22142) | const_reverse_iterator rend() const noexcept
  function const_reverse_iterator (line 22149) | const_reverse_iterator crbegin() const noexcept
  function const_reverse_iterator (line 22156) | const_reverse_iterator crend() const noexcept
  function iterator_wrapper (line 22168) | static iteration_proxy<iterator> iterator_wrapper(reference ref) noexcept
  function iterator_wrapper (line 22179) | static iteration_proxy<const_iterator> iterator_wrapper(const_reference ...
  function items (line 22186) | iteration_proxy<iterator> items() noexcept
  function items (line 22193) | iteration_proxy<const_iterator> items() const noexcept
  function empty (line 22209) | bool empty() const noexcept
  function size_type (line 22248) | size_type size() const noexcept
  function size_type (line 22287) | size_type max_size() const noexcept
  function clear (line 22330) | void clear() noexcept
  function push_back (line 22391) | void push_back(basic_json&& val)
  function reference (line 22416) | reference operator+=(basic_json&& val)
  function push_back (line 22424) | void push_back(const basic_json& val)
  function reference (line 22448) | reference operator+=(const basic_json& val)
  function push_back (line 22456) | void push_back(const typename object_t::value_type& val)
  function reference (line 22479) | reference operator+=(const typename object_t::value_type& val)
  function push_back (line 22487) | void push_back(initializer_list_t init)
  function reference (line 22503) | reference operator+=(initializer_list_t init)
  function reference (line 22512) | reference emplace_back(Args&& ... args)
  function emplace (line 22537) | std::pair<iterator, bool> emplace(Args&& ... args)
  function iterator (line 22569) | iterator insert_iterator(const_iterator pos, Args&& ... args)
  function iterator (line 22588) | iterator insert(const_iterator pos, const basic_json& val)
  function iterator (line 22608) | iterator insert(const_iterator pos, basic_json&& val)
  function iterator (line 22615) | iterator insert(const_iterator pos, size_type cnt, const basic_json& val)
  function iterator (line 22635) | iterator insert(const_iterator pos, const_iterator first, const_iterator...
  function iterator (line 22666) | iterator insert(const_iterator pos, initializer_list_t ilist)
  function insert (line 22686) | void insert(const_iterator first, const_iterator last)
  function update (line 22711) | void update(const_reference j, bool merge_objects = false)
  function update (line 22718) | void update(const_iterator first, const_iterator last, bool merge_object...
  function swap (line 22765) | void swap(reference other) noexcept (
  function friend (line 22782) | friend void swap(reference left, reference right) noexcept (
  function swap (line 22794) | void swap(array_t& other) // NOLINT(bugprone-exception-escape,cppcoregui...
  function swap (line 22810) | void swap(object_t& other) // NOLINT(bugprone-exception-escape,cppcoregu...
  function swap (line 22826) | void swap(string_t& other) // NOLINT(bugprone-exception-escape,cppcoregu...
  function swap (line 22842) | void swap(binary_t& other) // NOLINT(bugprone-exception-escape,cppcoregu...
  function swap (line 22858) | void swap(typename binary_t::container_type& other) // NOLINT(bugprone-e...
  function else (line 22947) | else if(compares_unordered(lhs, rhs))\
  function compares_unordered (line 22976) | bool compares_unordered(const_reference rhs, bool inverse = false) const...
  function friend (line 23089) | friend bool operator==(const_reference lhs, const_reference rhs) noexcept
  function friend (line 23121) | friend bool operator!=(const_reference lhs, const_reference rhs) noexcept
  function friend (line 23178) | friend bool operator<=(const_reference lhs, const_reference rhs) noexcept
  function friend (line 23207) | friend bool operator>(const_reference lhs, const_reference rhs) noexcept
  function friend (line 23237) | friend bool operator>=(const_reference lhs, const_reference rhs) noexcept
  function friend (line 23278) | friend std::ostream& operator<<(std::ostream& o, const basic_json& j)
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23317) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23331) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function basic_json (line 23345) | static basic_json parse(detail::span_input_adapter&& i,
  function accept (line 23358) | static bool accept(InputType&& i,
  function accept (line 23367) | static bool accept(IteratorType first, IteratorType last,
  function accept (line 23375) | static bool accept(detail::span_input_adapter&& i,
  function sax_parse (line 23385) | static bool sax_parse(InputType&& i, SAX* sax,
  function sax_parse (line 23400) | static bool sax_parse(IteratorType first, IteratorType last, SAX* sax,
  function sax_parse (line 23419) | static bool sax_parse(detail::span_input_adapter&& i, SAX* sax,
  function JSON_HEDLEY_RETURNS_NON_NULL (line 23460) | JSON_HEDLEY_RETURNS_NON_NULL
  type data (line 23492) | struct data
    method data (line 23500) | data(const value_t v)
    method data (line 23505) | data(size_type cnt, const basic_json& val)
    method data (line 23511) | data() noexcept = default;
    method data (line 23512) | data(data&&) noexcept = default;
    method data (line 23513) | data(const data&) noexcept = delete;
    method data (line 23514) | data& operator=(data&&) noexcept = delete;
    method data (line 23515) | data& operator=(const data&) noexcept = delete;
  function to_cbor (line 23549) | static void to_cbor(const basic_json& j, detail::output_adapter<std::uin...
  function to_cbor (line 23556) | static void to_cbor(const basic_json& j, detail::output_adapter<char> o)
  function to_msgpack (line 23563) | static std::vector<std::uint8_t> to_msgpack(const basic_json& j)
  function to_msgpack (line 23572) | static void to_msgpack(const basic_json& j, detail::output_adapter<std::...
  function to_msgpack (line 23579) | static void to_msgpack(const basic_json& j, detail::output_adapter<char> o)
  function to_ubjson (line 23586) | static std::vector<std::uint8_t> to_ubjson(const basic_json& j,
  function to_ubjson (line 23597) | static void to_ubjson(const basic_json& j, detail::output_adapter<std::u...
  function to_ubjson (line 23605) | static void to_ubjson(const basic_json& j, detail::output_adapter<char> o,
  function to_bjdata (line 23613) | static std::vector<std::uint8_t> to_bjdata(const basic_json& j,
  function to_bjdata (line 23624) | static void to_bjdata(const basic_json& j, detail::output_adapter<std::u...
  function to_bjdata (line 23632) | static void to_bjdata(const basic_json& j, detail::output_adapter<char> o,
  function to_bson (line 23640) | static std::vector<std::uint8_t> to_bson(const basic_json& j)
  function to_bson (line 23649) | static void to_bson(const basic_json& j, detail::output_adapter<std::uin...
  function to_bson (line 23656) | static void to_bson(const basic_json& j, detail::output_adapter<char> o)
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23664) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23680) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function basic_json (line 23696) | static basic_json from_cbor(const T* ptr, std::size_t len,
  function basic_json (line 23706) | static basic_json from_cbor(detail::span_input_adapter&& i,
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23722) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23737) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function basic_json (line 23752) | static basic_json from_msgpack(const T* ptr, std::size_t len,
  function basic_json (line 23761) | static basic_json from_msgpack(detail::span_input_adapter&& i,
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23776) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23791) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function basic_json (line 23806) | static basic_json from_ubjson(const T* ptr, std::size_t len,
  function basic_json (line 23815) | static basic_json from_ubjson(detail::span_input_adapter&& i,
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23830) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23845) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23860) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 23875) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function basic_json (line 23890) | static basic_json from_bson(const T* ptr, std::size_t len,
  function basic_json (line 23899) | static basic_json from_bson(detail::span_input_adapter&& i,
  function reference (line 23921) | reference operator[](const json_pointer& ptr)
  function reference (line 23928) | reference operator[](const ::nlohmann::json_pointer<BasicJsonType>& ptr)
  function const_reference (line 23935) | const_reference operator[](const json_pointer& ptr) const
  function const_reference (line 23942) | const_reference operator[](const ::nlohmann::json_pointer<BasicJsonType>...
  function reference (line 23949) | reference at(const json_pointer& ptr)
  function reference (line 23956) | reference at(const ::nlohmann::json_pointer<BasicJsonType>& ptr)
  function const_reference (line 23963) | const_reference at(const json_pointer& ptr) const
  function const_reference (line 23970) | const_reference at(const ::nlohmann::json_pointer<BasicJsonType>& ptr) c...
  function basic_json (line 23977) | basic_json flatten() const
  function basic_json (line 23986) | basic_json unflatten() const
  function patch_inplace (line 24002) | void patch_inplace(const basic_json& json_patch)
  function basic_json (line 24273) | basic_json patch(const basic_json& json_patch) const
  function JSON_HEDLEY_WARN_UNUSED_RESULT (line 24282) | JSON_HEDLEY_WARN_UNUSED_RESULT
  function merge_patch (line 24425) | void merge_patch(const basic_json& apply_patch)
  function NLOHMANN_BASIC_JSON_TPL_DECLARATION (line 24456) | NLOHMANN_BASIC_JSON_TPL_DECLARATION
  function NLOHMANN_JSON_NAMESPACE_END (line 24493) | NLOHMANN_JSON_NAMESPACE_END

FILE: tests/EventsTest.cpp
  type facebook::yoga::test (line 20) | namespace facebook::yoga::test {
    type TypedEventTestData (line 23) | struct TypedEventTestData {}
    type TypedEventTestData<Event::LayoutPassEnd> (line 26) | struct TypedEventTestData<Event::LayoutPassEnd> {
    type EventArgs (line 30) | struct EventArgs {
    class EventTest (line 47) | class EventTest : public ::testing::Test {
      method EventArgs (line 56) | static EventArgs& lastEvent() {
    function TEST_F (line 62) | TEST_F(EventTest, new_node_has_event) {
    function TEST_F (line 73) | TEST_F(EventTest, new_node_with_config_event) {
    function TEST_F (line 85) | TEST_F(EventTest, clone_node_event) {
    function TEST_F (line 99) | TEST_F(EventTest, free_node_event) {
    function TEST_F (line 111) | TEST_F(EventTest, layout_events) {
    function TEST_F (line 139) | TEST_F(EventTest, layout_events_single_node) {
    function TEST_F (line 160) | TEST_F(EventTest, layout_events_counts_multi_node_layout) {
    function TEST_F (line 183) | TEST_F(EventTest, layout_events_counts_cache_hits_single_node_layout) {
    function TEST_F (line 205) | TEST_F(EventTest, layout_events_counts_cache_hits_multi_node_layout) {
    function TEST_F (line 230) | TEST_F(EventTest, layout_events_has_max_measure_cache) {
    function TEST_F (line 253) | TEST_F(EventTest, measure_functions_get_wrapped) {
    function TEST_F (line 269) | TEST_F(EventTest, baseline_functions_get_wrapped) {
    function EventArgs (line 291) | EventArgs createArgs(YGNodeConstRef node, const Event::Data data) {
    function EventArgs (line 299) | EventArgs createArgs(

FILE: tests/FlexGapTest.cpp
  function TEST (line 13) | TEST(FlexGap, gap_negative_value) {

FILE: tests/FloatOptionalTest.cpp
  function TEST (line 25) | TEST(FloatOptional, value) {
  function TEST (line 39) | TEST(FloatOptional, equality) {
  function TEST (line 64) | TEST(FloatOptional, inequality) {
  function TEST (line 89) | TEST(FloatOptional, greater_than_with_undefined) {
  function TEST (line 101) | TEST(FloatOptional, greater_than) {
  function TEST (line 114) | TEST(FloatOptional, less_than_with_undefined) {
  function TEST (line 126) | TEST(FloatOptional, less_than) {
  function TEST (line 139) | TEST(FloatOptional, greater_than_equals_with_undefined) {
  function TEST (line 151) | TEST(FloatOptional, greater_than_equals) {
  function TEST (line 164) | TEST(FloatOptional, less_than_equals_with_undefined) {
  function TEST (line 176) | TEST(FloatOptional, less_than_equals) {
  function TEST (line 189) | TEST(FloatOptional, addition) {
  function TEST (line 200) | TEST(YGFloatOptiona, maxOrDefined) {
  function TEST (line 210) | TEST(FloatOptional, unwrap) {

FILE: tests/OrdinalsTest.cpp
  type facebook::yoga (line 13) | namespace facebook::yoga {
    function TEST (line 15) | TEST(Ordinals, iteration) {

FILE: tests/SmallValueBufferTest.cpp
  type facebook::yoga (line 11) | namespace facebook::yoga {
    function TEST (line 15) | TEST(SmallValueBuffer, copy_assignment_with_overflow) {
    function TEST (line 34) | TEST(SmallValueBuffer, push_32) {
    function TEST (line 42) | TEST(SmallValueBuffer, push_overflow) {
    function TEST (line 57) | TEST(SmallValueBuffer, push_64) {
    function TEST (line 65) | TEST(SmallValueBuffer, push_64_overflow) {
    function TEST (line 80) | TEST(SmallValueBuffer, push_64_after_32) {
    function TEST (line 92) | TEST(SmallValueBuffer, push_32_after_64) {
    function TEST (line 104) | TEST(SmallValueBuffer, replace_32_with_32) {
    function TEST (line 114) | TEST(SmallValueBuffer, replace_32_with_64) {
    function TEST (line 124) | TEST(SmallValueBuffer, replace_32_with_64_causes_overflow) {
    function TEST (line 141) | TEST(SmallValueBuffer, replace_64_with_32) {
    function TEST (line 151) | TEST(SmallValueBuffer, replace_64_with_64) {

FILE: tests/StyleTest.cpp
  type facebook::yoga (line 11) | namespace facebook::yoga {
    function TEST (line 13) | TEST(Style, computed_padding_is_floored) {
    function TEST (line 21) | TEST(Style, computed_border_is_floored) {
    function TEST (line 29) | TEST(Style, computed_gap_is_floored) {
    function TEST (line 36) | TEST(Style, computed_margin_is_not_floored) {

FILE: tests/StyleValuePoolTest.cpp
  type facebook::yoga (line 11) | namespace facebook::yoga {
    function TEST (line 13) | TEST(StyleValuePool, undefined_at_init) {
    function TEST (line 23) | TEST(StyleValuePool, auto_at_init) {
    function TEST (line 31) | TEST(StyleValuePool, store_small_int_points) {
    function TEST (line 40) | TEST(StyleValuePool, store_small_negative_int_points) {
    function TEST (line 49) | TEST(StyleValuePool, store_small_int_percent) {
    function TEST (line 58) | TEST(StyleValuePool, store_large_int_percent) {
    function TEST (line 67) | TEST(StyleValuePool, store_large_int_after_small_int) {
    function TEST (line 77) | TEST(StyleValuePool, store_small_int_after_large_int) {
    function TEST (line 87) | TEST(StyleValuePool, store_small_int_number) {
    function TEST (line 96) | TEST(StyleValuePool, store_undefined) {
    function TEST (line 107) | TEST(StyleValuePool, store_undefined_after_small_int) {
    function TEST (line 119) | TEST(StyleValuePool, store_undefined_after_large_int) {
    function TEST (line 131) | TEST(StyleValuePool, store_keywords) {

FILE: tests/YGAlignBaselineTest.cpp
  function _baselineFunc (line 11) | static float _baselineFunc(
  function YGSize (line 18) | static YGSize _measure1(
  function YGSize (line 27) | static YGSize _measure2(
  function YGNodeRef (line 36) | static YGNodeRef createYGNode(
  function TEST (line 53) | TEST(YogaTest, align_baseline_parent_ht_not_specified) {
  function TEST (line 98) | TEST(YogaTest, align_baseline_with_no_parent_ht) {
  function TEST (line 139) | TEST(YogaTest, align_baseline_with_no_baseline_func_and_no_parent_ht) {
  function TEST (line 179) | TEST(YogaTest, align_baseline_parent_using_child_in_column_as_reference) {
  function TEST (line 221) | TEST(
  function TEST (line 269) | TEST(
  function TEST (line 317) | TEST(
  function TEST (line 365) | TEST(
  function TEST (line 413) | TEST(YogaTest, align_baseline_parent_using_child_in_row_as_reference) {
  function TEST (line 455) | TEST(
  function TEST (line 503) | TEST(
  function TEST (line 551) | TEST(
  function TEST (line 594) | TEST(
  function TEST (line 637) | TEST(
  function TEST (line 688) | TEST(
  function TEST (line 739) | TEST(
  function TEST (line 789) | TEST(

FILE: tests/YGAspectRatioTest.cpp
  function YGSize (line 11) | static YGSize _measure(
  function TEST (line 23) | TEST(YogaTest, aspect_ratio_cross_defined) {
  function TEST (line 44) | TEST(YogaTest, aspect_ratio_main_defined) {
  function TEST (line 65) | TEST(YogaTest, aspect_ratio_both_dimensions_defined_row) {
  function TEST (line 88) | TEST(YogaTest, aspect_ratio_both_dimensions_defined_column) {
  function TEST (line 110) | TEST(YogaTest, aspect_ratio_align_stretch) {
  function TEST (line 129) | TEST(YogaTest, aspect_ratio_flex_grow) {
  function TEST (line 151) | TEST(YogaTest, aspect_ratio_flex_shrink) {
  function TEST (line 173) | TEST(YogaTest, aspect_ratio_flex_shrink_2) {
  function TEST (line 205) | TEST(YogaTest, aspect_ratio_basis) {
  function TEST (line 226) | TEST(YogaTest, aspect_ratio_absolute_layout_width_defined) {
  function TEST (line 249) | TEST(YogaTest, aspect_ratio_absolute_layout_height_defined) {
  function TEST (line 272) | TEST(YogaTest, aspect_ratio_with_max_cross_defined) {
  function TEST (line 294) | TEST(YogaTest, aspect_ratio_with_max_main_defined) {
  function TEST (line 316) | TEST(YogaTest, aspect_ratio_with_min_cross_defined) {
  function TEST (line 338) | TEST(YogaTest, aspect_ratio_with_min_main_defined) {
  function TEST (line 360) | TEST(YogaTest, aspect_ratio_double_cross) {
  function TEST (line 381) | TEST(YogaTest, aspect_ratio_half_cross) {
  function TEST (line 402) | TEST(YogaTest, aspect_ratio_double_main) {
  function TEST (line 423) | TEST(YogaTest, aspect_ratio_half_main) {
  function TEST (line 444) | TEST(YogaTest, aspect_ratio_with_measure_func) {
  function TEST (line 465) | TEST(YogaTest, aspect_ratio_width_height_flex_grow_row) {
  function TEST (line 489) | TEST(YogaTest, aspect_ratio_width_height_flex_grow_column) {
  function TEST (line 512) | TEST(YogaTest, aspect_ratio_height_as_flex_basis) {
  function TEST (line 546) | TEST(YogaTest, aspect_ratio_width_as_flex_basis) {
  function TEST (line 579) | TEST(YogaTest, aspect_ratio_overrides_flex_grow_row) {
  function TEST (line 602) | TEST(YogaTest, aspect_ratio_overrides_flex_grow_column) {
  function TEST (line 624) | TEST(YogaTest, aspect_ratio_left_right_absolute) {
  function TEST (line 647) | TEST(YogaTest, aspect_ratio_top_bottom_absolute) {
  function TEST (line 670) | TEST(YogaTest, aspect_ratio_width_overrides_align_stretch_row) {
  function TEST (line 691) | TEST(YogaTest, aspect_ratio_height_overrides_align_stretch_column) {
  function TEST (line 711) | TEST(YogaTest, aspect_ratio_allow_child_overflow_parent_size) {
  function TEST (line 732) | TEST(YogaTest, aspect_ratio_defined_main_with_margin) {
  function TEST (line 757) | TEST(YogaTest, aspect_ratio_defined_cross_with_margin) {
  function TEST (line 782) | TEST(YogaTest, aspect_ratio_defined_cross_with_main_margin) {
  function TEST (line 807) | TEST(YogaTest, aspect_ratio_should_prefer_explicit_height) {
  function TEST (line 838) | TEST(YogaTest, aspect_ratio_should_prefer_explicit_width) {
  function TEST (line 869) | TEST(YogaTest, aspect_ratio_should_prefer_flexed_dimension) {

FILE: tests/YGBaselineFuncTest.cpp
  function _baseline (line 11) | static float
  function TEST (line 17) | TEST(YogaTest, align_baseline_customer_func) {

FILE: tests/YGCloneNodeTest.cpp
  function recursivelyAssertProperNodeOwnership (line 11) | static void recursivelyAssertProperNodeOwnership(YGNodeRef node) {
  function TEST (line 19) | TEST(YogaTest, absolute_node_cloned_with_static_parent) {
  function TEST (line 48) | TEST(YogaTest, absolute_node_cloned_with_static_ancestors) {

FILE: tests/YGComputedMarginTest.cpp
  function TEST (line 12) | TEST(YogaTest, computed_layout_margin) {
  function TEST (line 31) | TEST(YogaTest, margin_side_overrides_horizontal_and_vertical) {
  function TEST (line 61) | TEST(YogaTest, margin_side_overrides_all) {
  function TEST (line 87) | TEST(YogaTest, margin_horizontal_and_vertical_overrides_all) {

FILE: tests/YGComputedPaddingTest.cpp
  function TEST (line 12) | TEST(YogaTest, computed_layout_padding) {
  function TEST (line 31) | TEST(YogaTest, padding_side_overrides_horizontal_and_vertical) {
  function TEST (line 61) | TEST(YogaTest, padding_side_overrides_all) {
  function TEST (line 87) | TEST(YogaTest, padding_horizontal_and_vertical_overrides_all) {

FILE: tests/YGConfigTest.cpp
  type ConfigCloningTest (line 18) | struct ConfigCloningTest : public ::testing::Test {
    method YGNodeRef (line 24) | static YGNodeRef cloneNode(
    method YGNodeRef (line 30) | static YGNodeRef doNotClone(
  function TEST_F (line 38) | TEST_F(ConfigCloningTest, uses_values_provided_by_cloning_callback) {
  function TEST_F (line 48) | TEST_F(

FILE: tests/YGDefaultValuesTest.cpp
  function TEST (line 11) | TEST(YogaTest, assert_default_values) {
  function TEST (line 92) | TEST(YogaTest, assert_webdefault_values) {
  function TEST (line 105) | TEST(YogaTest, assert_webdefault_values_reset) {
  function TEST (line 119) | TEST(YogaTest, assert_legacy_stretch_behaviour) {
  function TEST (line 166) | TEST(YogaTest, assert_box_sizing_border_box) {

FILE: tests/YGDirtiedTest.cpp
  function _dirtied (line 14) | static void _dirtied(YGNodeConstRef node) {
  function TEST (line 19) | TEST(YogaTest, dirtied) {
  function TEST (line 42) | TEST(YogaTest, dirtied_propagation) {
  function TEST (line 75) | TEST(YogaTest, dirtied_hierarchy) {

FILE: tests/YGDirtyMarkingTest.cpp
  function TEST (line 11) | TEST(YogaTest, dirty_propagation) {
  function TEST (line 44) | TEST(YogaTest, dirty_propagation_only_if_prop_changed) {
  function TEST (line 71) | TEST(YogaTest, dirty_propagation_changing_layout_config) {
  function TEST (line 119) | TEST(YogaTest, dirty_propagation_changing_benign_config) {
  function TEST (line 164) | TEST(YogaTest, dirty_mark_all_children_as_dirty_when_display_changes) {
  function TEST (line 212) | TEST(YogaTest, dirty_node_only_if_children_are_actually_removed) {
  function TEST (line 237) | TEST(YogaTest, dirty_node_only_if_undefined_values_gets_set_to_undefined) {
  function TEST (line 253) | TEST(YogaTest, dirty_removed_child_node) {
  function TEST (line 277) | TEST(YogaTest, dirty_removed_child_nodes_when_removing_all) {

FILE: tests/YGEdgeTest.cpp
  function TEST (line 11) | TEST(YogaTest, start_overrides) {
  function TEST (line 35) | TEST(YogaTest, end_overrides) {
  function TEST (line 59) | TEST(YogaTest, horizontal_overridden) {
  function TEST (line 78) | TEST(YogaTest, vertical_overridden) {
  function TEST (line 97) | TEST(YogaTest, horizontal_overrides_all) {
  function TEST (line 118) | TEST(YogaTest, vertical_overrides_all) {
  function TEST (line 139) | TEST(YogaTest, all_overridden) {

FILE: tests/YGFlexBasisFitContentTest.cpp
  function YGSize (line 12) | static YGSize measureTextLike(
  class YGFlexBasisFitContentTest (line 25) | class YGFlexBasisFitContentTest : public testing::TestWithParam<bool> {
    method SetUp (line 27) | void SetUp() override {
    method TearDown (line 33) | void TearDown() override {
  function TEST_P (line 47) | TEST_P(YGFlexBasisFitContentTest, percentage_height_converges) {
  function TEST_P (line 67) | TEST_P(YGFlexBasisFitContentTest, percentage_with_flex_grow_converges) {
  function TEST_P (line 96) | TEST_P(YGFlexBasisFitContentTest, flex_shrink_overflow_converges) {
  function TEST_P (line 121) | TEST_P(YGFlexBasisFitContentTest, scroll_avoids_remeasure) {
  function TEST_P (line 167) | TEST_P(YGFlexBasisFitContentTest, row_direction_unchanged) {
  function TEST_P (line 186) | TEST_P(YGFlexBasisFitContentTest, row_scroll_skips_width) {
  function TEST (line 208) | TEST(YogaTest, flex_basis_fit_content_feature_change_invalidates_cache) {

FILE: tests/YGHadOverflowTest.cpp
  class YogaTest_HadOverflowTests (line 13) | class YogaTest_HadOverflowTests : public Test {
    method YogaTest_HadOverflowTests (line 15) | YogaTest_HadOverflowTests() : config(YGConfigNew()) {
  function TEST_F (line 32) | TEST_F(
  function TEST_F (line 52) | TEST_F(
  function TEST_F (line 72) | TEST_F(YogaTest_HadOverflowTests, no_overflow_no_wrap_and_flex_children) {
  function TEST_F (line 91) | TEST_F(YogaTest_HadOverflowTests, hadOverflow_gets_reset_if_not_logger_v...
  function TEST_F (line 115) | TEST_F(YogaTest_HadOverflowTests, spacing_overflow_in_nested_nodes) {

FILE: tests/YGLayoutableChildrenTest.cpp
  function TEST (line 13) | TEST(YogaTest, layoutable_children_single_contents_node) {
  function TEST (line 48) | TEST(YogaTest, layoutable_children_multiple_contents_nodes) {
  function TEST (line 95) | TEST(YogaTest, layoutable_children_nested_contents_nodes) {
  function TEST (line 138) | TEST(YogaTest, layoutable_children_contents_leaf_node) {
  function TEST (line 165) | TEST(YogaTest, layoutable_children_contents_root_node) {

FILE: tests/YGMeasureCacheTest.cpp
  function YGSize (line 11) | static YGSize _measureMax(
  function YGSize (line 26) | static YGSize _measureMin(
  function YGSize (line 46) | static YGSize _measure_84_49(
  function TEST (line 60) | TEST(YogaTest, measure_once_single_flexible_child) {
  function TEST (line 81) | TEST(YogaTest, remeasure_with_same_exact_width_larger_than_needed_height) {
  function TEST (line 98) | TEST(YogaTest, remeasure_with_same_atmost_width_larger_than_needed_heigh...
  function TEST (line 116) | TEST(YogaTest, remeasure_with_computed_width_larger_than_needed_height) {
  function TEST (line 135) | TEST(YogaTest, remeasure_with_atmost_computed_width_undefined_height) {
  function TEST (line 153) | TEST(

FILE: tests/YGMeasureModeTest.cpp
  type _MeasureConstraint (line 11) | struct _MeasureConstraint {
  type _MeasureConstraintList (line 18) | struct _MeasureConstraintList {
    type _MeasureConstraint (line 20) | struct _MeasureConstraint
  function YGSize (line 23) | static YGSize _measure(
  function TEST (line 44) | TEST(YogaTest, exactly_measure_stretched_child_column) {
  function TEST (line 71) | TEST(YogaTest, exactly_measure_stretched_child_row) {
  function TEST (line 99) | TEST(YogaTest, at_most_main_axis_column) {
  function TEST (line 126) | TEST(YogaTest, at_most_cross_axis_column) {
  function TEST (line 154) | TEST(YogaTest, at_most_main_axis_row) {
  function TEST (line 182) | TEST(YogaTest, at_most_cross_axis_row) {
  function TEST (line 211) | TEST(YogaTest, flex_child) {
  function TEST (line 241) | TEST(YogaTest, flex_child_with_flex_basis) {
  function TEST (line 269) | TEST(YogaTest, overflow_scroll_column) {
  function TEST (line 301) | TEST(YogaTest, overflow_scroll_row) {

FILE: tests/YGMeasureTest.cpp
  function YGSize (line 11) | static YGSize _measure(
  function YGSize (line 25) | static YGSize _simulate_wrapping_text(
  function YGSize (line 38) | static YGSize _measure_assert_negative(
  function TEST (line 50) | TEST(YogaTest, dont_measure_single_grow_shrink_child) {
  function TEST (line 71) | TEST(YogaTest, measure_absolute_child_with_no_constraints) {
  function TEST (line 92) | TEST(YogaTest, dont_measure_when_min_equals_max) {
  function TEST (line 120) | TEST(YogaTest, dont_measure_when_min_equals_max_percentages) {
  function TEST (line 148) | TEST(YogaTest, measure_nodes_with_margin_auto_and_stretch) {
  function TEST (line 168) | TEST(YogaTest, dont_measure_when_min_equals_max_mixed_width_percent) {
  function TEST (line 196) | TEST(YogaTest, dont_measure_when_min_equals_max_mixed_height_percent) {
  function TEST (line 224) | TEST(YogaTest, measure_enough_size_should_be_in_single_line) {
  function TEST (line 242) | TEST(YogaTest, measure_not_enough_size_should_wrap) {
  function TEST (line 260) | TEST(YogaTest, measure_zero_space_should_grow) {
  function TEST (line 284) | TEST(YogaTest, measure_flex_direction_row_and_padding) {
  function TEST (line 326) | TEST(YogaTest, measure_flex_direction_column_and_padding) {
  function TEST (line 366) | TEST(YogaTest, measure_flex_direction_row_no_padding) {
  function TEST (line 406) | TEST(YogaTest, measure_flex_direction_row_no_padding_align_items_flexsta...
  function TEST (line 446) | TEST(YogaTest, measure_with_fixed_size) {
  function TEST (line 487) | TEST(YogaTest, measure_with_flex_shrink) {
  function TEST (line 527) | TEST(YogaTest, measure_no_padding) {
  function TEST (line 567) | TEST(YogaDeathTest, cannot_add_child_to_node_with_measure_func) {
  function TEST (line 581) | TEST(YogaDeathTest, cannot_add_nonnull_measure_func_to_non_leaf_node) {
  function TEST (line 596) | TEST(YogaTest, can_nullify_measure_func_on_any_node) {
  function TEST (line 604) | TEST(YogaTest, cant_call_negative_measure) {
  function TEST (line 623) | TEST(YogaTest, cant_call_negative_measure_horizontal) {
  function YGSize (line 642) | static YGSize _measure_90_10(
  function YGSize (line 651) | static YGSize _measure_100_100(
  function TEST (line 660) | TEST(YogaTest, percent_with_text_node) {
  function TEST (line 701) | TEST(YogaTest, percent_margin_with_measure_func) {
  function TEST (line 769) | TEST(YogaTest, percent_padding_with_measure_func) {
  function TEST (line 835) | TEST(YogaTest, percent_padding_and_percent_margin_with_measure_func) {
  function YGSize (line 903) | static YGSize _measure_half_width_height(
  function TEST (line 917) | TEST(YogaTest, measure_content_box) {
  function TEST (line 949) | TEST(YogaTest, measure_border_box) {

FILE: tests/YGNodeCallbackTest.cpp
  function TEST (line 18) | TEST(Node, hasMeasureFunc_initial) {
  function TEST (line 23) | TEST(Node, hasMeasureFunc_with_measure_fn) {
  function TEST (line 32) | TEST(Node, measure_with_measure_fn) {
  function TEST (line 45) | TEST(Node, hasMeasureFunc_after_unset) {
  function TEST (line 56) | TEST(Node, hasBaselineFunc_initial) {
  function TEST (line 61) | TEST(Node, hasBaselineFunc_with_baseline_fn) {
  function TEST (line 67) | TEST(Node, baseline_with_baseline_fn) {
  function TEST (line 74) | TEST(Node, hasBaselineFunc_after_unset) {

FILE: tests/YGNodeChildTest.cpp
  function TEST (line 11) | TEST(YogaTest, reset_layout_when_child_removed) {
  function TEST (line 37) | TEST(YogaTest, removed_child_can_be_reused_with_valid_layout) {

FILE: tests/YGPersistenceTest.cpp
  function TEST (line 17) | TEST(YogaTest, cloning_shared_root) {
  function TEST (line 114) | TEST(YogaTest, mutating_children_of_a_clone_clones_only_after_layout) {
  function TEST (line 162) | TEST(YogaTest, cloning_two_levels) {
  function TEST (line 228) | TEST(YogaTest, cloning_and_freeing) {
  function TEST (line 261) | TEST(YogaTest, mixed_shared_and_owned_children) {

FILE: tests/YGPersistentNodeCloningTest.cpp
  type facebook::yoga (line 17) | namespace facebook::yoga {
    type YGPersistentNodeCloningTest (line 19) | struct YGPersistentNodeCloningTest : public ::testing::Test {
      type NodeWrapper (line 20) | struct NodeWrapper {
        method NodeWrapper (line 21) | explicit NodeWrapper(
        method NodeWrapper (line 40) | NodeWrapper(const NodeWrapper& other)
        method NodeWrapper (line 49) | NodeWrapper(
        method NodeWrapper (line 71) | NodeWrapper(NodeWrapper&&) = delete;
        method NodeWrapper (line 77) | NodeWrapper& operator=(const NodeWrapper& other) = delete;
        method NodeWrapper (line 78) | NodeWrapper& operator=(NodeWrapper&& other) = delete;
      type ConfigWrapper (line 84) | struct ConfigWrapper {
        method ConfigWrapper (line 85) | ConfigWrapper() {
        method ConfigWrapper (line 98) | ConfigWrapper(const ConfigWrapper&) = delete;
        method ConfigWrapper (line 99) | ConfigWrapper(ConfigWrapper&&) = delete;
        method ConfigWrapper (line 105) | ConfigWrapper& operator=(const ConfigWrapper&) = delete;
        method ConfigWrapper (line 106) | ConfigWrapper& operator=(ConfigWrapper&&) = delete;
      method SetUp (line 114) | void SetUp() override {
    function TEST_F (line 123) | TEST_F(
    function TEST_F (line 184) | TEST_F(YGPersistentNodeCloningTest, clone_leaf_display_contents_node) {

FILE: tests/YGRelayoutTest.cpp
  function TEST (line 11) | TEST(YogaTest, dont_cache_computed_flex_basis_between_layouts) {
  function TEST (line 34) | TEST(YogaTest, recalculate_resolvedDimonsion_onchange) {
  function TEST (line 53) | TEST(YogaTest, relayout_containing_block_size_changes) {
  function TEST (line 211) | TEST(YogaTest, has_new_layout_flag_set_static) {

FILE: tests/YGRoundingFunctionTest.cpp
  function TEST (line 13) | TEST(YogaTest, rounding_value) {
  function YGSize (line 87) | static YGSize measureText(
  function TEST (line 97) | TEST(YogaTest, consistent_rounding_during_repeated_layouts) {
  function TEST (line 126) | TEST(YogaTest, per_node_point_scale_factor) {
  function TEST (line 168) | TEST(YogaTest, raw_layout_dimensions) {

FILE: tests/YGRoundingMeasureFuncTest.cpp
  function YGSize (line 11) | static YGSize _measureFloor(
  function YGSize (line 23) | static YGSize _measureCeil(
  function YGSize (line 35) | static YGSize _measureFractial(
  function TEST (line 47) | TEST(YogaTest, rounding_feature_with_custom_measure_func_floor) {
  function TEST (line 95) | TEST(YogaTest, rounding_feature_with_custom_measure_func_ceil) {
  function TEST (line 115) | TEST(

FILE: tests/YGScaleChangeTest.cpp
  function TEST (line 11) | TEST(YogaTest, scale_change_invalidates_layout) {
  function TEST (line 43) | TEST(YogaTest, errata_config_change_relayout) {
  function TEST (line 116) | TEST(YogaTest, setting_compatible_config_maintains_layout_cache) {

FILE: tests/YGStyleTest.cpp
  function TEST (line 11) | TEST(YogaTest, copy_style_same) {
  function TEST (line 21) | TEST(YogaTest, copy_style_modified) {
  function TEST (line 38) | TEST(YogaTest, copy_style_modified_same) {
  function TEST (line 54) | TEST(YogaTest, initialise_flexShrink_flexGrow) {

FILE: tests/YGTreeMutationTest.cpp
  function getChildren (line 11) | static std::vector<YGNodeRef> getChildren(YGNodeRef const node) {
  function TEST (line 21) | TEST(YogaTest, set_children_adds_children_to_parent) {
  function TEST (line 40) | TEST(YogaTest, set_children_to_empty_removes_old_children) {
  function TEST (line 60) | TEST(YogaTest, set_children_replaces_non_common_children) {
  function TEST (line 87) | TEST(YogaTest, set_children_keeps_and_reorders_common_children) {

FILE: tests/YGValueTest.cpp
  function TEST (line 12) | TEST(YGValue, supports_equality) {

FILE: tests/YGZeroOutLayoutRecursivelyTest.cpp
  function TEST (line 11) | TEST(YogaTest, zero_out_layout) {

FILE: tests/generated/YGAbsolutePositionTest.cpp
  function TEST (line 16) | TEST(YogaTest, absolute_layout_width_height_start_top) {
  function TEST (line 60) | TEST(YogaTest, absolute_layout_width_height_left_auto_right) {
  function TEST (line 104) | TEST(YogaTest, absolute_layout_width_height_left_right_auto) {
  function TEST (line 148) | TEST(YogaTest, absolute_layout_width_height_left_auto_right_auto) {
  function TEST (line 192) | TEST(YogaTest, absolute_layout_width_height_end_bottom) {
  function TEST (line 236) | TEST(YogaTest, absolute_layout_start_top_end_bottom) {
  function TEST (line 280) | TEST(YogaTest, absolute_layout_width_height_start_top_end_bottom) {
  function TEST (line 326) | TEST(YogaTest, do_not_clamp_height_of_absolute_node_to_height_of_its_ove...
  function TEST (line 385) | TEST(YogaTest, absolute_layout_within_border) {
  function TEST (line 488) | TEST(YogaTest, absolute_layout_align_items_and_justify_content_center) {
  function TEST (line 533) | TEST(YogaTest, absolute_layout_align_items_and_justify_content_flex_end) {
  function TEST (line 578) | TEST(YogaTest, absolute_layout_justify_content_center) {
  function TEST (line 622) | TEST(YogaTest, absolute_layout_align_items_center) {
  function TEST (line 666) | TEST(YogaTest, absolute_layout_align_items_center_on_child_only) {
  function TEST (line 710) | TEST(YogaTest, absolute_layout_align_items_and_justify_content_center_an...
  function TEST (line 756) | TEST(YogaTest, absolute_layout_align_items_and_justify_content_center_an...
  function TEST (line 802) | TEST(YogaTest, absolute_layout_align_items_and_justify_content_center_an...
  function TEST (line 848) | TEST(YogaTest, absolute_layout_align_items_and_justify_content_center_an...
  function TEST (line 894) | TEST(YogaTest, position_root_with_rtl_should_position_withoutdirection) {
  function TEST (line 921) | TEST(YogaTest, absolute_layout_percentage_bottom_based_on_parent_height) {
  function TEST (line 998) | TEST(YogaTest, absolute_layout_in_wrap_reverse_column_container) {
  function TEST (line 1041) | TEST(YogaTest, absolute_layout_in_wrap_reverse_row_container) {
  function TEST (line 1085) | TEST(YogaTest, absolute_layout_in_wrap_reverse_column_container_flex_end) {
  function TEST (line 1129) | TEST(YogaTest, absolute_layout_in_wrap_reverse_row_container_flex_end) {
  function TEST (line 1174) | TEST(YogaTest, percent_absolute_position_infinite_height) {
  function TEST (line 1231) | TEST(YogaTest, absolute_layout_percentage_height_based_on_padded_parent) {
  function TEST (line 1275) | TEST(YogaTest, absolute_layout_percentage_height_based_on_padded_parent_...
  function TEST (line 1320) | TEST(YogaTest, absolute_layout_padding_left) {
  function TEST (line 1363) | TEST(YogaTest, absolute_layout_padding_right) {
  function TEST (line 1406) | TEST(YogaTest, absolute_layout_padding_top) {
  function TEST (line 1449) | TEST(YogaTest, absolute_layout_padding_bottom) {
  function TEST (line 1492) | TEST(YogaTest, absolute_layout_padding) {
  function TEST (line 1565) | TEST(YogaTest, absolute_layout_border) {
  function TEST (line 1638) | TEST(YogaTest, absolute_layout_column_reverse_margin_border) {

FILE: tests/generated/YGAlignContentTest.cpp
  function TEST (line 16) | TEST(YogaTest, align_content_flex_start_nowrap) {
  function TEST (line 73) | TEST(YogaTest, align_content_flex_start_wrap) {
  function TEST (line 176) | TEST(YogaTest, align_content_flex_start_wrap_singleline) {
  function TEST (line 234) | TEST(YogaTest, align_content_flex_start_wrapped_negative_space) {
  function TEST (line 323) | TEST(YogaTest, align_content_flex_start_wrapped_negative_space_gap) {
  function TEST (line 413) | TEST(YogaTest, align_content_flex_start_without_height_on_children) {
  function TEST (line 512) | TEST(YogaTest, align_content_flex_start_with_flex) {
  function TEST (line 617) | TEST(YogaTest, align_content_flex_end_nowrap) {
  function TEST (line 675) | TEST(YogaTest, align_content_flex_end_wrap) {
  function TEST (line 779) | TEST(YogaTest, align_content_flex_end_wrap_singleline) {
  function TEST (line 838) | TEST(YogaTest, align_content_flex_end_wrapped_negative_space) {
  function TEST (line 928) | TEST(YogaTest, align_content_flex_end_wrapped_negative_space_gap) {
  function TEST (line 1019) | TEST(YogaTest, align_content_center_nowrap) {
  function TEST (line 1077) | TEST(YogaTest, align_content_center_wrap) {
  function TEST (line 1181) | TEST(YogaTest, align_content_center_wrap_singleline) {
  function TEST (line 1240) | TEST(YogaTest, align_content_center_wrapped_negative_space) {
  function TEST (line 1330) | TEST(YogaTest, align_content_center_wrapped_negative_space_gap) {
  function TEST (line 1421) | TEST(YogaTest, align_content_space_between_nowrap) {
  function TEST (line 1479) | TEST(YogaTest, align_content_space_between_wrap) {
  function TEST (line 1583) | TEST(YogaTest, align_content_space_between_wrap_singleline) {
  function TEST (line 1642) | TEST(YogaTest, align_content_space_between_wrapped_negative_space) {
  function TEST (line 1732) | TEST(YogaTest, align_content_space_between_wrapped_negative_space_row_re...
  function TEST (line 1822) | TEST(YogaTest, align_content_space_between_wrapped_negative_space_gap) {
  function TEST (line 1913) | TEST(YogaTest, align_content_space_around_nowrap) {
  function TEST (line 1971) | TEST(YogaTest, align_content_space_around_wrap) {
  function TEST (line 2075) | TEST(YogaTest, align_content_space_around_wrap_singleline) {
  function TEST (line 2134) | TEST(YogaTest, align_content_space_around_wrapped_negative_space) {
  function TEST (line 2224) | TEST(YogaTest, align_content_space_around_wrapped_negative_space_row_rev...
  function TEST (line 2314) | TEST(YogaTest, align_content_space_around_wrapped_negative_space_gap) {
  function TEST (line 2405) | TEST(YogaTest, align_content_space_evenly_nowrap) {
  function TEST (line 2463) | TEST(YogaTest, align_content_space_evenly_wrap) {
  function TEST (line 2567) | TEST(YogaTest, align_content_space_evenly_wrap_singleline) {
  function TEST (line 2626) | TEST(YogaTest, align_content_space_evenly_wrapped_negative_space) {
  function TEST (line 2716) | TEST(YogaTest, align_content_space_evenly_wrapped_negative_space_gap) {
  function TEST (line 2807) | TEST(YogaTest, align_content_stretch) {
  function TEST (line 2905) | TEST(YogaTest, align_content_stretch_row) {
  function TEST (line 3004) | TEST(YogaTest, align_content_stretch_row_with_children) {
  function TEST (line 3119) | TEST(YogaTest, align_content_stretch_row_with_flex) {
  function TEST (line 3224) | TEST(YogaTest, align_content_stretch_row_with_flex_no_shrink) {
  function TEST (line 3328) | TEST(YogaTest, align_content_stretch_row_with_margin) {
  function TEST (line 3429) | TEST(YogaTest, align_content_stretch_row_with_padding) {
  function TEST (line 3530) | TEST(YogaTest, align_content_stretch_row_with_single_row) {
  function TEST (line 3587) | TEST(YogaTest, align_content_stretch_row_with_fixed_height) {
  function TEST (line 3687) | TEST(YogaTest, align_content_stretch_row_with_max_height) {
  function TEST (line 3787) | TEST(YogaTest, align_content_stretch_row_with_min_height) {
  function TEST (line 3887) | TEST(YogaTest, align_content_stretch_column) {
  function TEST (line 4004) | TEST(YogaTest, align_content_stretch_is_not_overriding_align_items) {
  function TEST (line 4063) | TEST(YogaTest, align_content_stretch_with_min_cross_axis) {
  function TEST (line 4122) | TEST(YogaTest, align_content_stretch_with_max_cross_axis) {
  function TEST (line 4181) | TEST(YogaTest, align_content_stretch_with_max_cross_axis_and_border_padd...
  function TEST (line 4242) | TEST(YogaTest, align_content_space_evenly_with_min_cross_axis) {
  function TEST (line 4301) | TEST(YogaTest, align_content_space_evenly_with_max_cross_axis) {
  function TEST (line 4360) | TEST(YogaTest, align_content_space_evenly_with_max_cross_axis_violated) {
  function TEST (line 4419) | TEST(YogaTest, align_content_space_evenly_with_max_cross_axis_violated_p...
  function TEST (line 4480) | TEST(YogaTest, align_content_space_around_and_align_items_flex_end_with_...
  function TEST (line 4555) | TEST(YogaTest, align_content_space_around_and_align_items_center_with_fl...
  function TEST (line 4630) | TEST(YogaTest, align_content_space_around_and_align_items_flex_start_wit...
  function TEST (line 4705) | TEST(YogaTest, align_content_flex_start_stretch_doesnt_influence_line_bo...
  function TEST (line 4864) | TEST(YogaTest, align_content_stretch_stretch_does_influence_line_box_dim) {
  function TEST (line 5024) | TEST(YogaTest, align_content_space_evenly_stretch_does_influence_line_bo...
  function TEST (line 5184) | TEST(YogaTest, align_content_stretch_and_align_items_flex_end_with_flex_...
  function TEST (line 5260) | TEST(YogaTest, align_content_stretch_and_align_items_flex_start_with_fle...
  function TEST (line 5336) | TEST(YogaTest, align_content_stretch_and_align_items_center_with_flex_wr...
  function TEST (line 5412) | TEST(YogaTest, align_content_stretch_and_align_items_stretch_with_flex_w...

FILE: tests/generated/YGAlignItemsTest.cpp
  function TEST (line 16) | TEST(YogaTest, align_items_stretch) {
  function TEST (line 56) | TEST(YogaTest, align_items_center) {
  function TEST (line 98) | TEST(YogaTest, align_items_flex_start) {
  function TEST (line 140) | TEST(YogaTest, align_items_flex_end) {
  function TEST (line 182) | TEST(YogaTest, align_baseline) {
  function TEST (line 240) | TEST(YogaTest, align_baseline_child) {
  function TEST (line 313) | TEST(YogaTest, align_baseline_child_multiline) {
  function TEST (line 433) | TEST(YogaTest, align_baseline_child_multiline_override) {
  function TEST (line 555) | TEST(YogaTest, align_baseline_child_multiline_no_override_on_secondline) {
  function TEST (line 676) | TEST(YogaTest, align_baseline_child_top) {
  function TEST (line 750) | TEST(YogaTest, align_baseline_child_top2) {
  function TEST (line 824) | TEST(YogaTest, align_baseline_double_nested_child) {
  function TEST (line 912) | TEST(YogaTest, align_baseline_column) {
  function TEST (line 969) | TEST(YogaTest, align_baseline_child_margin) {
  function TEST (line 1044) | TEST(YogaTest, align_baseline_child_padding) {
  function TEST (line 1119) | TEST(YogaTest, align_baseline_multiline) {
  function TEST (line 1238) | TEST(YogaTest, align_baseline_multiline_column) {
  function TEST (line 1358) | TEST(YogaTest, align_baseline_multiline_column2) {
  function TEST (line 1478) | TEST(YogaTest, align_baseline_multiline_row_and_column) {
  function TEST (line 1597) | TEST(YogaTest, align_items_center_child_with_margin_bigger_than_parent) {
  function TEST (line 1656) | TEST(YogaTest, align_items_flex_end_child_with_margin_bigger_than_parent) {
  function TEST (line 1715) | TEST(YogaTest, align_items_center_child_without_margin_bigger_than_paren...
  function TEST (line 1772) | TEST(YogaTest, align_items_flex_end_child_without_margin_bigger_than_par...
  function TEST (line 1829) | TEST(YogaTest, align_center_should_size_based_on_content) {
  function TEST (line 1902) | TEST(YogaTest, align_stretch_should_size_based_on_parent) {
  function TEST (line 1974) | TEST(YogaTest, align_flex_start_with_shrinking_children) {
  function TEST (line 2044) | TEST(YogaTest, align_flex_start_with_stretching_children) {
  function TEST (line 2113) | TEST(YogaTest, align_flex_start_with_shrinking_children_with_stretch) {
  function TEST (line 2183) | TEST(YogaTest, align_flex_end_with_row_reverse) {
  function TEST (line 2243) | TEST(YogaTest, align_stretch_with_row_reverse) {
  function TEST (line 2302) | TEST(YogaTest, align_items_non_stretch_s526008) {

FILE: tests/generated/YGAlignSelfTest.cpp
  function TEST (line 16) | TEST(YogaTest, align_self_center) {
  function TEST (line 58) | TEST(YogaTest, align_self_flex_end) {
  function TEST (line 100) | TEST(YogaTest, align_self_flex_start) {
  function TEST (line 142) | TEST(YogaTest, align_self_flex_end_override_flex_start) {
  function TEST (line 185) | TEST(YogaTest, align_self_baseline) {

FILE: tests/generated/YGAndroidNewsFeed.cpp
  function TEST (line 16) | TEST(YogaTest, android_news_feed) {

FILE: tests/generated/YGAspectRatioTest.cpp
  function TEST (line 16) | TEST(YogaTest, aspect_ratio_does_not_stretch_cross_axis_dim) {
  function TEST (line 170) | TEST(YogaTest, zero_aspect_ratio_behaves_like_auto) {

FILE: tests/generated/YGAutoTest.cpp
  function TEST (line 16) | TEST(YogaTest, auto_width) {
  function TEST (line 88) | TEST(YogaTest, auto_height) {
  function TEST (line 159) | TEST(YogaTest, auto_flex_basis) {
  function TEST (line 230) | TEST(YogaTest, auto_position) {
  function TEST (line 272) | TEST(YogaTest, auto_margin) {

FILE: tests/generated/YGBorderTest.cpp
  function TEST (line 16) | TEST(YogaTest, border_no_size) {
  function TEST (line 41) | TEST(YogaTest, border_container_match_child) {
  function TEST (line 81) | TEST(YogaTest, border_flex_child) {
  function TEST (line 123) | TEST(YogaTest, border_stretch_child) {
  function TEST (line 164) | TEST(YogaTest, border_center_child) {

FILE: tests/generated/YGBoxSizingTest.cpp
  function TEST (line 16) | TEST(YogaTest, box_sizing_content_box_simple) {
  function TEST (line 45) | TEST(YogaTest, box_sizing_border_box_simple) {
  function TEST (line 73) | TEST(YogaTest, box_sizing_content_box_percent) {
  function TEST (line 117) | TEST(YogaTest, box_sizing_border_box_percent) {
  function TEST (line 160) | TEST(YogaTest, box_sizing_content_box_absolute) {
  function TEST (line 204) | TEST(YogaTest, box_sizing_border_box_absolute) {
  function TEST (line 247) | TEST(YogaTest, box_sizing_content_box_comtaining_block) {
  function TEST (line 306) | TEST(YogaTest, box_sizing_border_box_comtaining_block) {
  function TEST (line 364) | TEST(YogaTest, box_sizing_content_box_padding_only) {
  function TEST (line 392) | TEST(YogaTest, box_sizing_content_box_padding_only_percent) {
  function TEST (line 435) | TEST(YogaTest, box_sizing_border_box_padding_only) {
  function TEST (line 462) | TEST(YogaTest, box_sizing_border_box_padding_only_percent) {
  function TEST (line 504) | TEST(YogaTest, box_sizing_content_box_border_only) {
  function TEST (line 532) | TEST(YogaTest, box_sizing_content_box_border_only_percent) {
  function TEST (line 573) | TEST(YogaTest, box_sizing_border_box_border_only) {
  function TEST (line 600) | TEST(YogaTest, box_sizing_border_box_border_only_percent) {
  function TEST (line 640) | TEST(YogaTest, box_sizing_content_box_no_padding_no_border) {
  function TEST (line 667) | TEST(YogaTest, box_sizing_border_box_no_padding_no_border) {
  function TEST (line 693) | TEST(YogaTest, box_sizing_content_box_children) {
  function TEST (line 782) | TEST(YogaTest, box_sizing_border_box_children) {
  function TEST (line 870) | TEST(YogaTest, box_sizing_content_box_siblings) {
  function TEST (line 959) | TEST(YogaTest, box_sizing_border_box_siblings) {
  function TEST (line 1047) | TEST(YogaTest, box_sizing_content_box_max_width) {
  function TEST (line 1106) | TEST(YogaTest, box_sizing_border_box_max_width) {
  function TEST (line 1164) | TEST(YogaTest, box_sizing_content_box_max_height) {
  function TEST (line 1223) | TEST(YogaTest, box_sizing_border_box_max_height) {
  function TEST (line 1281) | TEST(YogaTest, box_sizing_content_box_min_width) {
  function TEST (line 1340) | TEST(YogaTest, box_sizing_border_box_min_width) {
  function TEST (line 1398) | TEST(YogaTest, box_sizing_content_box_min_height) {
  function TEST (line 1457) | TEST(YogaTest, box_sizing_border_box_min_height) {
  function TEST (line 1515) | TEST(YogaTest, box_sizing_content_box_no_height_no_width) {
  function TEST (line 1557) | TEST(YogaTest, box_sizing_border_box_no_height_no_width) {
  function TEST (line 1598) | TEST(YogaTest, box_sizing_content_box_nested) {
  function TEST (line 1663) | TEST(YogaTest, box_sizing_border_box_nested) {
  function TEST (line 1725) | TEST(YogaTest, box_sizing_content_box_nested_alternating) {
  function TEST (line 1806) | TEST(YogaTest, box_sizing_border_box_nested_alternating) {
  function TEST (line 1887) | TEST(YogaTest, box_sizing_content_box_flex_basis_row) {
  function TEST (line 1934) | TEST(YogaTest, box_sizing_border_box_flex_basis_row) {
  function TEST (line 1978) | TEST(YogaTest, box_sizing_content_box_flex_basis_column) {
  function TEST (line 2024) | TEST(YogaTest, box_sizing_border_box_flex_basis_column) {
  function TEST (line 2067) | TEST(YogaTest, box_sizing_content_box_padding_start) {
  function TEST (line 2095) | TEST(YogaTest, box_sizing_border_box_padding_start) {
  function TEST (line 2122) | TEST(YogaTest, box_sizing_content_box_padding_end) {
  function TEST (line 2150) | TEST(YogaTest, box_sizing_border_box_padding_end) {
  function TEST (line 2177) | TEST(YogaTest, box_sizing_content_box_border_start) {
  function TEST (line 2205) | TEST(YogaTest, box_sizing_border_box_border_start) {
  function TEST (line 2232) | TEST(YogaTest, box_sizing_content_box_border_end) {
  function TEST (line 2260) | TEST(YogaTest, box_sizing_border_box_border_end) {

FILE: tests/generated/YGDimensionTest.cpp
  function TEST (line 16) | TEST(YogaTest, wrap_child) {
  function TEST (line 55) | TEST(YogaTest, wrap_grandchild) {

FILE: tests/generated/YGDisplayContentsTest.cpp
  function TEST (line 16) | TEST(YogaTest, test1) {

FILE: tests/generated/YGDisplayTest.cpp
  function TEST (line 16) | TEST(YogaTest, display_none) {
  function TEST (line 72) | TEST(YogaTest, display_none_fixed_size) {
  function TEST (line 129) | TEST(YogaTest, display_none_with_margin) {
  function TEST (line 187) | TEST(YogaTest, display_none_with_child) {
  function TEST (line 280) | TEST(YogaTest, display_none_with_position) {
  function TEST (line 337) | TEST(YogaTest, display_none_with_position_absolute) {
  function TEST (line 380) | TEST(YogaTest, display_contents) {
  function TEST (line 455) | TEST(YogaTest, display_contents_fixed_size) {
  function TEST (line 532) | TEST(YogaTest, display_contents_with_margin) {
  function TEST (line 590) | TEST(YogaTest, display_contents_with_padding) {
  function TEST (line 666) | TEST(YogaTest, display_contents_with_position) {
  function TEST (line 742) | TEST(YogaTest, display_contents_with_position_absolute) {
  function TEST (line 820) | TEST(YogaTest, display_contents_nested) {
  function TEST (line 909) | TEST(YogaTest, display_contents_with_siblings) {

FILE: tests/generated/YGFlexBasisFitContentTest.cpp
  function TEST (line 16) | TEST(YogaTest, container_child_overflows_definite_parent_column) {
  function TEST (line 70) | TEST(YogaTest, container_child_overflows_definite_parent_row) {
  function TEST (line 125) | TEST(YogaTest, container_child_within_bounds_column) {
  function TEST (line 179) | TEST(YogaTest, multiple_container_children_overflow_column) {
  function TEST (line 259) | TEST(YogaTest, scroll_container_column) {
  function TEST (line 313) | TEST(YogaTest, explicit_and_container_children_column) {
  function TEST (line 380) | TEST(YogaTest, flex_basis_in_scroll_content_container) {

FILE: tests/generated/YGFlexDirectionTest.cpp
  function TEST (line 16) | TEST(YogaTest, flex_direction_column_no_height) {
  function TEST (line 83) | TEST(YogaTest, flex_direction_row_no_width) {
  function TEST (line 151) | TEST(YogaTest, flex_direction_column) {
  function TEST (line 219) | TEST(YogaTest, flex_direction_row) {
  function TEST (line 288) | TEST(YogaTest, flex_direction_column_reverse) {
  function TEST (line 357) | TEST(YogaTest, flex_direction_row_reverse) {
  function TEST (line 426) | TEST(YogaTest, flex_direction_row_reverse_margin_left) {
  function TEST (line 496) | TEST(YogaTest, flex_direction_row_reverse_margin_start) {
  function TEST (line 566) | TEST(YogaTest, flex_direction_row_reverse_margin_right) {
  function TEST (line 636) | TEST(YogaTest, flex_direction_row_reverse_margin_end) {
  function TEST (line 706) | TEST(YogaTest, flex_direction_column_reverse_margin_top) {
  function TEST (line 776) | TEST(YogaTest, flex_direction_column_reverse_margin_bottom) {
  function TEST (line 846) | TEST(YogaTest, flex_direction_row_reverse_padding_left) {
  function TEST (line 916) | TEST(YogaTest, flex_direction_row_reverse_padding_start) {
  function TEST (line 986) | TEST(YogaTest, flex_direction_row_reverse_padding_right) {
  function TEST (line 1056) | TEST(YogaTest, flex_direction_row_reverse_padding_end) {
  function TEST (line 1126) | TEST(YogaTest, flex_direction_column_reverse_padding_top) {
  function TEST (line 1196) | TEST(YogaTest, flex_direction_column_reverse_padding_bottom) {
  function TEST (line 1266) | TEST(YogaTest, flex_direction_row_reverse_border_left) {
  function TEST (line 1336) | TEST(YogaTest, flex_direction_row_reverse_border_start) {
  function TEST (line 1406) | TEST(YogaTest, flex_direction_row_reverse_border_right) {
  function TEST (line 1476) | TEST(YogaTest, flex_direction_row_reverse_border_end) {
  function TEST (line 1546) | TEST(YogaTest, flex_direction_column_reverse_border_top) {
  function TEST (line 1616) | TEST(YogaTest, flex_direction_column_reverse_border_bottom) {
  function TEST (line 1686) | TEST(YogaTest, flex_direction_row_reverse_pos_left) {
  function TEST (line 1771) | TEST(YogaTest, flex_direction_row_reverse_pos_start) {
  function TEST (line 1856) | TEST(YogaTest, flex_direction_row_reverse_pos_right) {
  function TEST (line 1941) | TEST(YogaTest, flex_direction_row_reverse_pos_end) {
  function TEST (line 2026) | TEST(YogaTest, flex_direction_column_reverse_pos_top) {
  function TEST (line 2111) | TEST(YogaTest, flex_direction_column_reverse_pos_bottom) {
  function TEST (line 2196) | TEST(YogaTest, flex_direction_row_reverse_inner_pos_left) {
  function TEST (line 2283) | TEST(YogaTest, flex_direction_row_reverse_inner_pos_right) {
  function TEST (line 2370) | TEST(YogaTest, flex_direction_col_reverse_inner_pos_top) {
  function TEST (line 2457) | TEST(YogaTest, flex_direction_col_reverse_inner_pos_bottom) {
  function TEST (line 2544) | TEST(YogaTest, flex_direction_row_reverse_inner_pos_start) {
  function TEST (line 2633) | TEST(YogaTest, flex_direction_row_reverse_inner_pos_end) {
  function TEST (line 2722) | TEST(YogaTest, flex_direction_row_reverse_inner_margin_left) {
  function TEST (line 2809) | TEST(YogaTest, flex_direction_row_reverse_inner_margin_right) {
  function TEST (line 2896) | TEST(YogaTest, flex_direction_col_reverse_inner_margin_top) {
  function TEST (line 2983) | TEST(YogaTest, flex_direction_col_reverse_inner_margin_bottom) {
  function TEST (line 3070) | TEST(YogaTest, flex_direction_row_reverse_inner_
Copy disabled (too large) Download .json
Condensed preview — 465 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (12,105K chars).
[
  {
    "path": ".clang-format",
    "chars": 3207,
    "preview": "AccessModifierOffset: -1\nAlignAfterOpenBracket: AlwaysBreak\nAlignConsecutiveMacros: false\nAlignConsecutiveAssignments: f"
  },
  {
    "path": ".clang-tidy",
    "chars": 7553,
    "preview": "---\nInheritParentConfig: true\nChecks: '>\nbugprone-argument-comment,\nbugprone-assert-side-effect,\nbugprone-bool-pointer-i"
  },
  {
    "path": ".editorconfig",
    "chars": 171,
    "preview": "root = true\n\n[*]\nindent_style = space\nindent_size = 2\ncharset = utf-8\ntrim_trailing_whitespace = true\ninsert_final_newli"
  },
  {
    "path": ".eslintrc.cjs",
    "chars": 1992,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": ".github/ISSUE_TEMPLATE.md",
    "chars": 591,
    "preview": "# Report\n\n- [ ] I have searched [existing issues](https://github.com/facebook/yoga/issues) and this is not a duplicate\n\n"
  },
  {
    "path": ".github/actions/black/action.yml",
    "chars": 541,
    "preview": "name: Black Formatter\ninputs:\n  directory:\n    description: Directory to Lint\n    required: true\n  version:\n    descript"
  },
  {
    "path": ".github/actions/cache-emsdk/action.yml",
    "chars": 339,
    "preview": "name: Cache the installed copy of emsdk and its build artifacts\n\nruns:\n  using: \"composite\"\n  steps:\n    - name: Cache e"
  },
  {
    "path": ".github/actions/install-ninja/action.yml",
    "chars": 326,
    "preview": "name: Install Ninja\n\nruns:\n  using: \"composite\"\n  steps:\n    - name: Install ninja (Linux)\n      if: ${{ runner.os == 'L"
  },
  {
    "path": ".github/actions/setup-android/action.yml",
    "chars": 277,
    "preview": "name: Setup Android environment\n\nruns:\n  using: \"composite\"\n  steps:\n    - name: Select Java Version\n      uses: actions"
  },
  {
    "path": ".github/actions/setup-apple/action.yml",
    "chars": 149,
    "preview": "name: Setup Apple envirionment\n\nruns:\n  using: \"composite\"\n  steps:\n    - uses: maxim-lobanov/setup-xcode@v1\n      with:"
  },
  {
    "path": ".github/actions/setup-cpp/action.yml",
    "chars": 999,
    "preview": "name: Setup C++ envirionment\ninputs:\n  toolchain:\n    description: Compiler toolchain to use (Clang, GCC, or MSVC)\n    r"
  },
  {
    "path": ".github/actions/setup-js/action.yml",
    "chars": 421,
    "preview": "name: Setup JavaScript envirionment\n\nruns:\n  using: \"composite\"\n  steps:\n    - name: Setup Node environment\n      uses: "
  },
  {
    "path": ".github/workflows/publish-android-release.yml",
    "chars": 1230,
    "preview": "name: Publish Android Release\n\non:\n  push:\n    tags:\n      - '*'\n  workflow_dispatch:\n\njobs:\n  publish:\n    name: Publis"
  },
  {
    "path": ".github/workflows/publish-android-snashot.yml",
    "chars": 937,
    "preview": "name: Publish Android Snapshot\n\non:\n  push:\n    branches:\n      - main\n  workflow_dispatch:\n\njobs:\n  publish:\n    name: "
  },
  {
    "path": ".github/workflows/publish-npm-release.yml",
    "chars": 499,
    "preview": "name: Publish NPM Release\n\non:\n  push:\n    tags:\n      - '*'\n  workflow_dispatch:\n\njobs:\n  publish:\n    name: Publish to"
  },
  {
    "path": ".github/workflows/validate-android.yml",
    "chars": 521,
    "preview": "name: Validate Android\n\non:\n  pull_request:\n  push:\n    branches:\n      - main\n      - 'release-*'\n  workflow_dispatch:\n"
  },
  {
    "path": ".github/workflows/validate-cpp.yml",
    "chars": 2444,
    "preview": "name: Validate C++\n\non:\n  pull_request:\n  push:\n    branches:\n      - main\n      - 'release-*'\n  workflow_dispatch:\n\nenv"
  },
  {
    "path": ".github/workflows/validate-js.yml",
    "chars": 2371,
    "preview": "name: Validate JavaScript\n\non:\n  pull_request:\n  push:\n    branches:\n      - main\n      - 'release-*'\n  workflow_dispatc"
  },
  {
    "path": ".github/workflows/validate-swiftpm.yml",
    "chars": 414,
    "preview": "name: Validate SwiftPM\n\non:\n  pull_request:\n  push:\n    branches:\n      - main\n      - 'release-*'\n  workflow_dispatch:\n"
  },
  {
    "path": ".github/workflows/validate-tests.yml",
    "chars": 650,
    "preview": "name: Validate Tests\n\non:\n  pull_request:\n  push:\n    branches:\n      - main\n  workflow_dispatch:\n\njobs:\n  validate:\n   "
  },
  {
    "path": ".github/workflows/validate-website.yml",
    "chars": 723,
    "preview": "name: Validate Website\n\non:\n  pull_request:\n    branches:\n      - main\n  push:\n    branches:\n      - main\n  workflow_dis"
  },
  {
    "path": ".gitignore",
    "chars": 1054,
    "preview": ".DS_STORE\n\n/buck-cache/\n/buck-out/\n/.buckconfig.local\n/.buckd\n/gentest/test.html\n.buck-java11\nnode_modules\n\n# Jekyll\n/.s"
  },
  {
    "path": ".prettierignore",
    "chars": 43,
    "preview": "**/binaries/**\n**/build/**\n**/generated/**\n"
  },
  {
    "path": ".prettierrc.js",
    "chars": 347,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": ".vscode/extensions.json",
    "chars": 120,
    "preview": "{\n  \"recommendations\": [\n    \"ms-vscode.cpptools\",\n    \"EditorConfig.EditorConfig\",\n    \"dbaeumer.vscode-eslint\",\n  ]\n}\n"
  },
  {
    "path": ".vscode/launch.json",
    "chars": 767,
    "preview": "{\n  // Use IntelliSense to learn about possible attributes.\n  // Hover to view descriptions of existing attributes.\n  //"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 377,
    "preview": "{\n  \"editor.formatOnSave\": true,\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll.eslint\": true\n  },\n  \"eslint.format."
  },
  {
    "path": ".vscode/tasks.json",
    "chars": 740,
    "preview": "{\n  // See https://go.microsoft.com/fwlink/?LinkId=733558\n  // for the documentation about the tasks.json format\n  \"vers"
  },
  {
    "path": "CMakeLists.txt",
    "chars": 1527,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license found in the"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3355,
    "preview": "# Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributors and"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1444,
    "preview": "# Contributing to yoga\nWe want to make contributing to this project as easy and transparent as\npossible.\n\n## Code of Con"
  },
  {
    "path": "LICENSE",
    "chars": 1086,
    "preview": "MIT License\n\nCopyright (c) Facebook, Inc. and its affiliates.\n\nPermission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "LICENSE-examples",
    "chars": 585,
    "preview": "The examples provided by Facebook are for non-commercial testing and evaluation\npurposes only. Facebook reserves all rig"
  },
  {
    "path": "Package.swift",
    "chars": 800,
    "preview": "// swift-tools-version:5.0\n// The swift-tools-version declares the minimum version of Swift required to build this packa"
  },
  {
    "path": "README.md",
    "chars": 1848,
    "preview": "# Yoga [![npm](https://img.shields.io/npm/v/yoga-layout.svg)](https://www.npmjs.com/package/yoga-layout) [![Maven Centra"
  },
  {
    "path": "benchmark/Benchmark.cpp",
    "chars": 14030,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "benchmark/Benchmark.h",
    "chars": 968,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "benchmark/CMakeLists.txt",
    "chars": 867,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license found in the"
  },
  {
    "path": "benchmark/TreeDeserialization.cpp",
    "chars": 6732,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "benchmark/TreeDeserialization.h",
    "chars": 1312,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "benchmark/YGBenchmark.c",
    "chars": 5614,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "benchmark/benchmark",
    "chars": 483,
    "preview": "#!/bin/sh\n# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license fo"
  },
  {
    "path": "benchmark/captures/chat-mac.json",
    "chars": 3084804,
    "preview": "{\n  \"layout-inputs\": {\n    \"available-height\": 768.0,\n    \"available-width\": 1024.0,\n    \"owner-direction\": \"ltr\"\n  },\n "
  },
  {
    "path": "benchmark/captures/feed-android.json",
    "chars": 983315,
    "preview": "{\n  \"layout-inputs\": {\n    \"available-height\": 604.3333129882813,\n    \"available-width\": 360.0,\n    \"owner-direction\": \""
  },
  {
    "path": "benchmark/captures/profile-ios.json",
    "chars": 125894,
    "preview": "{\n  \"layout-inputs\": {\n    \"available-height\": 821.0,\n    \"available-width\": 430.0,\n    \"owner-direction\": \"ltr\"\n  },\n  "
  },
  {
    "path": "benchmark/captures/rendering-sample-mac.json",
    "chars": 84218,
    "preview": "{\n  \"layout-inputs\": {\n    \"available-height\": 720.0,\n    \"available-width\": 1080.0,\n    \"owner-direction\": \"ltr\"\n  },\n "
  },
  {
    "path": "build.gradle",
    "chars": 1341,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "build_fuzz_tests",
    "chars": 697,
    "preview": "#!/usr/bin/env sh\n# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT li"
  },
  {
    "path": "capture/CMakeLists.txt",
    "chars": 749,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license found in the"
  },
  {
    "path": "capture/CaptureTree.cpp",
    "chars": 3040,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "capture/CaptureTree.h",
    "chars": 1167,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "capture/NodeToString.cpp",
    "chars": 11336,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "capture/NodeToString.h",
    "chars": 845,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "cmake/project-defaults.cmake",
    "chars": 1396,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license found in the"
  },
  {
    "path": "cmake/yoga-config.cmake.in",
    "chars": 283,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license found in the"
  },
  {
    "path": "enums.py",
    "chars": 12383,
    "preview": "#!/usr/bin/env fbpython\n# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the "
  },
  {
    "path": "fuzz/CMakeLists.txt",
    "chars": 728,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license found in the"
  },
  {
    "path": "fuzz/FuzzLayout.cpp",
    "chars": 1673,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "gentest/babel.config.cjs",
    "chars": 269,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/fixtures/YGAbsolutePositionTest.html",
    "chars": 8270,
    "preview": "<div id=\"absolute_layout_width_height_start_top\" style=\"width: 100px; height: 100px;\">\n  <div style=\"width:10px; height:"
  },
  {
    "path": "gentest/fixtures/YGAlignContentTest.html",
    "chars": 25637,
    "preview": "<!-- ALIGN CONTENT: FLEX-START -->\n\n<div id=\"align_content_flex_start_nowrap\" style=\"width: 140px; height: 120px; flex-d"
  },
  {
    "path": "gentest/fixtures/YGAlignItemsTest.html",
    "chars": 10023,
    "preview": "<div id=\"align_items_stretch\" style=\"width: 100px; height: 100px;\">\n  <div style=\"height: 10px;\"></div>\n</div>\n\n<div id="
  },
  {
    "path": "gentest/fixtures/YGAlignSelfTest.html",
    "chars": 919,
    "preview": "<div id=\"align_self_center\" style=\"width:100px; height: 100px;\">\n  <div style=\"height: 10px; width: 10px; align-self: ce"
  },
  {
    "path": "gentest/fixtures/YGAndroidNewsFeed.html",
    "chars": 2782,
    "preview": "<div id=\"android_news_feed\" layout=\"width: 1080; height: 444; top: 0; left: 0;\" style=\"align-content: stretch; flex-shri"
  },
  {
    "path": "gentest/fixtures/YGAspectRatioTest.html",
    "chars": 718,
    "preview": "<!-- TODO: aspect-ratio behavior is inconsistent with Web -->\n<div id=\"aspect_ratio_does_not_stretch_cross_axis_dim\" dat"
  },
  {
    "path": "gentest/fixtures/YGAutoTest.html",
    "chars": 919,
    "preview": "<div id=\"auto_width\" style=\"width: auto; height: 50px; flex-direction: row;\">\n  <div style=\"width: 50px; height: 50px\"><"
  },
  {
    "path": "gentest/fixtures/YGBorderTest.html",
    "chars": 744,
    "preview": "<div id=\"border_no_size\" style=\"border-width: 10px;\">\n</div>\n\n<div id=\"border_container_match_child\" style=\"border-width"
  },
  {
    "path": "gentest/fixtures/YGBoxSizingTest.html",
    "chars": 10777,
    "preview": "<div id=\"box_sizing_content_box_simple\"\n  style=\"width: 100px; height: 100px; padding: 5px; border-width: 10px; box-sizi"
  },
  {
    "path": "gentest/fixtures/YGDimensionTest.html",
    "chars": 185,
    "preview": "<div id=\"wrap_child\">\n  <div style=\"width: 100px; height: 100px;\"></div>\n</div>\n\n<div id=\"wrap_grandchild\">\n  <div>\n    "
  },
  {
    "path": "gentest/fixtures/YGDisplayTest.html",
    "chars": 3386,
    "preview": "<div id=\"display_none\" style=\"width: 100px; height: 100px; flex-direction: row;\">\n <div style=\"flex-grow: 1;\"></div>\n <d"
  },
  {
    "path": "gentest/fixtures/YGFlexBasisFitContentTest.html",
    "chars": 2346,
    "preview": "<!-- Container child with content overflowing definite column parent.\n     Flex basis uses content size regardless of Ex"
  },
  {
    "path": "gentest/fixtures/YGFlexDirectionTest.html",
    "chars": 16507,
    "preview": "<div id=\"flex_direction_column_no_height\" style=\"width: 100px\">\n  <div style=\"height: 10px;\"></div>\n  <div style=\"height"
  },
  {
    "path": "gentest/fixtures/YGFlexTest.html",
    "chars": 2243,
    "preview": "<div id=\"flex_basis_flex_grow_column\" style=\"width: 100px; height: 100px;\">\n  <div style=\"flex-basis: 50px; flex-grow: 1"
  },
  {
    "path": "gentest/fixtures/YGFlexWrapTest.html",
    "chars": 7564,
    "preview": "<div data-disabled=\"true\" id=\"wrap_column\" style=\"height: 100px; flex-wrap: wrap\">\n  <div style=\"height: 30px; width: 30"
  },
  {
    "path": "gentest/fixtures/YGGapTest.html",
    "chars": 11634,
    "preview": "<div id=\"column_gap_flexible\" style=\"flex-direction: row; width: 80px; height: 100px; column-gap: 10px; row-gap: 20px;\">"
  },
  {
    "path": "gentest/fixtures/YGIntrinsicSizeTest.html",
    "chars": 26220,
    "preview": "<div id=\"contains_inner_text_long_word\" style=\"width:2000px;height:2000px;align-items: flex-start;\">\n    <div style=\"fle"
  },
  {
    "path": "gentest/fixtures/YGJustifyContentTest.html",
    "chars": 8060,
    "preview": "<div id=\"justify_content_row_flex_start\" style=\"width: 102px; height: 102px; flex-direction: row; justify-content: flex-"
  },
  {
    "path": "gentest/fixtures/YGMarginTest.html",
    "chars": 7288,
    "preview": "<div id=\"margin_start\" style=\"width: 100px; height: 100px; flex-direction: row;\">\n  <div style=\"width: 10px; margin-inli"
  },
  {
    "path": "gentest/fixtures/YGMinMaxDimensionTest.html",
    "chars": 4884,
    "preview": "<div id=\"max_width\" style=\"width: 100px; height: 100px;\">\n  <div style=\"height: 10px; max-width: 50px;\"></div>\n</div>\n\n<"
  },
  {
    "path": "gentest/fixtures/YGPaddingTest.html",
    "chars": 1102,
    "preview": "<div id=\"padding_no_size\" style=\"padding: 10px;\">\n</div>\n\n<div id=\"padding_container_match_child\" style=\"padding: 10px;\""
  },
  {
    "path": "gentest/fixtures/YGPercentageTest.html",
    "chars": 6607,
    "preview": "<div id=\"percentage_width_height\" style=\"width: 200px; height: 200px; flex-direction: row;\">\n  <div style=\"width: 30%; h"
  },
  {
    "path": "gentest/fixtures/YGRoundingTest.html",
    "chars": 3843,
    "preview": "<div id=\"rounding_flex_basis_flex_grow_row_width_of_100\" style=\"width: 100px; height: 100px; flex-direction: row;\">\n <di"
  },
  {
    "path": "gentest/fixtures/YGSizeOverflowTest.html",
    "chars": 549,
    "preview": "<div id=\"nested_overflowing_child\" style=\"height: 100px; width: 100px;\">\n  <div>\n    <div style=\"height: 200px; width: 2"
  },
  {
    "path": "gentest/fixtures/YGStaticPositionTest.html",
    "chars": 32822,
    "preview": "<!-- The top level divs in each test are needed so that each div overlays each\n     other and the top measurement is acc"
  },
  {
    "path": "gentest/gentest-driver.ts",
    "chars": 4126,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/gentest-validate.ts",
    "chars": 1155,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/package.json",
    "chars": 717,
    "preview": "{\n  \"name\": \"gentest\",\n  \"version\": \"0.0.0\",\n  \"private\": true,\n  \"scripts\": {\n    \"gentest\": \"node --disable-warning=Ex"
  },
  {
    "path": "gentest/scripts/gentest-validate.ts",
    "chars": 1164,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/signedsource.d.ts",
    "chars": 237,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/src/ChromePool.ts",
    "chars": 2066,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/src/CssToYoga.ts",
    "chars": 28594,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/src/buildLayoutTree.ts",
    "chars": 3050,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/src/cli.ts",
    "chars": 4992,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/src/emitters/CppEmitter.ts",
    "chars": 11563,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/src/emitters/Emitter.ts",
    "chars": 6279,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/src/emitters/JavaEmitter.ts",
    "chars": 13707,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/src/emitters/JavascriptEmitter.ts",
    "chars": 10008,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/src/types.ts",
    "chars": 865,
    "preview": "/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found"
  },
  {
    "path": "gentest/test-template.html",
    "chars": 767,
    "preview": "<!DOCTYPE html>\n<html>\n<head>\n  <meta charset=\"UTF-8\">\n  <style>\n    @font-face {\n      font-family: 'Ahem';\n      src: "
  },
  {
    "path": "gentest/tsconfig.json",
    "chars": 274,
    "preview": "{\n  \"compilerOptions\": {\n    \"allowImportingTsExtensions\": true,\n    \"esModuleInterop\": true,\n    \"lib\": [\"es2023\"],\n   "
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "chars": 252,
    "preview": "distributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributi"
  },
  {
    "path": "gradle.properties",
    "chars": 336,
    "preview": "#\n#  Copyright (c) Facebook, Inc. and its affiliates.\n#\n#  This source code is licensed under the MIT license found in t"
  },
  {
    "path": "gradlew",
    "chars": 8729,
    "preview": "#!/bin/sh\n\n#\n# Copyright © 2015-2021 the original authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "gradlew.bat",
    "chars": 2966,
    "preview": "@rem\r\n@rem Copyright 2015 the original author or authors.\r\n@rem\r\n@rem Licensed under the Apache License, Version 2.0 (th"
  },
  {
    "path": "java/AndroidManifest.xml",
    "chars": 331,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<!--\n  Copyright (c) Meta Platforms, Inc. and affiliates.\n\n  This source code is"
  },
  {
    "path": "java/CMakeLists.txt",
    "chars": 759,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license found in the"
  },
  {
    "path": "java/build.gradle.kts",
    "chars": 3429,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/LayoutPassReason.kt",
    "chars": 846,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaAlign.java",
    "chars": 1086,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaBaselineFunction.kt",
    "chars": 493,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaBoxSizing.java",
    "chars": 692,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaConfig.kt",
    "chars": 830,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaConfigFactory.kt",
    "chars": 326,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaConfigJNIBase.kt",
    "chars": 2150,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaConfigJNIFinalizer.kt",
    "chars": 878,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaConstants.kt",
    "chars": 554,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaDimension.java",
    "chars": 672,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaDirection.kt",
    "chars": 655,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaDisplay.java",
    "chars": 744,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaEdge.java",
    "chars": 939,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaErrata.java",
    "chars": 1029,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaExperimentalFeature.java",
    "chars": 760,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaFlexDirection.java",
    "chars": 790,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaGridTrackType.java",
    "chars": 802,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaGutter.java",
    "chars": 695,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaJustify.java",
    "chars": 1044,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaLayoutType.kt",
    "chars": 666,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaLogLevel.java",
    "chars": 903,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaLogger.kt",
    "chars": 536,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaMeasureFunction.kt",
    "chars": 501,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaMeasureMode.java",
    "chars": 732,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaMeasureOutput.kt",
    "chars": 949,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaNative.kt",
    "chars": 12445,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaNode.kt",
    "chars": 6732,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaNodeFactory.kt",
    "chars": 413,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaNodeJNIBase.java",
    "chars": 26406,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaNodeJNIFinalizer.kt",
    "chars": 959,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaNodeType.java",
    "chars": 669,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaOverflow.java",
    "chars": 715,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaPositionType.java",
    "chars": 733,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaProps.kt",
    "chars": 3865,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaStyleInputs.kt",
    "chars": 1988,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaUnit.java",
    "chars": 893,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaValue.kt",
    "chars": 1809,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/YogaWrap.java",
    "chars": 711,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/com/facebook/yoga/annotations/DoNotStrip.kt",
    "chars": 512,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/gen/com/facebook/yoga/BuildConfig.java",
    "chars": 450,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/LayoutContext.cpp",
    "chars": 768,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/LayoutContext.h",
    "chars": 821,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/ScopedGlobalRef.h",
    "chars": 4388,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/ScopedLocalRef.h",
    "chars": 4219,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/YGJNI.h",
    "chars": 1719,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/YGJNIVanilla.cpp",
    "chars": 39646,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/YGJNIVanilla.h",
    "chars": 272,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/YGJTypesVanilla.h",
    "chars": 1450,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/YogaJniException.cpp",
    "chars": 1447,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/YogaJniException.h",
    "chars": 940,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/common.cpp",
    "chars": 3376,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/common.h",
    "chars": 2176,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/corefunctions.cpp",
    "chars": 2189,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/corefunctions.h",
    "chars": 1544,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/macros.h",
    "chars": 513,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/jni/yogajni.cpp",
    "chars": 452,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/proguard-rules.pro",
    "chars": 390,
    "preview": "# Copyright (c) Meta Platforms, Inc. and affiliates.\n#\n# This source code is licensed under the MIT license found in the"
  },
  {
    "path": "java/res/values/strings.xml",
    "chars": 293,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n<!--\n  Copyright (c) Facebook, Inc. and its affiliates.\n  \n  This source code is"
  },
  {
    "path": "java/tests/com/facebook/yoga/TestParametrization.java",
    "chars": 863,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/com/facebook/yoga/YGAlignBaselineTest.java",
    "chars": 4332,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/com/facebook/yoga/YogaExceptionTest.java",
    "chars": 5046,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/com/facebook/yoga/YogaLoggerTest.java",
    "chars": 2577,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/com/facebook/yoga/YogaNodeStylePropertiesTest.java",
    "chars": 27086,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/com/facebook/yoga/YogaNodeTest.java",
    "chars": 11893,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/com/facebook/yoga/YogaValueTest.java",
    "chars": 828,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/com/facebook/yoga/utils/TestUtils.java",
    "chars": 3091,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGAbsolutePositionTest.java",
    "chars": 66791,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGAlignContentTest.java",
    "chars": 224112,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGAlignItemsTest.java",
    "chars": 98311,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGAlignSelfTest.java",
    "chars": 10279,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGAndroidNewsFeed.java",
    "chars": 18658,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGAspectRatioTest.java",
    "chars": 10409,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGAutoTest.java",
    "chars": 12306,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGBorderTest.java",
    "chars": 8174,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGBoxSizingTest.java",
    "chars": 88567,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGDimensionTest.java",
    "chars": 4552,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGDisplayContentsTest.java",
    "chars": 4119,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGDisplayTest.java",
    "chars": 41934,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGFlexBasisFitContentTest.java",
    "chars": 18824,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGFlexDirectionTest.java",
    "chars": 180813,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGFlexTest.java",
    "chars": 24507,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGFlexWrapTest.java",
    "chars": 79236,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGGapTest.java",
    "chars": 123637,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGIntrinsicSizeTest.java",
    "chars": 135847,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGJustifyContentTest.java",
    "chars": 80924,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGMarginTest.java",
    "chars": 69866,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGMinMaxDimensionTest.java",
    "chars": 51784,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGPaddingTest.java",
    "chars": 11468,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGPercentageTest.java",
    "chars": 63851,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGRoundingTest.java",
    "chars": 44377,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGSizeOverflowTest.java",
    "chars": 7629,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/tests/generated/com/facebook/yoga/YGStaticPositionTest.java",
    "chars": 292401,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  },
  {
    "path": "java/yogajni.version",
    "chars": 238,
    "preview": "/*\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found "
  }
]

// ... and 265 more files (download for full content)

About this extraction

This page contains the full source code of the facebook/yoga GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 465 files (11.2 MB), approximately 3.0M tokens, and a symbol index with 3304 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!