Merge pull request #2087 from ethereum/Yul

Select Yul compiler
pull/3094/head
yann300 6 years ago committed by GitHub
commit a7cf3acf5c
  1. 10
      src/app/tabs/compileTab/compileTab.js
  2. 16
      src/app/tabs/compileTab/compilerContainer.js

@ -46,14 +46,20 @@ class CompileTab {
this.compiler.setEvmVersion(this.evmVersion)
}
/**
* 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

Loading…
Cancel
Save