Repository: vue
Issue: Recusive Local Components - Uncaught RangeError: Maximum call stack size exceeded
Labels: 1.x

<!--
中文用户请注意：

1. issue 只接受带重现的 bug 报告，请不要用来提问题！不符合要求的 issue 会被直接关闭。
2. 请尽量用英文描述你的 issue，这样能够让尽可能多的人帮到你。

Got a question?
===============
The issue list of this repo is **exclusively** for bug reports and feature requests. For simple questions, please use the following resources:

- Read the docs: https://vuejs.org/guide/
- Watch video tutorials: https://laracasts.com/series/learning-vue-step-by-step
- Ask in the Gitter chat room: https://gitter.im/vuejs/vue
- Ask on the forums: http://forum.vuejs.org/
- Look for/ask questions on stack overflow: https://stackoverflow.com/questions/ask?tags=vue.js

Reporting a bug?
================
- Try to search for your issue, it may have already been answered or even fixed in the development branch.

- Check if the issue is reproducible with the latest stable version of Vue. If you are using a pre-release, please indicate the specific version you are using.

- It is **required** that you clearly describe the steps necessary to reproduce the issue you are running into. Issues with no clear repro steps will not be triaged. If an issue labeled "need repro" receives no further input from the issue author for more than 5 days, it will be closed.

- It is recommended that you make a JSFiddle/JSBin/Codepen to demonstrate your issue. You could start with [this template](http://jsfiddle.net/5sH6A/) that already includes the latest version of Vue.

- For bugs that involves build setups, you can create a reproduction repository with steps in the README.

- If your issue is resolved but still open, don’t hesitate to close it. In case you found a solution by yourself, it could be helpful to explain how you fixed it.

Have a feature request?
=======================
Remove the template from below and provide thoughtful commentary *and code samples* on what this feature means for your product. What will it allow you to do that you can't do today? How will it make current work-arounds straightforward? What potential bugs and edge cases does it help to avoid? etc. Please keep it product-centric.
-->

<!-- BUG REPORT TEMPLATE -->
### Vue.js version
1.0.28

### Reproduction Link
<!-- A minimal JSBin, JSFiddle, Codepen, or a GitHub repository that can reproduce the bug. -->
<!-- You could start with this template: http://jsfiddle.net/df4Lnuw6/ -->
https://jsfiddle.net/25fdgLgr/3/

### Steps to reproduce
Just run new Vue() or let app demo app load

### What is Expected?
App loads as expected. (btw this does work in vue 2.0, but we are not quite ready to migrate the rest of our app.

### What is actually happening?
JS Error
vue.js:10148 Uncaught RangeError: Maximum call stack size exceeded
    at new Function (<anonymous>)
    at createClass (https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.js:10148:12)
    at Function.Vue.extend (https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.js:10113:15)
    at guardComponents (https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.js:1927:31)
    at mergeOptions (https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.js:2004:3)
    at Function.Vue.extend (https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.js:10117:19)
    at guardComponents (https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.js:1927:31)
    at mergeOptions (https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.js:2004:3)
    at Function.Vue.extend (https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.js:10117:19)
    at guardComponents (https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.28/vue.js:1927:31)