Unverified Commit 0674d266 authored by yann300's avatar yann300 Committed by GitHub

Merge pull request #2087 from ethereum/Yul

Select Yul compiler
parents f4d9507c c1e3fbf9
......@@ -47,13 +47,19 @@ class CompileTab {
}
/**
* Set the compiler to using Solidity or Yul (default to Solidity)
* @params lang {'Solidity' | 'Yul'} ...
*/
setLanguage (lang) {
this.compiler.setLanguage(lang)
}
/**
* Compile a specific file of the file manager
* @param {string} target the path to the file to compile
*/
compileFile (target) {
if (!target) throw new Error('No target provided for compiliation')
if (!/\.sol/.exec(target)) throw new Error(`${target} is not a solidity file. It cannot be compiled with solidity compiler`)
// only compile *.sol file.
const provider = this.fileManager.fileProviderOf(target)
if (!provider) throw new Error(`cannot compile ${target}. Does not belong to any explorer`)
return new Promise((resolve, reject) => {
......
......@@ -175,6 +175,17 @@ class CompilerContainer {
${this._view.versionSelector}
</div>
</div>
<div class="row w-100 no-gutters mb-2">
<div class="col-sm-4">
<label class="input-group-text border-0" for="languageSelector">Language</label>
</div>
<div class="col-sm-8">
<select onchange="${this.onchangeLanguage.bind(this)}" class="custom-select" id="languageSelector">
<option>Solidity</option>
<option>Yul</option>
</select>
</div>
</div>
<div class="row w-100 no-gutters">
<div class="col-sm-4">
<label class="input-group-text border-0" for="evmVersionSelector">EVM Version</label>
......@@ -227,6 +238,11 @@ class CompilerContainer {
this.compileTabLogic.runCompiler()
}
onchangeLanguage (event) {
this.compileTabLogic.setLanguage(event.target.value)
this.compile()
}
onchangeEvmVersion (_) {
let s = this._view.evmVersionSelector
let v = s.value
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment