| Index: third_party/WebKit/Source/modules/webaudio/IIRFilterNode.cpp | 
| diff --git a/third_party/WebKit/Source/modules/webaudio/IIRFilterNode.cpp b/third_party/WebKit/Source/modules/webaudio/IIRFilterNode.cpp | 
| index 38bf3bcb481863a13eeaa88f52b683381e95f858..d82e5297ef2488d2cd4e94c9e9dddafa18673d5d 100644 | 
| --- a/third_party/WebKit/Source/modules/webaudio/IIRFilterNode.cpp | 
| +++ b/third_party/WebKit/Source/modules/webaudio/IIRFilterNode.cpp | 
| @@ -9,6 +9,7 @@ | 
| #include "core/dom/ExceptionCode.h" | 
| #include "modules/webaudio/AudioBasicProcessorHandler.h" | 
| #include "modules/webaudio/BaseAudioContext.h" | 
| +#include "modules/webaudio/IIRFilterOptions.h" | 
| #include "platform/Histogram.h" | 
| #include "wtf/PtrUtil.h" | 
|  | 
| @@ -117,6 +118,35 @@ IIRFilterNode* IIRFilterNode::create( | 
| return new IIRFilterNode(context, feedforwardCoef, feedbackCoef); | 
| } | 
|  | 
| +IIRFilterNode* IIRFilterNode::create( | 
| +    BaseAudioContext* context, | 
| +    const IIRFilterOptions& options, | 
| +    ExceptionState& exceptionState) | 
| +{ | 
| +    if (!options.hasFeedforward()) { | 
| +        exceptionState.throwDOMException( | 
| +            NotFoundError, | 
| +            "IIRFilterOptions: feedforward is required."); | 
| +        return nullptr; | 
| +    } | 
| + | 
| +    if (!options.hasFeedback()) { | 
| +        exceptionState.throwDOMException( | 
| +            NotFoundError, | 
| +            "IIRFilterOptions: feedback is required."); | 
| +        return nullptr; | 
| +    } | 
| + | 
| +    IIRFilterNode* node = create(*context, options.feedforward(), options.feedback(), exceptionState); | 
| + | 
| +    if (!node) | 
| +        return nullptr; | 
| + | 
| +    node->handleChannelOptions(options, exceptionState); | 
| + | 
| +    return node; | 
| +} | 
| + | 
| DEFINE_TRACE(IIRFilterNode) | 
| { | 
| AudioNode::trace(visitor); | 
|  |