mirror of
https://github.com/Ekokumppanit/ystavakylaecard.git
synced 2026-02-13 22:47:10 +00:00
http://getsparks.org/packages/assets/versions/HEAD/show Creates our minified and combined .js and .css files
127 lines
2.6 KiB
PHP
Executable File
127 lines
2.6 KiB
PHP
Executable File
<?php
|
|
|
|
namespace CoffeeScript;
|
|
|
|
class yy_Obj extends yy_Base
|
|
{
|
|
public $children = array('properties');
|
|
|
|
function constructor($props, $generated = FALSE)
|
|
{
|
|
$this->generated = $generated;
|
|
|
|
$this->properties = $props ? $props : array();
|
|
$this->objects = $this->properties;
|
|
|
|
return $this;
|
|
}
|
|
|
|
function assigns($name)
|
|
{
|
|
foreach ($this->properties as $prop)
|
|
{
|
|
if ($prop->assigns($name))
|
|
{
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
function compile_node($options)
|
|
{
|
|
$props = $this->properties;
|
|
$prop_names = array();
|
|
|
|
foreach ($this->properties as $prop)
|
|
{
|
|
if ($prop->is_complex())
|
|
{
|
|
$prop = isset($prop->variable) ? $prop->variable : NULL;
|
|
}
|
|
|
|
if ($prop)
|
|
{
|
|
$prop_name = $prop->unwrap_all();
|
|
$prop_name = isset($prop_name->value) ? $prop_name->value.'' : NULL;
|
|
|
|
if (in_array($prop_name, $prop_names))
|
|
{
|
|
throw new SyntaxError('multiple object literal properties named "'.$prop_name.'"');
|
|
}
|
|
|
|
$prop_names[] = $prop_name;
|
|
}
|
|
}
|
|
|
|
if ( ! count($props))
|
|
{
|
|
return ($this->front ? '({})' : '{}');
|
|
}
|
|
|
|
if ($this->generated)
|
|
{
|
|
foreach ($props as $node)
|
|
{
|
|
if ($node instanceof yy_Value)
|
|
{
|
|
throw new Error('cannot have an implicit value in an implicit object');
|
|
}
|
|
}
|
|
}
|
|
|
|
$idt = $options['indent'] .= TAB;
|
|
$last_non_com = $this->last_non_comment($this->properties);
|
|
|
|
foreach ($props as $i => $prop)
|
|
{
|
|
if ($i === count($props) - 1)
|
|
{
|
|
$join = '';
|
|
}
|
|
else if ($prop === $last_non_com || $prop instanceof yy_Comment)
|
|
{
|
|
$join = "\n";
|
|
}
|
|
else
|
|
{
|
|
$join = ",\n";
|
|
}
|
|
|
|
$indent = $prop instanceof yy_Comment ? '' : $idt;
|
|
|
|
if ($prop instanceof yy_Value && (isset($prop->this) && $prop->this))
|
|
{
|
|
$prop = yy('Assign', $prop->properties[0]->name, $prop, 'object');
|
|
}
|
|
|
|
if ( ! ($prop instanceof yy_Comment))
|
|
{
|
|
if ( ! ($prop instanceof yy_Assign))
|
|
{
|
|
$prop = yy('Assign', $prop, $prop, 'object');
|
|
}
|
|
|
|
if (isset($prop->variable->base))
|
|
{
|
|
$prop->variable->base->as_key = TRUE;
|
|
}
|
|
else
|
|
{
|
|
$prop->variable->as_key = TRUE;
|
|
}
|
|
}
|
|
|
|
$props[$i] = $indent.$prop->compile($options, LEVEL_TOP).$join;
|
|
}
|
|
|
|
$props = implode('', $props);
|
|
$obj = '{'.($props ? "\n{$props}\n{$this->tab}" : '').'}';
|
|
|
|
return ($this->front ? "({$obj})" : $obj);
|
|
}
|
|
}
|
|
|
|
?>
|