{{#def.idlType}}
{{#def.callback}}
{{#def.interface}}
{{#def.dictionary}}

{{
  
var convertIDLType2ExtractMacro = function (idlType, refTypeMap, callback) {
  var type = idlType2CxxType(idlType, refTypeMap);
  type = type.replace('std::', '');
  if (isCallback(idlType, callback)) {
    type = 'function';
  } else if ((isInterface(idlType, refTypeMap) || isDictionary(idlType, refTypeMap)) && !isArray(idlType)) {
    type = 'object';
  } else if (type === 'v8::Local<v8::Array>') {
    type = 'array';
  }
  return type;
};

var extractArgument = function(idlType, refTypeMap, callback) {

  return "EXTRACT_v8_" + convertIDLType2ExtractMacro(idlType, refTypeMap, callback);
};

}}
