function CompoundNestedPassthrough (parent_computable, field_name) {
  this._field_name = field_name;
  this._safe_property_access = false;

  var parent_computable_output_type = parent_computable.get_output_type();

  if (!(parent_computable_output_type instanceof IRCompoundType)) {
    throw new CoralTypeError("Compound nested passthrough is only for extracting fields from a compound output", parent_computable_output_type, new IRCompoundType());
  }

  var output_type = type_at_path(parent_computable_output_type, field_name);

  if (output_type instanceof IRVoidType) {
    throw new CoralTypeError("Field, '"+field_name+"' is not present in given compound", new IRVoidType());
  }

  AbstractPassthrough.call(this, [parent_computable], output_type);
}
/**
 * CompoundNestedPassthrough is a special type of Computable that represents a
 * field on a compound that has been placed on to the scope context.
 *
 * For example, with DOM elements that output after and inner placements,
 * instead of placing an object at a symbol in the scope and then using
 * symbol.inner and symbol.after to access the field every time it is needed,
 * we can instead place the after and inner placements directly on to the
 * scope context and avoid the overhead of creating a new object to hold them.
 *
 * @constructor
 * @extends AbstractPassthrough
 * @param {Computable} parent_computable
 * @param {string} field_name
 */
CompoundNestedPassthrough is a special type of Computable that represents a
field on a compound that has been placed on to the scope context.

For example, with DOM elements that output after and inner placements,
instead of placing an object at a symbol in the scope and then using
symbol.inner and symbol.after to access the field every time it is needed,
we can instead place the after and inner placements directly on to the
scope context and avoid the overhead of creating a new object to hold them.


CompoundNestedPassthrough is a special type of Computable that represents a field on a compound that has been placed on to the scope context . For example with DOM elements that output after and inner placements instead of placing an object at a symbol in the scope and then using symbol . inner and symbol . after to access the field every time it is needed we can instead place the after and inner placements directly on to the scope context and avoid the overhead of creating a new object to hold them .
function CompoundNestedPassthrough (parent_computable, field_name) {
  this._field_name = field_name;
  this._safe_property_access = false;
  var parent_computable_output_type = parent_computable.get_output_type();
  if (!(parent_computable_output_type instanceof IRCompoundType)) {
    throw new CoralTypeError("Compound nested passthrough is only for extracting fields from a compound output", parent_computable_output_type, new IRCompoundType());
  }
  var output_type = type_at_path(parent_computable_output_type, field_name);
  if (output_type instanceof IRVoidType) {
    throw new CoralTypeError("Field, '"+field_name+"' is not present in given compound", new IRVoidType());
  }
  AbstractPassthrough.call(this, [parent_computable], output_type);
}
function CompoundNestedPassthrough ( parent_computable , field_name ) { this . _field_name = field_name ; this . _safe_property_access = false ; var parent_computable_output_type = parent_computable . get_output_type ( ) ; if ( ! ( parent_computable_output_type instanceof IRCompoundType ) ) { throw new CoralTypeError ( "Compound nested passthrough is only for extracting fields from a compound output" , parent_computable_output_type , new IRCompoundType ( ) ) ; } var output_type = type_at_path ( parent_computable_output_type , field_name ) ; if ( output_type instanceof IRVoidType ) { throw new CoralTypeError ( "Field, '" + field_name + "' is not present in given compound" , new IRVoidType ( ) ) ; } AbstractPassthrough . call ( this , [ parent_computable ] , output_type ) ; }
CompoundNestedPassthrough is a special type of Computable that represents a
 field on a compound that has been placed on to the scope context.
CompoundNestedPassthrough is a special type of Computable that represents a field on a compound that has been placed on to the scope context .