control-freak-ide/server/nodejs/util/docscripts/lib/parser2/JavaScriptOr.php
plastic-hub-dev-node-saturn 538369cff7 latest
2021-05-12 18:35:18 +02:00

37 lines
770 B
PHP

<?php
class JavaScriptOr extends JavaScriptVariable {
protected $ors;
public function __construct($ors) {
if (!is_array($ors)) {
throw new Exception('JavaScriptOr expects to be passed an array');
}
$this->ors = $ors;
}
public function __destruct() {
$this->mem_flush('ors');
}
public function types() {
$mapped = array();
foreach ($this->ors as $item) {
$mapped[] = $item->type();
}
return $mapped;
}
public function type() {
$types = array_diff($this->types(), array('variable'));
if (count($types) == 1) {
return array_pop($types);
}
// Assume that if one of them is a boolean, they all are
if (in_array('bool', $types)) {
return 'bool';
}
return 'Object';
}
}