Summary: - As mentioned in the title, this PR adds Javascript support to Yoga. Two different builds are included in this PR thanks to [nbind](https://github.com/charto/nbind), which conveniently allow to target both Node.js' native addons and browser environments via asmjs with approximately the same codebase. That should solve #215. - All tests successfully pass on both codepaths. You can run `yarn test:all` inside the `javascript` directory to test it. - Because of a bug in nbind, the [following PR](https://github.com/charto/nbind/pull/57) needs to be merged and a new version released before this one can be safely merged as well. - I had to use `double` types instead of `float` in the C++ bindings because of an Emscripten [bug](https://github.com/kripken/emscripten/issues/3592) where symbols aren't correctly exported when using floats. - There's some tweaks to do before this PR is 100% ready to merge, but I wanted to have your opinion first. What do you think of this? --- To do: - [x] Ensure th Closes https://github.com/facebook/yoga/pull/304 Reviewed By: mikearmstrong001 Differential Revision: D4375187 Pulled By: emilsjolander fbshipit-source-id: 47248558a9506b7c512b5ef281cd12fe1a60cab7
72 lines
1.2 KiB
HTML
72 lines
1.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>%s</title>
|
|
<script src="gentest.js"></script>
|
|
<script src="gentest-cpp.js"></script>
|
|
<script src="gentest-java.js"></script>
|
|
<script src="gentest-cs.js"></script>
|
|
<script src="gentest-javascript.js"></script>
|
|
|
|
<style>
|
|
body {
|
|
padding: 0;
|
|
margin: 0;
|
|
font-family: Helvetica;
|
|
font-size: 14px;
|
|
font-weight: 100;
|
|
}
|
|
|
|
div, span {
|
|
box-sizing: border-box;
|
|
position: relative;
|
|
border: 0 solid black;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: flex;
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
align-content: flex-start;
|
|
justify-content: flex-start;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
body > * {
|
|
position: absolute;
|
|
}
|
|
|
|
#ltr-container > * {
|
|
position: absolute;
|
|
direction: ltr;
|
|
}
|
|
|
|
#rtl-container > * {
|
|
position: absolute;
|
|
direction: rtl;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div id='ltr-container'>
|
|
|
|
%s
|
|
|
|
<div id='default'></div>
|
|
</div>
|
|
<div id='rtl-container'>
|
|
|
|
%s
|
|
|
|
<div id='default'></div>
|
|
</div>
|
|
|
|
<div>
|
|
|
|
%s
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|